Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Obey english typographic rules [noci]
authorMartin Quinson <martin.quinson@loria.fr>
Wed, 20 Jun 2018 21:48:38 +0000 (23:48 +0200)
committerMartin Quinson <martin.quinson@loria.fr>
Wed, 20 Jun 2018 21:48:43 +0000 (23:48 +0200)
ChangeLog
doc/doxygen/module-smpi.doc
doc/doxygen/options.doc
doc/doxygen/platform.doc

index 8a61aed..dc1cc70 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -26,21 +26,21 @@ simix:
 
 SMPI:
  - SMPI is now tested with ~45 proxy apps from various sources, with none or 
-   only minor patching needed : check github.com/simgrid/SMPI-proxy-apps
+   only minor patching needed: check github.com/simgrid/SMPI-proxy-apps
  - Replay: The replay file has been re-written in C++.
  - Replay: Tags used for messages sent via MPI_Send / MPI_Recv are now
    supported. They are stored in the trace and used when replayed.
  - Basic support of MPI_Cancel. Robustness not guaranteed.
  - Support of MPI_Win_allocate_shared, MPI_Win_shared_query, MPI_Comm_split_type
    (only for MPI_COMM_TYPE_SHARED).
- - New option : smpi/privatize-libs, to add external shared libs to be privatized
+ - New option: smpi/privatize-libs, to add external shared libs to be privatized
    by SMPI. They will be copied locally and loaded separately by each process.
    Example --cfg=smpi/privatize-libs:"libgfortran.so.3;libscalapack.so".
- - Tracing : add tracing for MPI_Start, Startall, Testall, Testany
+ - Tracing: add tracing for MPI_Start, Startall, Testall, Testany
  - Interception of getopt, getopt_long and getopt_long_only calls to avoid issues 
    with internal index optind with multiple processes. Only works if MPI_Init has 
    already been called.
- - Fortran : SMPI builds a mpi.mod file which should allow use of "use mpi" 
+ - Fortran: SMPI builds a mpi.mod file which should allow use of "use mpi" 
    syntax without preprocessing tricks.
 
 XBT:
@@ -56,8 +56,8 @@ Fixed bugs:
  - #150: Inconsistent event names in SMPI replay
  - #258: daemonized actors hang after all non-daemonized actors have completed
  - #267: Linker error on unit_tmgr
- - #269: SMPI : tracing of MPI_Wait/all/any broken
- - SMPI : Fix various crashes with combined use of MPI_PROC_NULL and MPI_IGNORE_STATUS 
+ - #269: SMPI: tracing of MPI_Wait/all/any broken
+ - SMPI: Fix various crashes with combined use of MPI_PROC_NULL and MPI_IGNORE_STATUS 
 
 ----------------------------------------------------------------------------
 
@@ -214,7 +214,7 @@ SimGrid (3.18) Released December 24 2017
  Virtual Machines
  - Live migration is getting moved to a plugin. Dirty page tracking is
    the first part of this plugin. This imply that VM migration is now
-   only possible if one this function is called :
+   only possible if one this function is called:
     - C/MSG: MSG_vm_live_migration_plugin_init()
     - C/C++: sg_vm_live_migration_plugin_init()
     - Java:  Msg.liveMigrationInit()
@@ -365,12 +365,12 @@ SimGrid (3.16) Released June 22. 2017.
  SMPI
   - New algorithm to privatize globals: dlopen, with dynamic loading tricks
   - New option: smpi/keep-temps to not cleanup temp files
-  - New option : smpi/shared-malloc-blocksize . Relevant only when global shared
+  - New option: smpi/shared-malloc-blocksize . Relevant only when global shared
     mallocs mode is used, allows to change the size of the fake file used
     (default 1MB), to potentially limit the number of mappings for large runs.
   - Support for sparse privatized malloc with SMPI_PARTIAL_SHARED_MALLOC()
   - Fortran ifort and flang compilers support
-  - New RMA calls supported (experimental) :
+  - New RMA calls supported (experimental):
       - MPI_Win_allocate, MPI_Win_create_dynamic, MPI_Win_attach
       - MPI_Win_detach, MPI_Win_set_info, MPI_Win_get_info
       - MPI_Win_lock_all, MPI_Win_unlock_all, MPI_Win_flush
@@ -531,9 +531,9 @@ SimGrid (3.14) Released December 24. 2016
 
  * smpirun script should be (much) faster for large deployments.
 
- * SMPI tracing : fixed issue with poor matching of send/receives.
+ * SMPI tracing: fixed issue with poor matching of send/receives.
 
- * Replay : Fix broken waitall
+ * Replay: Fix broken waitall
 
  New functions and features
  * MSG_parallel_task_execute_with_timeout, to timeout computations.
