After several internal releases, we are finally ready to unleash some
7.1 betas on the world.
The LAM Team would greatly appreciate external testing on LAM/MPI 7.1,
available in the beta section of the LAM web site:
http://www.lam-mpi.org/beta/
Some of the most notable changes are:
- The ability to have binary, drop-in SSI modules. Configuring LAM
with "--disable-static --enable-shared --with-modules" will build all
SSI modules are shared library components under $prefix/lib/lam that
are opened at run-time (i.e., LAM will open whatever is in that
directory, to include third-party SSI modules)
- SLURM and BProc 4.0 support
- Preliminary Infiniband support (i.e., an "ib" rpi module, albiet with
performance that still needs to be tuned)
- Fixes to all know gm rpi module problems
- Shared memory collective algorithms
- The "-param <type> <module>" option to the laminfo command shows all
SSI parameters for that type and module (including the wildcard "all")
Here is a complete summary of the changes from the 7.1 HISTORY file
(also available in prettyprint at http://www.lam-mpi.org/svn/new.php):
- Added first version of Infiniband RPI module (ib).
- Fix a problem where $includedir/lam_config.h may end up with
permissions affected by the installer's default umask instead of
being set to 0644. Thanks to hzmonte for pointing this out, as well
as various documentation fixes.
- Added preliminary support for the upcoming BProc 4.0 release. Thank
you to Luke Palmer and Daniel Gruner for helping test the changes.
- Added ability for mpirun to start applications that have execute but
not read permissions (thanks to dling_at_[hidden] for pointing this
out). Only works if the -s option is not given to mpirun. Also
fixed path searching problem when ./test was specified as command to
mpirun.
- mpirun is now better about returning non-zero in the cases where
the launched job aborts before calling MPI_INIT.
- Add support for ptmalloc2 and Apple Darwin/OS X memory managers when
catching deallocations for unpinning user memory.
- Added possibility of using IMPI_HOST_NAME environment variable for
external name publishing. Thanks to Alexander Inyukhin for
contributing a path for this.
- Fixed ordering of LAM_SESSION_SUFFIX and batch system ID evaluation
when determining the session directory suffix. Thanks to Rich Drake
for pointing out this problem.
- Added collectives for inter-communicators.
- Added SHMEM coll SSI module.
- Add C++ constants MPI::ARGV_NULL and MPI::ARGVS_NULL
- Added rpi_tcp_sockbuf and rpi_crtcp_sockbuf SSI params to set OS
socket buffering sizes.
- Added support for optional MPI datatypes MPI_INTEGER1, MPI_INTEGER2,
MPI_INTEGER4, MPI_REAL4, and MPI_REAL8. Added support for
non-existant
MPI datatypes (!) MPI_INTEGER8, MPI_REAL16.
- Added boot_rsh_ignore_stderr SSI parameter for users too lazy to fix
their "dot" files. :-) Thanks to Randy Bramley for suggesting this
feature.
- Added SLURM boot SSI module.
- Added support for run-time dynamically loaded SSI modules. A LAM
installation can therefore be extended by simply adding a shared
library SSI module into a specific directory.
- Various gm RPI fixes:
- Added --with-rpi-gm-lib option to specify a non-default location
for the GM library. Thanks to Tom Crockett for pointing this out.
- Fix for incorrectly handling when gm dropped packets. Thanks to
several LAM users pointing this out to us.
- Performance improvements in the gm RPI; no more "short" message
protocol -- only "tiny" and "long".
- Added "fast" support for the gm rpi module, although it's
unreliable for communication-intense applications (and therefore
disabled by default).
- Support for building the gm rpi module dynamically.
- The gm RPI module now supports checkpoint/restart (must set the
rpi_gm_cr SSI parameter to 1), but only when used with gm_get()
(see below).
- Enable experimental use of the gm 2.x gm_get() function for long
messages when explicitly asked for with the --with-rpi-gm-get
configure switch.
- Added smp-aware collective algorithms for the following MPI
functions: MPI_ALLGATHER, MPI_ALLGATHERV, MPI_REDUCE_SCATTER,
MPI_SCAN.
- Added new MPI functions: MPI_EXSCAN and MPI_ALLTOALLW.
- Added the feature of preventing cascading of help messages (on a per
helpfile basis). This feature can be turned off by setting the
LAM_MPI_ALLOW_CASCADE_HELP environment variable.
- Added "mpi_hostmap" SSI parameter to transform the IP addresses
supplied by the LAM run-time environment to an alternate set of
addresses that will be used for MPI communications. Thanks to
Jean-Marie Teuler and Robin Humble for suggesting this feature.
- Added option "-prefix </lam/install/path>" in lamboot and lamwipe
to allow users to switch between LAM installations without having
to modify their local environments.
- Added "prefix" parameter for the rsh boot module boot schema files
to allow users to specify different LAM installation paths on
different nodes.
- Added a new MPI_COMM_SPAWN info key (lam_no_root_node_schedule) to
disallow processes to be spawned on the root node.
- Wrapper compilers now do not add any additional flags unless there
is at least one argv that does not begin with "-" (e.g., "mpicc -v"
will not add any additional LAM/MPI-specific flags).
- Added options:cxx_exceptions output in laminfo to indicate whether
LAM was configured --with-cxx-exceptions or not.
- Added -param option to laminfo to display available SSI parameters
and their default values.
- Added -showme:compile and -showme:link flags to the wrapper
compilers for printing out the compiler and linker flags,
respectively. For example "cc foo.c `mpicc -showme:compile`" and
"cc foo.o `mpicc -showme:link` -o foo".
- Renamed "wipe" command to "lamwipe" per request from the Mandrake
Cooker team. The name "wipe" is now deprecated, and will be removed
in some future release.
- Added "lamcheckpoint" and "lamrestart" commands. These commands can
be used to call the module-specific Checkpoint and Restart functions.
- Removed the reset of the MAKE macro in romio/Makefile.in that
disallowed using a make other that what is found at configure time.
Thanks to Richard Hadsell for tracking this down.
- Fixed some missing <etc_misc.h> header files that caused unresolved
symbols on some platforms. Thanks to Richard Hadsell for tracking
this down.
- Added possitiblity of --without-exflags to force *not* using any
special C++ exception compiler flags. Thanks to Richard Hadsell for
pointing this out.
- Fix man page sections. Thanks to Camm Maguire for pointing out
these errors.
- Only execute .profile if it exists in the rsh module. Thanks for
the patch from Camm Maguire.
- Fixed error in lamnet code used to find available interfaces when
we don't pre-allocate enough space (on FreeBSD - thanks to Masakazu
Higaki for pointing out this problem).
--
{+} Jeff Squyres
{+} jsquyres_at_[hidden]
{+} http://www.lam-mpi.org/
|