X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/da9f5f7a90d30639cf0f1dd8f32ce7040c23c72b..3b794848ed34a6be0bcaeff8cc3491247623f06d:/doc/doxygen/options.doc diff --git a/doc/doxygen/options.doc b/doc/doxygen/options.doc index 90d637c68d..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 @@ -1044,14 +1056,38 @@ Here is an example: also disable this behavior for MPI_Iprobe. -\subsection options_model_smpi_use_shared_malloc smpi/use-shared-malloc: Factorize malloc()s +\subsection options_model_smpi_shared_malloc smpi/shared-malloc: Factorize malloc()s + +\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 +example, in a bloc-cyclic matrix multiplication, you will only +allocate one set of blocs, and every processes will share them. +Naturally, this will lead to very wrong results, but this will save a +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). In practice, change the call to malloc() and free() into +SMPI_SHARED_MALLOC() and SMPI_SHARED_FREE(). -\b Default: 1 +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. -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. +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. -If you want to disable this behavior, set the value to 0. +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 @@ -1200,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 @@ -1208,9 +1245,9 @@ It can be done by using XBT. Go to \ref XBT_log for more details. - \c smpi/papi-events: \ref options_smpi_papi_events - \c smpi/privatize-global-variables: \ref options_smpi_global - \c smpi/send-is-detached-thresh: \ref options_model_smpi_detached +- \c smpi/shared-malloc: \ref options_model_smpi_shared_malloc - \c smpi/simulate-computation: \ref options_smpi_bench - \c smpi/test: \ref options_model_smpi_test -- \c smpi/use-shared-malloc: \ref options_model_smpi_use_shared_malloc - \c smpi/wtime: \ref options_model_smpi_wtime - \c Tracing configuration options can be found in Section \ref tracing_tracing_options.