X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/67d66b0cf79b9fc02c0450f254584693dbf21d3b..a6e488781dadd92ea13e74150074c4207fefe478:/docs/source/app_smpi.rst diff --git a/docs/source/app_smpi.rst b/docs/source/app_smpi.rst index ec722463db..ddea04e9ef 100644 --- a/docs/source/app_smpi.rst +++ b/docs/source/app_smpi.rst @@ -90,7 +90,9 @@ Use the ``smpirun`` script as follows: - ``my_hostfile.txt`` is a classical MPI hostfile (that is, this file lists the machines on which the processes must be dispatched, one - per line) + per line). Using the ``hostname:num_procs`` syntax will deploy num_procs + MPI processes on the host, sharing available cores (equivalent to listing + the same host num_procs times on different lines). - ``my_platform.xml`` is a classical SimGrid platform file. Of course, the hosts of the hostfile must exist in the provided platform. - ``./program`` is the MPI program to simulate, that you compiled with ``smpicc`` @@ -104,7 +106,7 @@ tracing during the simulation. You can get the full list by running Finally, you can pass :ref:`any valid SimGrid parameter ` to your program. In particular, you can pass ``--cfg=network/model:ns-3`` to -switch to use :ref:`model_ns3`. These parameters should be placed after +switch to use :ref:`models_ns3`. These parameters should be placed after the name of your binary on the command line. ............................... @@ -175,7 +177,7 @@ of the targeted MPI implementations. You can switch the automatic selector through the ``smpi/coll-selector`` configuration item. Possible values: - - **ompi:** default selection logic of OpenMPI (version 3.1.2) + - **ompi:** default selection logic of OpenMPI (version 4.1.2) - **mpich**: default selection logic of MPICH (version 3.3b) - **mvapich2**: selection logic of MVAPICH2 (version 1.9) tuned on the Stampede cluster @@ -292,6 +294,7 @@ MPI_Scatter ``impi``: use intel mpi selector for the scatter operations. |br| ``automatic (experimental)``: use an automatic self-benchmarking algorithm. |br| ``ompi_basic_linear``: basic linear scatter. |br| +``ompi_linear_nb``: linear scatter, non blocking sends. |br| ``ompi_binomial``: binomial tree scatter. |br| ``mvapich2_two_level_direct``: SMP aware algorithm, with an intra-node stage (default set to mpich selector), and then a basic linear inter node stage. Use mvapich2 selector to change these to tuned algorithms for Stampede cluster. |br| ``mvapich2_two_level_binomial``: SMP aware algorithm, with an intra-node stage (default set to mpich selector), and then a binomial phase. Use mvapich2 selector to change these to tuned algorithms for Stampede cluster. |br| @@ -357,6 +360,7 @@ MPI_Reduce_scatter ``automatic (experimental)``: use an automatic self-benchmarking algorithm. |br| ``ompi_basic_recursivehalving``: recursive halving version from OpenMPI. |br| ``ompi_ring``: ring version from OpenMPI. |br| +``ompi_butterfly``: butterfly version from OpenMPI. |br| ``mpich_pair``: pairwise exchange version from MPICH. |br| ``mpich_rdb``: recursive doubling version from MPICH. |br| ``mpich_noncomm``: only works for power of 2 procs, recursive doubling for noncommutative ops. |br| @@ -454,7 +458,8 @@ can't be done, so algorithms have to be changed to use smpi version of the calls instead (MPI_Send will become smpi_mpi_send). Some functions may have different signatures than their MPI counterpart, please check the other algorithms or contact us using the `>SimGrid -developers mailing list `_. +user mailing list `_, +or on `>Mattermost `_. Example: adding a "pair" version of the Alltoall collective. @@ -744,11 +749,11 @@ them on top of SMPI. Troubleshooting with SMPI ------------------------- -................................. -./configure refuses to use smpicc -................................. +......................................... +./configure or cmake refuse to use smpicc +......................................... -If your ``./configure`` reports that the compiler is not +If your configuration script (such as ``./configure`` or ``cmake``) reports that the compiler is not functional or that you are cross-compiling, try to define the ``SMPI_PRETEND_CC`` environment variable before running the configuration. @@ -767,20 +772,20 @@ fail without ``smpirun``. .. warning:: - Make sure that SMPI_PRETEND_CC is only set when calling ./configure, + Make sure that SMPI_PRETEND_CC is only set when calling the configuration script but not during the actual execution, or any program compiled with smpicc will stop before starting. -.............................................. -./configure does not pick smpicc as a compiler -.............................................. +..................................................... +./configure or cmake do not pick smpicc as a compiler +..................................................... In addition to the previous answers, some projects also need to be explicitly told what compiler to use, as follows: .. code-block:: console - $ SMPI_PRETEND_CC=1 ./configure CC=smpicc # here come the other configure parameters + $ SMPI_PRETEND_CC=1 cmake CC=smpicc # here come the other configure parameters $ make Maybe your configure is using another variable, such as ``cc`` (in