• [^] # Re: OpenMP

    Posté par . En réponse à la dépêche Sortie de GCC 4.2. Évalué à 6.

    Pour ce qui est d'OpenMP Vs MPI, je crois que le problème ne se pose pas dans ces termes. MPI (Message Passing Interface) fonctionne plutôt avec une approche par processus dans les implémentations courantes. OpenMP est « intrinsèquement » lié aux threads. Dans les deux cas, tout est question d'implémentation du standard.

    Par exemple, utiliser MPI sur un quad-core me semble carrément plus ridicule qu'utiliser OpenMP (en supposant que les deux implémentations soient bonnes).

    Intel, par exemple, possède une bonne implémentation d'OpenMP (propriétaire). Quant aux histoires de tailles pour le passage à l'échelle, c'est là encore totalement dépendant de l'implémentation. Si l'on a à sa disposition une implémentation d'OpenMP capable de savoir que la machine est de type NUMA (non-uniform memory access, en gros avec des barettes de mémoire "distribuées" physiquement), et qu'OpenMP est capable d'en tirer parti, je ne vois pas en quoi ce serait moins bon.

    Avec OpenMP, il y a plus de parallélisme "implicite" qu'avec MPI, où l'on doit explicitement tout faire. Forcément, ça fait qu'il y a moins de choses à gérer du côté du mec qui programme la bibliothèque MPI que du côté d'OpenMP. Cela dit, faire une implémentation de MPI qui torche, c'est très difficile aussi.