URL: https://linuxfr.org/forums/programmationautre/posts/r%C3%A9solu-compilation-gfortran-et-biblioth%C3%A8que-blaslapack Title: [Résolu] Compilation gfortran et bibliothèque Blas/Lapack Authors: MarbolanGos Date: 2011年04月28日T16:37:59+02:00 Tags: fortran Score: 0 Bonjour, alors voila je suis en train de m'arracher les cheveux sur un problème et je cherche toute aide possible. J'ai un programme que je compile avec intel fortran (ifort) d’habitude mais il faudrait que je le compile en gfortran et si possible avoir presque les même performances. Sur un coeur/processeur aucun soucis. Là où ça se corse c'est en openmp... Sous ifort avec les bibliothèque mkl sur un quad-core le scaling est de presque 4 (ne regardons pas les décimales). Par contre avec gfortran avec les mêmes bibliothèques ça devient proche de 1... Donc autrement dit je passe mon temps dans un seul processeur. J'ai essayé avec la bibliothèque goto2 mais c'est pareil. Après moultes recherches/debug je ne trouve rien à part quelques personnes qui ont le même soucis et qui restent sur ifort et ne cherchent pas plus loin. J'ai fait un profile d'un calcul assez typique et en fait plus de 90% du temps je suis à calculer zgemm. Donc forcément le scaling doit se faire ici ! J'en déduis, à l'heure actuelle, que gfortran ne cherche pas à utiliser les threads lors du call zgemm() alors que ifort le fait. J'ai essayé les flags: -O2, -O3, -m64, -fopenmp, -frecursive, -floop-parallelize-all, -ftree-loop-distribution, -ftree-parallelize-loops=n, -march=native. Pour intel fortran je ne mets que le flag -i8 donc tout le reste est par défaut. J'ai vu un site qui m'a fait penser que les call pouvaient ne pas être parallèles avec des options mais c'est pour pgf. J'ai lu je ne sais combien de fois le man de gcc et gfortran mais rien sur un flag qui permettrait cela à art ceux que j'ai testé. Je remercie toute personne qui aurait déjà vu/eu ce problème et résolu.