[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mpi-21] ABI: feature categories
To clarify the debate surrounding the ABI
proposal I've gone through Greg Lindahl's talk
and broken the main points of the talk down into the following categories:
User-MPI interactions
Application-MPI interactions
System-MPI interactions
As we've discussed, about morph layers address
all the points under the "Application-MPI
interactions" category. In other words, if we
used morph layers we wouldn't need to standardize
things like mpi.h. What's left are the User-MPI
and System-MPI interactions. The question that I
would like to put forward is: How useful are
these? Most of the discussion I've heard recently
focuses on Application-MPI interactions. If we
can table this for the time being until morph
layers can be evaluated, is there enough support
to proceed with the rest of the proposal or is
the Application-MPI interactions the core part? Please speak up.
User-MPI interactions
?mpistart? -- ?mpirun? with standard args
Start over: ?mpistart? with standardized args
Require features such as
supporting pipes of stdin, stdout, error
--batch and ?batch-wait to
assist scripting in the presense of batch queues... noop if no queue sys
Application-MPI interactions
Fully specify what's in <mpi.h> and ?mpif.h?
Variably-sized items have to be nailed down
MPI_Status must have fixed length
Need a sane shared-library setup to avoid relinking
I think this means we need 1
base library instead of the usual chaos
Implementers can dlopen() additional libs as needed
Perhaps we can have a clever
upward-compatible scheme for MPI 1 and MPI 2 libs
System-MPI interactions
Fully specify startup and queue system interaction in a flexible way
Queue sys handles creation of MPI processes
Standard command-line for MPI
process, with enough info to connect to the ? job?
MPI implementation provides ? job? process; all
MPI processes contact to coordinate.
? job? process started by mpistart
Queue sys ensures all MPI processes exit at end.
I think this supports all
existing queue systems and MPI implementations
Specify environmental items so that most apps are portable
Getenv / putenv: most
implementations don't propagate env vars to ranks
1+; few support using putenv to other processes.
Cwd depends on batch system and sysadmin
2 choices: least common denominator, or query fns?
Stack size. Usually painful for users to fix.
stdin/stdout/stderr... oh, don't forget buffering...
MPI-I/O.
Actions before/after mpi_init/finalize
Greg Bronevetsky
Post-Doctoral Researcher
1028 Building 451
Lawrence Livermore National Lab
(925) 424-5756
bronevetsky1@xxxxxxxx