J'ai affaire à une très grande matrice et je voulais donc utiliser le calcul parallèle dans MATLAB pour l'exécuter en grappes. Ici, j'ai créé une matrice éparse en utilisant :
Ad = sparse(length(con)*length(uni_core), length(con)*length(uni_core));
J'ai une fonction écrite adj
à l'aide de laquelle je peux remplir la matrice Ad
. Chaque fois que la boucle s'exécute, à partir de la fonction adj
J'obtiens une matrice symétrique carrée qui doit être affectée à l'élément Ad
de 3682*(i-1)+1
à 3682 *(i-1)+3682
dans le premier indice et de la même manière dans le deuxième indice. Ceci est illustré ici :
parfor i = 1:length(con)
Ad((3682*(i-1))+1:((3682*(i-1))+3682), ...
(3682*(i-1))+1:((3682*(i-1))+3682)) = adj(a, b, uni_core);
end
Dans une boucle for normale, il fonctionne sans problème. Mais dans une boucle parfor
en calcul parallèle, je reçois une erreur indiquant qu'il y a un problème dans l'utilisation des tableaux découpés en tranches avec parfor
.