03/27/2008 (1.2.7p1..20) ------------------------ * Define missing macro 03/03/2008 (1.2.7p1..19) ------------------------ * Improve overlap of large messages 10/02/2007 (1.2.7p1..18) ------------------------ * Correct version - 1.2.7p1..17 used 1.2.6 by mistake 10/02/2007 (1.2.7p1..17) ------------------------ * Add static to MPIOI_Type_block and MPIOI_Type_cyclic to allow building shared libs 08/29/2007 (1.2.7p1..16) ------------------------ * Update MPICH to 1.2.7p1 * Add testwait patch from ANL to improve MPI standard conformance 23/06/2006 (1.2.7..15a) ---------------------- * small fix in mpich.make.gcc 5/06/2006 (1.2.7..15) ---------------------- * upgrade to mpich-1.2.7 * Fix for solaris with registration * Make waitsome block in blocking mode * Fix compilation problem with gcc-4.0 17/06/2005 (1.2.6.14b) --------------------- * catch common signals to print origin, unless --gm-no-sigcatch is used. * For AIX, make mpigmlabel and MALLOC_TYPE compatible (via mpigmlabel -e arg) * shmem file was not removed with --gm-shmem-prefix * mpirun.ch_gm: retry to fork after waiting to workaround Macos limitations * gmpi_thread_weak.c: also define __libc_memalign to fix "-static" compile on some glibc * fix shmdt() bug that would break any program using shmdt() * allow stdin on node 0 with or without --gm-tree-spawn * totalview/ddt fix (spurious -mpichtv was present on node 0) * Redhat/ppc64 compile fix 1/15/2005 (1.2.6..14a): ----------------------- * in mpicxx.in, add explicit -lstdc++ in macosx case * correct some typo/errors in the output of mpirun.ch_gm --help * documentation update in README-mpich-gm * fix compilation problem when used with versions of gm <= 2.0.13 1/10/2005 (1.2.6..14): ----------------------- * modify #pragma weak sequence in fortran wrappers to support icc 8.1 * add --gm-shmem-prefix option (location of file used for shared-mem communications) * add extra memory barrier after gm_receive (ppc64) * add non-official/non-supported --gm-fixed-alloc option to do static port allocation * add --gm-copy-env to export env variables to children * add --gm-tree-spawn option to distribute spawning in a tree fashion * add --gm-label support to add a : prefix to the output of each task (done by the monitoring process mentioned above). * supports using memory allocated by shm (interact with registration cache) * remove ppc64 conservative settings (gm >= 2.0.15 autodetect IOMMU size) * DISPLAY is only inherited if has a global value (as opposed to "localhost:n" or ":n") * RSHCOMMAND can be specified at runtime (override the configuration default) * bug fix: if some application not part of the job tries to send packet to us, ignore the packet in addition to printing a warning 09/28/2004 (1.2.6..13b): ----------------------- * AIX support: - adds some routines like __malloc__ to the embedded malloc routines in mpich - installs an "aixmalloc.exp" in ${PREFIX}/lib - when the MPICH executable is run, the environment variables MALLOCTYPE and LIBPATH are set such that: MALLOCTYPE=user: LIBPATH=$LIBPATH: - add -bE:aixmalloc.exp to link line in mpicc (through mpich.make.aix) 09/13/2004 (1.2.6..13a): ----------------------- * Fix missing definition of gmpi_pthread_mutex_trylock for non-x86[_64] platforms with non-gcc compilers 08/09/2004 (1.2.6..13): ----------------------- * For --disable-registration, add to mpirun.ch_gm the --gm-bounce-buffers option to tune the number of intermediary buffers to use for communications. * Add some Macos patches * Upgrade to mpich-1.2.6 * Add counters, can be printed with mpirun.ch_gm verbose option or GMPI_VERBOSE=1 - with the verbose option on, the counters can be printed in the middle of execution by sending SIGUSR1 to the process * Internal changes to corrects a possible deadlock on small size IOMMUs, typically powerpc. - Change defaults for large message pipeline size - Function ok_to_send: Don't register memory if going to wait into the FIFO (helps for small size IOMMus). - Split the request queue (as it was a long time ago :-)) into two fifo: One for send activities One for recv activities Implement degraded mode through a bounce buffer to guarantee progress when no more locked-pages are available - gmpi_use_interval returns 0 in case of error rather than possible partial allocation - Compute correctly Garbage Collector required count (cosmetic change) - allow to optionally bound the amount of in-use locked memory - tweak various constants for powerpc * Small changes in the info printed when a communication fails * Add printf at start to tell if asserts or checksums are enabled * Use magic number in packets to prevent any interference from gm processes external to the application * Modify pthread_mutex_trylock weak symbol, to avoid using a non-null weak symbols whose semantics clash with symbol versioning (using mpicc -pthread instead of mpicc -lpthread would then lead to a non-thread safe malloc) * Correct bug in mpd introduced with the gm1/2 compatibility stuff * Introduce the --gm-lock-mbytes option to put a cap on the amount of gm_registered memory per process. By default cap at half physical memory divided by the number of processes allocated to this node for the job. * change the recommended default for pgi compilers to not make a shared lib some versions of pgi compilers seem to have problems with -fPIC * Include MPICH patches no yet in 1.2.5.2 from http://www.mcs.anl.gov/mpi/mpich/buglist-tbl.html 8697 fixes typo in Fortran interface for MPI_Wtime patchfile 8713 fix to the MPI-IO Fortran interface for some compilers (e.g. gcc 3.x) * Check if -D__WORDSIZE=32 was needed and omitted (http://www.myri.com/fom-serve/cache/277.html) 03/09/2004 (1.2.5..12): ----------------------- * use mostly undocumented "#pragma weak" to avoid requiring -lpthread in mono-threaded programs even when mpich is compiled with PGI compilers * correct a malloc bug that can cause realloc to fail in multithreaded apps (many thanks to Alexey V Medvedev (GDT Software Group)) * mpicc default is now to use shared library, use -noshlib or MPICH_USE_SHLIB=no to revert to static linking * minimize warnings when compiling (#undef GM_DISABLE_REGISTRATION vs #define 0), remove gm_inline for extern functions,...) * add COPYING notice in main directory to point to the different copyright/license * MACOSX support (potentially useful for others): - ensure ranlib is called where appropriate after making fortran libs and before make c++ solves problems on any OS where ranlib is mandatory - add shared library support for macosx (very specific toolchain :-) - add the macosx malloc implementation (registration works with C++/fortran code) - simplify macosx building (remove specific mpicc.macosx.in mpicxx.macox.in) - change mpiCC invocations into mpicxx for case-insensitive filesystems, allow to build with C++ support os on such filesystems (macosx, potential some windows filesystems as well) * fix bug in --disable-registration case with non-registered data sent when a timeout/retransmission occurs * fix bug in --disable-registration with possible corruption in bounce buffer usage (when several messages sent from same addr are completing out of order), thanks Karen! * rearrange some mpidlib.c code to work around a PGI 32bit compiler bug when the code is compiled with -fPIC * revert to compile ptmalloc2 code with regular compiler by default, but add --with-malloc-cc option in case it is a compiler with known problems * let the OS choose the TCP ports used for passing initialization info back and forth betweem mpirun.ch_gm.pl and the processes, rather than trying from the interval 8000->20000 in a loop * Add missing header to gmpi_conf.c 02/08/2004 (1.2.5..11): ----------------------- * Shared lib now also works on non-ia32 archs * Always require gcc to compile the mpich-gm files in mpid/ch_gm/ptmalloc2, even if the rest if compiled with other compilers * Can be compiled in a separate "build" directory * No longer require linking with pthread on Linux * Add a configure option (-with-shmemdir) to specify the path to the file mmaped in user-space to provide the shared memory device. Useful for diskless system where /tmp is not on a local disk but NFS mounted (From Glen Beane at University of Maine). * Remove a debug checksum computation at the wrong place in the shared memory code path. Affect debugging mode only. * Work around a bug in GM about send errors recovery, affecting configuration with at least 2 processes per NIC. The application would just hang when a message would timeout, under some circumstances. * Work arund the changes of semantic in GM-2 about node ids, without using any new GM-2 functions. The MPICH-GM binaries are now compatible with GM-1 and GM-2, depending on which shared library they are dynamically linked with. ISVs will love that, they will ship only one binary :-) * MPICH version 1.2.5.2. 05/04/2003 (1.2.5..10 - minor A): --------------------------------- * Fix segfault when using MPD. 05/01/2003 (1.2.5..10): ----------------------- * Use ptmalloc instead of dlmalloc to provide a thread safe malloc lib. * New design of the information retrieval at spawn time (sockets). * Fix bug in unexpected blocking send to self (very rarely used). * Add support for NUMA configuration mapping (From Kevin Van Maren at Unisys). * Work around a bug in the Intel C compiler 7.x when compiling the malloc lib. * Implement support for a generic remote shell command, enabling the use of "ssh -P" to use non-privileged ports to push the limit of ssh-based spawning method. * add "sparc" to the case where alignement in the shared memory device should be respected (was only "sparc64" for Solaris before). * Fix a (bad, ugly, shameful, stupid) performance bug when memory registration is disabled (Solaris only). * Remove a rare case of deadlock when memory registration is disabled (Solaris only). * Add support for GM-2. * Various bug fixes and cosmetic changes. 02/10/2003 (1.2.5..9): ----------------------- * Work-around to catch Intel 7.0 compiler usage of mmap/munmap instead of malloc/free when implementing the F90 allocate/deallocate statement. Without this work-around (catch of the munmap syscall), use of F90 deallocate would silently corrupt memory. * Implemented an mpirun.ch_gm.args file to support mpirun.ch_gm specific flags with the top-level mpirun script. mpirun and mpirun.ch_gm are now completely compatible. * Fixed bug in local process detection using MPD; it was impossible to use shared memory with MPD. * Fixed bug in processing of unexpected self messages generated by blocking send calls (improperly calling rhandle->finish). * Merged Totalview support. * Added support for DDT debugger. * Added a protection to prevent the usage of the shared memory device at the same time as blocking or hybrid GM receive mode. Devices are not allowed to block in a multi-device configuration. * Fixed a bug in the configure script to disable memory registration when using MPICH-GM on Solaris. * Limit the rate of unexpected queue and delayed queue increases to avoid memory exhaustion with pathological (but still in spec) applications. * Added a test to check if the malloc hooks used by MPICH-GM with memory registration are used and not overloaded by another definition of malloc. * Change the order of the flags and the hostname for ssh and rsh in mpirun.ch_gm to support AIX. * Change optimization level of the malloc lib compilation, Intel Compilers were too aggressive with -O2. * Minor typo corrections. 08/09/2002 (1.2.4..8a): ----------------------- * Propagate the Machine file name from the mpirun call to the mpirun.ch_gm.pl Perl script, if any. * Better support/compatibility for Procgroup file (Thanks Maxim from .ru). * Support for change of working directory (flag "-wd") and use of current directory as default working directory (Thanks Luc Renambot from .nl). MPICH-GM 1.2.4..8: ================== * New mpirun.ch_gm script: - Support for ProcGroup file, for spawning multiple executables (no support for heterogeneous configuration yet), using the flag "-pg". - Possibility to close stdin on the process MPI Id 0, to put jobs in background, using the flag "-s". - Perl script completely rewritten (usage and flags available with "mpirun.ch_gm" without arguments). * Use of MPICH machine file instead of MPICH-GM specific "conf" file: GM ports are now dynamically and locally allocated by each process. * Support for MPD (Multi-Purpose Daemon) for large configurations. * Complete implementation of MPI_Abort(). * Implementation of MPI_Cancel for shared-memory messages. * Shared memory support for intra-node communication is enabled by default, and may be disabled at run-time. If you pass the "--gm-no-shmem" flag to mpirun.ch_gm at run-time, the shared memory device will be disabled. * One major bug fix (GM Send timeout) and various minor ones. * more hooks for progression in core, should slightly increase performance (your mileage may vary).