X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/a7bcf0f57ffe5ef60e309c4472e6715898da7d8d..65d226053e9899ca078e460632ce7aed82bdfb32:/doc/doxygen/options.doc diff --git a/doc/doxygen/options.doc b/doc/doxygen/options.doc index 68228d0cd8..59a5761bd4 100644 --- a/doc/doxygen/options.doc +++ b/doc/doxygen/options.doc @@ -952,6 +952,18 @@ uses naive version of collective operations). Each collective operation can be m The behavior and motivation for this configuration option is identical with \a smpi/test, see Section \ref options_model_smpi_test for details. +\subsection options_model_smpi_iprobe_cpu_usage smpi/iprobe-cpu-usage: Reduce speed for iprobe calls + +\b Default value: 1 (no change from default behavior) + +MPI_Iprobe calls can be heavily used in applications. To account correctly for the energy +cores spend probing, it is necessary to reduce the load that these calls cause inside +SimGrid. + +For instance, we measured a max power consumption of 220 W for a particular application but +only 180 W while this application was probing. Hence, the correct factor that should +be passed to this option would be 180/220 = 0.81. + \subsection options_model_smpi_init smpi/init: Inject constant times for calls to MPI_Init \b Default value: 0 @@ -1046,7 +1058,7 @@ Here is an example: \subsection options_model_smpi_shared_malloc smpi/shared-malloc: Factorize malloc()s -\b Default: yes +\b Default: global If your simulation consumes too much memory, you may want to modify your code so that the working areas are shared by all MPI ranks. For @@ -1057,14 +1069,25 @@ lot of memory so this is still desirable for some studies. For more on the motivation for that feature, please refer to the relevant section of the SMPI CourseWare (see Activity #2.2 of the pointed -assignment). - -SMPI can use shared memory by calling shm_* functions; this might speed up the simulation. -This opens or creates a new POSIX shared memory object, kept in RAM, in /dev/shm. - -If you want to disable this behavior (for example for debugging -purposes), set its value to "no" or "0". - +assignment). In practice, change the call to malloc() and free() into +SMPI_SHARED_MALLOC() and SMPI_SHARED_FREE(). + +SMPI provides 2 algorithms for this feature. The first one, called \c +local, allocates one bloc per call to SMPI_SHARED_MALLOC() in your +code (each call location gets its own bloc) and this bloc is shared +amongst all MPI ranks. This is implemented with the shm_* functions +to create a new POSIX shared memory object (kept in RAM, in /dev/shm) +for each shared bloc. + +With the \c global algorithm, each call to SMPI_SHARED_MALLOC() +returns a new adress, but it only points to a shadow bloc: its memory +area is mapped on a 1MiB file on disk. If the returned bloc is of size +N MiB, then the same file is mapped N times to cover the whole bloc. +At the end, no matter how many SMPI_SHARED_MALLOC you do, this will +only consume 1 MiB in memory. + +You can disable this behavior and come back to regular mallocs (for +example for debugging purposes) using \c "no" as a value. \subsection options_model_smpi_wtime smpi/wtime: Inject constant times for calls to MPI_Wtime @@ -1213,6 +1236,7 @@ It can be done by using XBT. Go to \ref XBT_log for more details. - \c smpi/host-speed: \ref options_smpi_bench - \c smpi/IB-penalty-factors: \ref options_model_network_coefs - \c smpi/iprobe: \ref options_model_smpi_iprobe +- \c smpi/iprobe-cpu-usage: \ref options_model_smpi_iprobe_cpu_usage - \c smpi/init: \ref options_model_smpi_init - \c smpi/lat-factor: \ref options_model_smpi_lat_factor - \c smpi/ois: \ref options_model_smpi_ois