Parallelisieren von for Schleifen mit OpenMP
-
Hallo,
ich habe in meinem Programm viele for-Schleifen, die ich mit OpenMP parallelisieren will.
Das klapt auch recht gut, nur bei einer Art von Schleichen gibt es Probleme:#pragma omp parallel for for (int i=bixel_map[blenden[freiheitsgrade[parameter].blende].get_beam()][blenden[freiheitsgrade[parameter].blende].get_start(freiheitsgrade[parameter].y)][freiheitsgrade[parameter].y][0]; i<=bixel_map[blenden[freiheitsgrade[parameter].blende].get_beam()][blenden[freiheitsgrade[parameter].blende].get_start(freiheitsgrade[parameter].y)][freiheitsgrade[parameter].y][1]; i++) { dosis_matrix[kernel_voxel[i]]+=gewicht*kernel_dosis[i]; }Ok, das ist jetzt ein bischen unübersichtlich

Aber es ist einfach nur eine for-schleife mit etwa 500 - 10000 Durchläufen.
Je nachdem.
Sowas parallelisiert er aber wunderbar:#pragma omp parallel for for (int c=0; c<dim; c++){ if (dosis_matrix[c] !=0){ dosis_matrix[c]=dosis_matrix[c]*gewicht/gewicht_alt; } }Kann es sein, dass OpenMP Probleme damit hatt, dass ich die Anzahl der durchläufe
so "kompliziert" zusammenbastel?
Oder woran könnte das noch liegen?Danke,
Moritz
-
ja.