@@ -785,7 +785,7 @@ SimGrid (3.12) stable; urgency=low
 
  SMPI:
  * New functions
-   - Onesided early support for : MPI_Win_(create, free, fence, get_name, set_name, get_group), MPI_Get, MPI_Put, MPI_Accumulate, MPI_Alloc_mem, MPI_Free_mem.
+   - Onesided early support for: MPI_Win_(create, free, fence, get_name, set_name, get_group), MPI_Get, MPI_Put, MPI_Accumulate, MPI_Alloc_mem, MPI_Free_mem.
    - MPI_Keyval*, MPI_Attr* functions, as well as MPI_Comm_attr*, MPI_Type_attr* variants (C only, no Fortran support yet)
    - MPI_Type_set_name, MPI_Type_get_name
    - MPI_*_c2f and MPI_*_f2c functions
@@ -794,13 +794,13 @@ SimGrid (3.12) stable; urgency=low
    - Activate a lot of new tests from the mpich 3 testsuite
  * Features
    - Constant times can be injected inside MPI_Wtime and MPI_Test through options smpi/wtime and smpi/test
-   - InfiniBand network model added : Based on the works of Jerome Vienne
+   - InfiniBand network model added: Based on the works of Jerome Vienne
      http://mescal.imag.fr/membres/jean-marc.vincent/index.html/PhD/Vienne.pdf
    - When smpi/display_timing is set, also display global simulation time and application times
    - Have smpirun, smpicc and friends display the simgrid git hash version on --git-version
  * Collective communications
    - SMP-aware algorithms are now dynamically handled. An internal communicator is created for each node, and an external one to handle communications between "leaders" of each node
