MPI/fr: Difference between revisions

no edit summary
(Created page with "Avec la version Python, vous n'avez pas besoin de compiler, mais vous pouvez exécuter avec [~]$ mpirun -np 4 python phello1.py")
No edit summary
Line 94: Line 94:
[[Image:SPMD_model.png|frame|center|'''Figure 3''': ''Contrôle de comportements divergents'']]
[[Image:SPMD_model.png|frame|center|'''Figure 3''': ''Contrôle de comportements divergents'']]


<div class="mw-translate-fuzzy">
=== Cadre d'exécution ===  
=== Cadre d'exécution ===  
Un programme MPI importe le fichier entête approprié (<tt>mpi.h</tt> en C/C++; <tt>mpif.h</tt> en Fortran); il peut donc être compilé puis relié à l'implémentation MPI de notre choix. Dans la plupart des cas, l'implémentation possède un script pratique qui enveloppe l'appel au compilateur (''compiler wrapper'') et qui configure adéquatement <code>include</code> et <code>lib</code>, entre autres pour relier les indicateurs. Nos exemples utilisent les scripts de compilation suivants&nbsp;:  
Un programme MPI doit comprendre le fichier entête approprié ou utiliser le modèle approprié (<tt>mpi.h</tt> pour C/C++, <tt>mpif.h</tt>, <tt>use mpi</tt>, ou <tt>use mpi_f08</tt> pour Fortran, sachant que <tt>mpif.h</tt> est fortement déconseillé et <tt>mpi_f08</tt> recommandé pour Fortran 2008). Il peut donc être compilé puis relié à l'implémentation MPI de votre choix. Dans la plupart des cas, l'implémentation possède un script pratique qui enveloppe l'appel au compilateur (''compiler wrapper'') et qui configure adéquatement <code>include</code> et <code>lib</code>, entre autres pour relier les indicateurs. Nos exemples utilisent les scripts de compilation suivants&nbsp;:  
* pour le C, <tt>mpicc</tt>
* pour le C, <tt>mpicc</tt>
* pour le Fortran, <tt>mpif90</tt>
* pour le Fortran, <tt>mpifort</tt> (recommandé) ou <tt>mpif90</tt>
* pour le C++, <tt>mpiCC</tt>
* pour le C++, <tt>mpiCC</tt> ou <tt>mpicxx</tt>
</div>


Une fois les instances lancées, elles doivent se coordonner, ce qui se fait en tout premier lieu par l'appel d'une fonction d'initialisation&nbsp;:
Une fois les instances lancées, elles doivent se coordonner, ce qui se fait en tout premier lieu par l'appel d'une fonction d'initialisation&nbsp;:
rsnt_translations
56,430

edits