Feature #944: AMPI compliance with MPI-2.2 standard
AMPI missing built-in MPI_INFO_ENV
From the MPI standard:
After MPI is initialized, the application can access information about the execution environment by querying the predefined info object MPI_INFO_ENV. The following keys are predefined for this object, corresponding to the arguments of mpiexec:
command: name of program executed. argv: space separated arguments to command. maxprocs: maximum number of MPI processes to start. soft: allowed values for number of processors. host: hostname. arch: architecture name. wdir: working directory of the MPI process. file: value is the name of a file in which additional information is specified. thread_level: requested level of thread support, if requested before the program started execution.
Note that all values are strings. Thus, the maximum number of processes is represented by a string such as "1024" and the requested level is represented by a string such as "MPI_THREAD_SINGLE".
The info object MPI_INFO_ENV need not contain a (key,value) pair for each of these predefined keys; the set of (key,value) pairs provided is implementation-dependent. Implementations may provide additional, implementation specific, (key,value) pairs.
#2 Updated by Sam White over 2 years ago
We might want to supply builtin MPI_Info objects for AMPI_Migrate, so users don't have to always create their own. This will simplify adding AMPI_Migrate calls to applications from 4 lines to 1 line:
Predefined MPI_Infos for AMPI_Migrate:
AMPI_INFO_LB_SYNC AMPI_INFO_LB_ASYNC AMPI_INFO_CHKPT_IN_MEMORY
Example new usage:
This is much simper than the old way:
MPI_Info info; MPI_Info_create(&info); MPI_Info_set(info, "ampi_load_balance", "sync"); AMPI_Migrate(info);
This would be done in a separate commit anways, just an idea...