Bonjour à tous,

J'ai un algo qui explore et modifie un tableau NxN (N de l'ordre de 1000 à 10000) de proche en proche à partir d'une case de départ quelconque. pseudocode ci-dessous :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
L = 1 ; % une ligne de départ quelconque
C = 1 ; % une colonne de départ quelconque
while 1
if (la case courante n'a plus de voisin à traiter)
    break
end
    cherche tous les voisins non traités de (L,C)
    modifie éventuellement ces voisins
    choisit un des voisins (L1, C1) pour continuer l'algo
    L = L1 ;
    C = C1 ;
end
Pour accélérer le traitement, Je veux exécuter 4 explorations du même tableau en parrallèle. Comme mentionné dans le pseudo-code, chaque exploration doit pouvoir lire et écrire dans le tableau.

Le code auquel je pense ressemblerait à ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
parfor depart = 1:4
    [L, C] = case_de_depart (depart) ;
    while 1
        l'algo ci-dessus
    end
end
Matlab refuse.
je comprend un peu pourquoi (conflits entre lecture et écriture, etc.) en C, il faudrait utiliser des objets de synchronisation pour bloquer les parties du tableau en cours de lecture, par exemple.

j'ai déja prouvé que mon algo est adapté à ce type de parralélisation. La question n'est donc pas algorithmique, mais purement Matlabesque.

d'ou ma question : je peux faire une parrallélisation de ce genre avec Matlab (accessoirement, comment) ou bien j'oublie ?