Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
correctly update the SonarQube URLs
[simgrid.git] / doc / doxygen / module-smpi.doc
index 34ef494..2410812 100644 (file)
@@ -1,5 +1,7 @@
-/** @addtogroup SMPI_API
-
+/** 
+@defgroup SMPI_API      SMPI: Simulate real MPI applications
+@brief Programming environment for the simulation of MPI applications
+    
 This programming environment enables the study of MPI application by
 emulating them on top of the SimGrid simulator. This is particularly
 interesting to study existing MPI applications within the comfort of
@@ -30,8 +32,8 @@ may want to turn to the other SimGrid interfaces such as the
 \section SMPI_what What can run within SMPI?
 
 You can run unmodified MPI applications (both C and Fortran) within
-SMPI, provided that (1) you only use MPI calls that we implemented in
-MPI and (2) you don't use any globals in your application.
+SMPI, provided that you only use MPI calls that we implemented in
+MPI. Global variables should be handled correctly on Linux systems.
 
 \subsection SMPI_what_coverage MPI coverage of SMPI
 
@@ -69,14 +71,14 @@ solution called AMPI that suffers of the same issue).
 
 A method using dynamic switching of the .data and .bss segments of an
 ELF executable has been introduced in SimGrid 3.11. By using the <tt>smpi/
-privati_global_variableles</tt> option to yes, SMPI will duplicate
+privatize_global_variableles</tt> option to yes, SMPI will duplicate
 the segments containing the global variables and when needed, will map 
-the right one in memory. This needs ELF executbles and mmap on the system
-(Linux and recent BSDs should be compatible). As no copy is involved, 
+the right one in memory. This needs ELF executables and mmap on the system
+(Linux and recent BSDs should be compatible). %As no copy is involved, 
 performance should not be altered (but memory occupation will be higher).
 
 This solution actually works really good for a good number of MPI 
-application. Its main limitation is that if the application loads dynamic 
+applications. Its main limitation is that if the application loads dynamic 
 libraries, their global variables won't be privatized. This can be avoided 
 by linking statically with these libraries (but NOT with libsimgrid, as we 
 need SimGrid's own global varibles).
@@ -91,6 +93,12 @@ before giving SMPI a spin. Actually, that's very simple even if it's
 the first time you use MPI code: just use smpicc as a compiler (in
 replacement of gcc or your usual compiler), and you're set.
 
+\note 
+    Some configure scripts ("./configure") will test the compiler by 
+    compiling some simple example scripts. To make this work, you 
+    must set the <b>SMPI_PRETEND_CC</b> environment variable to
+    some arbitrary value, for instance "export SMPI_PRETEND_CC=1"
+
 \section SMPI_executing Executing your code on top of the simulator
 
 This is done though the <tt>smpirun</tt> script as follows.
@@ -502,7 +510,7 @@ Example: adding a "pair" version of the Alltoall collective.
 
  - To register the new version of the algorithm, simply add a line to the corresponding macro in src/smpi/colls/cools.h ( add a "COLL_APPLY(action, COLL_ALLTOALL_SIG, pair)" to the COLL_ALLTOALLS macro ). The algorithm should now be compiled and be selected when using --cfg=smpi/alltoall:pair at runtime.
 
- - To add a test for the algorithm inside Simgrid's test suite, juste add the new algorithm name in the ALLTOALL_COLL list found inside buildtools/cmake/AddTests.cmake . When running ctest, a test for the new algorithm should be generated and executed. If it does not pass, please check your code or contact us.
+ - To add a test for the algorithm inside Simgrid's test suite, juste add the new algorithm name in the ALLTOALL_COLL list found inside teshsuite/smpi/CMakeLists.txt . When running ctest, a test for the new algorithm should be generated and executed. If it does not pass, please check your code or contact us.
 
  - Feel free to push this new algorithm to the SMPI repository using Git.