Performances OpenMP : parallélisation boucles
Bonjour,
je suis en train de paralléliser un code Fortran à l'aide d'OpenMP qui calcule un produit de matrices de grandes dimensions: AxB = C.
J'ai donc un certain nombre de boucles pour initialiser les matrices puis pour le calcul du produit matriciel.
Après avoir parallélisé mes boucles principales, j'ai comparé le temps d'exécution de mon programme séquentiel et de mon programme parallélisé en utilisant la fonction time du shell.
J'obtiens que le programme non parallélisé s'execute plus rapidement.
Le but de la parallélisation est de diminuer les temps de calcul.
Les résultats que j'obtiens sont donc incohérents. L'utilisation de la directive
$OMP PARALLEL DO (RUNTIME) peut elle donner de tels résultats?
Merci d'avance
Performances OpenMP : parallélisation boucles
Bonsoir,
la parallélisation a un cout à ne pas négliger ! Donc, des performances moins bonnes avec open-MP ne sont pas forcément incohérentes...
Les points à prendre en compte avant de savoir si oui ou non, le code pose problème sont :
=> Est-ce que ton exemple est taillé pour mettre en évidence l'intérêt d'openMP ?
=> Quels paramètres utilises-tu pour parallèliser (nombre de threads) et est-ce que la variation de ces paramètres entraine une variation de performance ?
=> Es-tu bien sûr que l'exécution du programme se fait sur le bon nombre de thread ?
Comme d'habitude...un ecm pourrait aider à t'aider ;-)