-   - MVAPICH2 (1.9) collective algorithms selector : normal and SMP algorithms are handled, and selection logic is based on the one used on TACC's Stampede cluster (https://www.tacc.utexas.edu/stampede/).
+   - MVAPICH2 (1.9) collective algorithms selector: normal and SMP algorithms are handled, and selection logic is based on the one used on TACC's Stampede cluster (https://www.tacc.utexas.edu/stampede/).
    - Support for Rabenseifner Reduce/Allreduce algorithms (https://fs.hlrs.de/projects/par/mpi//myreduce.html)
  * Replay
    - Replay now uses algorithms from wanted collective selector
@@ -808,7 +808,7 @@ SimGrid (3.12) stable; urgency=low
    - Memory occupation of replay should now be contained (temporary buffers allocated in collective algorithms should be shared between processes)
    - Replay can now replay several traces at the same time (check examples/smpi/replay_multiple example), to simulate interactions between several applications on a given platform. User can specify the start time of each instance. This should also allow replay + actual applications to run.
  * Bug fixes
-   - [#17799] : have mpi_group_range_incl and mpi_group_range_excl better test some corner cases
+   - [#17799]: have mpi_group_range_incl and mpi_group_range_excl better test some corner cases
    - Correctly use loopback on fat-tree clusters
    - Asynchronous small messages shouldn't trigger deadlocks anymore
  * Energy/DVFS cleanup and improvement
@@ -834,7 +834,7 @@ SimGrid (3.12) stable; urgency=low
   * New functions
    - Add a xbt_heap_update function, to avoid costly xbt_heap_remove+xbt_heap_insert use
    - Add a xbt wrapper for simcall_mutex_trylock (asked in [#17878])
-   - Add two new log appenders : rollfile and splitfile. Patch by Fabien Chaix.
+   - Add two new log appenders: rollfile and splitfile. Patch by Fabien Chaix.
    - xbt_dirname and xbt_basename for non-POSIX systems
  MC
   * The model checker now runs as a separate process.
@@ -935,18 +935,18 @@ SimGrid (3.11) stable; urgency=low
    one node.
  * Collective communication algorithms should not crash if used with
    improper number of nodes and report the error.
- * SMPI now partially supports MPI_Topologies : MPI_Cart_create, MPI_Cart_shift,
+ * SMPI now partially supports MPI_Topologies: MPI_Cart_create, MPI_Cart_shift,
    MPI_Cart_rank, MPI_Cart_get, MPI_Cart_coords, MPI_Cartdim_get,
    MPI_Dims_create, MPI_Cart_sub are supported.
  * New interface to use SMPI programmatically (still depends on MSG for
-   some parts, see examples/smpi/smpi_msg_masterslave) :
+   some parts, see examples/smpi/smpi_msg_masterslave):
    - SMPI_app_instance_register(const char *name, xbt_main_func_t code,
         int num_processes)
    - SMPI_init()
    - SMPI_finalize();
  * Global variables privatization in MPI executables is now performed at runtime
    with the option smpi/privatize_global_variables (default:no).
-   Limitations : Linux/BSD only, with mmap enabled. Global variables inside
+   Limitations: Linux/BSD only, with mmap enabled. Global variables inside
    dynamic libraries loaded by the application are not privatized (static
    linking with these libraries is advised in this case)
 
@@ -1021,7 +1021,7 @@ SimGrid (3.10) stable; urgency=low
    - allows to select one in particular with --cfg=smpi/coll_name:algorithm
    - allows to use the decision logic of OpenMPI(1.7) or MPICH(3.0.4) by setting
      --cfg=smpi/coll_selector:(mpich/ompi)
- * Support for new functions : MPI_Issend, MPI_Ssend, Commutative operations in
+ * Support for new functions: MPI_Issend, MPI_Ssend, Commutative operations in
    Reduce
  * Add a --cfg:tracing/smpi/internals option, to trace internal communications
    happening inside a collective SMPI call.
@@ -1232,7 +1232,7 @@ SimGrid (3.8) stable; urgency=low
    by a SD_TASK_COMM_E2E typed task. This rate depends on both the nominal
    bandwidth on the route onto which the task is  scheduled and the amount of
    data to transfer.
-   To divide the nominal bandwidth by 2, the rate then has to be :
+   To divide the nominal bandwidth by 2, the rate then has to be:
                      rate = bandwidth/(2*amount)
  * Compute tasks that have failed can now be rescheduled and executed again
    (from their beginning)
@@ -2308,7 +2308,7 @@ SimGrid (3.3.2) stable; urgency=low
       action_free ~> action_unref
       action_change_state ~> action_state_set
       action_get_state    ~> action_state_get
-    - Change model methods into functions :
+    - Change model methods into functions:
       (model)->common_public->action_use  ~> surf_action_ref
 
   * Implement a generic resource; use it as ancestor to specific ones
@@ -2739,7 +2739,7 @@ SimGrid (3.1) stable; urgency=high
   * After a (long ?) discussion on simgrid-devel, we have decided that the
     convention we had on units was stupid. That is why it has been decided
     to move from (MBits, MFlops, seconds) to (Bits, Flops, seconds).
-    WARNING : This means that all previous platform files will not work as
+    WARNING: This means that all previous platform files will not work as
     such with this version! A warning is issued to ask users to update
     their files. [AL]
     A conversion script can be found in the contrib module of the CVS, under
@@ -3200,7 +3200,7 @@ SimGrid (2.90) unstable; urgency=low
   * REVOLUTION 1: The SimGrid project has merged with the GRAS project
     lead by Martin Quinson. As a consequence SimGrid gains a lot in
     portability, speed, and a lot more but you'll figure it out later.
-    SimGrid now comprises 3 different projects : MSG, GRAS and SMPI.
+    SimGrid now comprises 3 different projects: MSG, GRAS and SMPI.
     I wanted to release the new MSG as soon as possible and I have
     broken GRAS, which is the reason why, for now, only MSG is fully
     functional. A laconic description of these projects is available
@@ -3215,7 +3215,7 @@ SimGrid (2.90) unstable; urgency=low
 
   * REVOLUTION 3: I have tried to change a little as possible the API of
     MSG but a few things really had to disappear. The main differences
-    with the previous version are :
+    with the previous version are:
        1) no more m_links_t and the corresponding functions. Platforms are
          directly read from a XML description and cannot be hard-coded
          anymore. The same format is used for application deployment
index cf8aca9..ede94c1 100644 (file)
@@ -166,7 +166,7 @@ Most of these are best described in <a href="http://www.cs.arizona.edu/~dkl/rese
  - 2dmesh: organizes the nodes as a two dimensional mesh, and perform allgather 
    along the dimensions
  - 3dmesh: adds a third dimension to the previous algorithm
- - rdb: recursive doubling : extends the mesh to a nth dimension, each one 
+ - rdb: recursive doubling: extends the mesh to a nth dimension, each one 
    containing two nodes
  - pair: pairwise exchange, only works for power of 2 procs, size-1 steps,
    each process sends and receives from the same process at each step
index d108dc3..9d08d71 100644 (file)
@@ -1042,7 +1042,7 @@ to choose between them.
 \subsection options_smpi_privatize_libs smpi/privatize-libs: Automatic privatization of
  global variables inside external libraries
 
-Linux/BSD only : When using dlopen (default) privatization, privatize specific 
+Linux/BSD only: When using dlopen (default) privatization, privatize specific 
 shared libraries with internal global variables, if they can't be linked statically. 
 For example libgfortran is usually used for Fortran I/O and indexes in files 
 can be mixed up.
@@ -1050,7 +1050,7 @@ can be mixed up.
 \warning
   This configuration option can only use either full paths to libraries, or full names.
   Check with ldd the name of the library you want to use.
-  Example :
+  Example:
   ldd allpairf90 
     libgfortran.so.3 => /usr/lib/x86_64-linux-gnu/libgfortran.so.3 (0x00007fbb4d91b000)
   Then you can use --cfg=smpi/privatize-libs:"libgfortran.so.3" or --cfg=smpi/privatize-libs:"/usr/lib/x86_64-linux-gnu/libgfortran.so.3", but not "libgfortran" or "libgfortran.so".
index 85ee6d9..94e1194 100644 (file)
@@ -403,7 +403,7 @@ several other tags that are available only in certain contexts.
 \subsubsection pf_router &lt;router/&gt;
 
 As said before, <b>router</b> is used only to give some information
-for routing algorithms. So, it does not have any attributes except :
+for routing algorithms. So, it does not have any attributes except:
 
 #### Attributes ####
 
@@ -1001,7 +1001,7 @@ routing model (the path is given relative to SimGrid's source directory)
 
 \verbinclude example_filelist_routing_dijkstra
 
-Dijkstra example :
+Dijkstra example:
 \verbatim
  <zone id="zone_2" routing="Dijkstra">
      <host id="zone_2_host1" speed="1000000000"/>
@@ -1051,7 +1051,7 @@ if there are no example files listed here, this is likely to be correct.
 \anchor pf_routing_model_full
 ### Full ###
 
-Full example :
+Full example:
 \verbatim
 <zone  id="zone0"  routing="Full">
    <host id="host1" speed="1000000000"/>
@@ -1297,7 +1297,7 @@ to bypass some routes defined in lower level zone at an upper stage:
 <b>bypasszoneroute</b> is the tag you're looking for. It allows to
 bypass routes defined between already defined between zone (if you want
 to bypass route for a specific host, you should just use byPassRoute).
-The principle is the same as zoneroute : <b>bypasszoneroute</b> contains
+The principle is the same as zoneroute: <b>bypasszoneroute</b> contains
 list of links that are in the path between src and dst.
 
 #### Attributes ####
@@ -1330,10 +1330,10 @@ attribute was not given, this route is presumed to be symmetrical.
 As said before, once you choose
 a model, it (most likely; the constant network model, for example, doesn't) calculates routes for you. But maybe you want to
 define some of your routes, which will be specific. You may also want
-to bypass some routes defined in lower level zone at an upper stage :
+to bypass some routes defined in lower level zone at an upper stage:
 <b>bypassRoute</b> is the tag you're looking for. It allows to bypass
 routes defined between <b>host/router</b>. The principle is the same
-as route : <b>bypassRoute</b> contains list of links references of
+as route: <b>bypassRoute</b> contains list of links references of
 links that are in the path between src and dst.
 
 #### Attributes ####
@@ -1373,7 +1373,7 @@ and zone_2. If you want to make a host (h1) from zone_1 with another one
     defined inside zone_Big. If you choose some shortest-path model,
     this route will be computed automatically.
 
-As said before, there are mainly 2 tags for routing :
+As said before, there are mainly 2 tags for routing:
 \li <b>zoneroute</b>: to define routes between two  <b>zone</b>
 \li <b>route</b>: to define routes between two <b>host/router</b>
 
@@ -1387,7 +1387,7 @@ say that zone_1 contains full routes, and zone_2 contains some Floyd
 routing (as we don't want to bother with defining all routes). As
 we're using some shortest path algorithms to route into zone_2, we'll
 then have to define some <b>route</b> to gives some topological
-information to SimGrid. Here is a file doing it all :
+information to SimGrid. Here is a file doing it all:
 
 \verbatim
 <zone  id="zone_Big"  routing="Dijkstra">
@@ -1610,7 +1610,7 @@ platforms.
 
 \subsection pf_exit_zone Exit Zone: why and how
 Users that have looked at some of our platforms may have notice a
-non-intuitive schema ... Something like that :
+non-intuitive schema ... Something like that:
 
 
 \verbatim
@@ -1715,7 +1715,7 @@ You may have noted that conveniently, a peer named FOO defines an zone named FOO
 Choosing wisely the routing model to use can significantly fasten your
 simulation/save your time when writing the platform/save tremendous
 disk space. Here is the list of available model and their
-characteristics (lookup : time to resolve a route):
+characteristics (lookup: time to resolve a route):
 
 \li <b>Full</b>: Full routing data (fast, large memory requirements,
     fully expressive)