# Interface de passage de messages (MPI)

Dans le domaine du calcul parallèle, le Message Passing Interface (MPI) est la norme de facto pour implémenter des programmes sur plusieurs processeurs.

Ce module fournit des fonctions pour initialiser, gérer et finaliser des environnements MPI, ainsi que pour effectuer la communication entre processus, à la fois point à point et collective.

Il permet aux programmes Nelson de s'exécuter efficacement sur des systèmes à mémoire distribuée et des clusters.

## Functions

* [MPI\_Allreduce](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_allreduce) - Combine les valeurs de tous les processus et distribue le résultat à tous les processus.
* [MPI\_Barrier](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_barrier) - Bloque jusqu'à ce que tous les processus du communicateur atteignent cette routine.
* [MPI\_Bcast](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_bcast) - Diffuse un message depuis le processus "root" vers tous les autres processus du communicateur
* [MPI\_Comm\_delete](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_comm_delete) - Supprime un objet MPI\_Comm.
* [MPI\_Comm\_get\_name](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_comm_get_name) - Renvoie le nom d'impression du communicateur.
* [MPI\_Comm\_object](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_comm_object) - Creates MPI\_Comm object.
* [MPI\_Comm\_rank](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_comm_rank) - Determines the rank of the calling process in the communicator.
* [MPI\_Comm\_size](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_comm_size) - Determines the size of the group associated with a communicator.
* [MPI\_Comm\_split](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_comm_split) - Partitionne le groupe associé au communicateur spécifié en un nombre donné de sous-groupes disjoints.
* [MPI\_Comm\_used](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_comm_used) - Renvoie la liste des handles MPI\_Comm actuellement utilisés.
* [MPI\_Finalize](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_finalize) - Termine l'environnement d'exécution MPI.
* [MPI\_Get\_library\_version](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_get_library_version) - Renvoie la version de la bibliothèque MPI.
* [MPI\_Get\_processor\_name](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_get_processor_name) - Récupère le nom du processeur.
* [MPI\_Get\_version](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_get_version) - Renvoie le numéro de version de MPI.
* [MPI\_Init](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_init) - Initialise l'environnement d'exécution MPI.
* [MPI\_Initialized](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_initialized) - Indique si MPI\_Init a été appelé.
* [MPI\_Iprobe](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_iprobe) - Test non-bloquant pour un message.
* [MPI\_Probe](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_probe) - Test bloquant pour un message.
* [MPI\_Recv](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_recv) - Réception bloquante d'un message.
* [MPI\_Reduce](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_reduce) - Réduit les valeurs de tous les processus en une seule valeur.
* [MPI\_Send](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpi_send) - Effectue un envoi bloquant.
* [mpiexec](https://nelson-9.gitbook.io/Nelson/markdown/fr/mpi/mpiexec) - Run an MPI script.
