Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

[HPC] Sortie d'OpenMPI 2.0
L'implémentation libre de la norme de communication se prépare pour les superordinateurs à l'échelle de l'exaflops

Le , par dourouc05

0PARTAGES

1  0 
MPI (message passing interface) est une norme très utilisée pour programmer des superordinateurs. De manière plus générale, l’API sert à distribuer des calculs sur plusieurs machines (jusque des centaines de milliers de processeurs), sans forcément l’architecture lourde d’un superordinateur ou d’un centre informatique (quelques machines sur un réseau Ethernet suffisent, pas besoin de connexions spécifiques comme InfiniBand). De manière générale, MPI lance le même programme sur tous les ordinateurs du réseau ; ces derniers peuvent alors communiquer en envoyant (MPI_Send) et en recevant des messages (MPI_Recv) de manière synchronisée — pour les fonctionnalités de base.

Cette norme compte principalement deux implémentations libres : MPICH, l’historique, dont beaucoup de versions commerciales dérivent (comme Intel ou Microsoft), l’implémentation de référence ; OpenMPI, qui a débuté comme une implémentation alternative par plusieurs universités et centres de recherche, parfois plus rapide à l’exécution. Cette dernière vient de voir une nouvelle version majeure, OpenMPI 2.0. Celle-ci apporte bon nombre de changements par rapport à la version précédente, 1.10 : la compatibilité binaire est d’ailleurs cassée, il faudra recompiler les applications pour profiter d’OpenMPI 2.0.

Au niveau normatif, cette nouvelle version est compatible avec MPI 3.1, la dernière version, parue en juin 2015. Elle n’apporte que des changements mineurs par rapport à la précédente.

Plus important, l’accès à la mémoire des autres ordinateurs coordonnés à travers MPI (RMA) a été largement amélioré. Ces fonctionnalités servent à lire directement de la mémoire sur un autre ordinateur du réseau, sans besoin de communication synchrone supplémentaire entre les deux machines : seul l’ordinateur qui a besoin des informations est bloqué en les attendant, celui qui est censé les envoyer n’a aucun traitement spécifique à effectuer (tout est géré par MPI). Ces opérations étant assez courantes à effectuer, des interfaces de communication comme InfiniBand proposent des opérations similaires : OpenMPI peut maintenant les exploiter.

OpenMPI améliore sa gestion des ressources pour exploiter à leur plein potentiel des supercalculateurs d’un exaflops (actuellement, ils plafonnent à quelques dizaines de pétaflops). Ainsi, la consommation de mémoire au lancement des processus est limitée pour de très grands nombres de machines en évitant d’initialiser trop tôt des structures de données coûteuses (paramètre mpi_add_procs_cutoff). La communication entre les ordonnanceurs des superordinateurs et les applications pourra se faire avec l’interface PMIx — ce qui représente une étape importante pour gérer au mieux la puissance de calcul disponible.

Sources : [Open MPI Announce] Open MPI v2.0.0 released, Open MPI gets closer to exascale-ready code.
Ce contenu a été publié dans HPC et calcul scientifique par dourouc05.

Une erreur dans cette actualité ? Signalez-le nous !