title: Parallelize matlab algorithm
body: <p>I'm working on a tomographic algorithm, using SART method. I'm using 2D projections in order to get 3D volume.</p>
  
  <p>My main problem is that computation time is really high.. </p>
  
  <p>For example, with projections of size 88*75 pixels my program need 5 days to complete.</p>
  
  <p>By using the matlab profiler, we can see that the lines with the multiplication of the radon matrix (which is heavy) are taking so much time. </p>
  
  <p>That's why I want to parallelised my algorithm but I'm not really familiar with it.</p>
  
  <p>This is the part of my algorithme that I want to parallelize :</p>
  
  <pre><code>line which need a lot of time: Correction = mtimesx(facteur, Matrice_Radon_Transposee, 'SPEED');
  
  
  for k = 1: ite % Boucle définie par le nombre d 'itérations choisi par l'
  utilisateur
  Soustraction = Projection2 - Projection_old;
  Erreur(ligne, k) = mean(Soustraction);
  Err = Erreur(ligne, k);
  for z = 1: L * Nproj
  for a = 1: L * L
  Somme = Somme + Matrice_Radon(z, a) * Matrice_Radon(z, a);
  end
  facteur = landa / Somme;
  Correction = mtimesx(facteur, Matrice_Radon_Transposee, 'SPEED'); % Formule de correction additive de l
    'image
  
              Correction = Correction*Soustraction;
              Ik1 = Ik + Correction;
              Ik=Ik1;                                                             % Stockage de l'
  image corrigée dans l
    'image_itération_précédente
  
               Projection_old=Matrice_Radon*Ik;                          % Calcul de la projection à partir de l'
  image_itération_précédente
  end
  pos3 = 1;
  for incr2 = 1: L
  for incr3 = 1: L
  Ik2(incr2, incr3) = Ik1(pos3, 1); % Transformation vecteur en matrice
  pos3 = pos3 + 1;
  end
  end
  Coupe_SIRT(ligne, : , : ) = Ik2; % Stockage des coupes générées
  end
  fprintf('Progression : %2d/%d\n', ligne, H); % Affichage de l
    'avancement du traitement
   end
  </code></pre>