Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana University Research and Technology Corporation. All rights reserved. Copyright (c) 2004-2006 The University of Tennessee and The University of Tennessee Research Foundation. All rights reserved. Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, University of Stuttgart. All rights reserved. Copyright (c) 2004-2006 The Regents of the University of California. All rights reserved. Copyright (c) 2006-2007 Cisco Systems, Inc. All rights reserved. Copyright (c) 2006 Voltaire, Inc. All rights reserved. Copyright (c) 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Copyright (c) 2006-2007 Los Alamos National Security, LLC. All rights reserved. $COPYRIGHT$ Additional copyrights may follow $HEADER$ =========================================================================== This file contains the main features as well as overviews of specific bug fixes (and other actions) for each version of Open MPI since version 1.0. Trunk (not on release branches yet) ----------------------------------- - Add Valgrind-based memory checking for MPI-semantic checks. -Add support for some optional Fortran datatypes (MPI_LOGICAL1, MPI_LOGICAL2, MPI_LOGICAL4 and MPI_LOGICAL8) -Convert the C++ Comm, Datatype and Winn keyval creation and intercept callbacks to *not* use the STL as well as removing the STL use from the error handler routines. This was removing the STL from the C++ bindings (Solaris has 2 versions of the STL; if OMPI uses one and an MPI application wants to use another, Bad Things happen). The main idea is to wrap up the C++ callback function pointers and the user's extra_state into our own struct that is passed as the extra_state to the C keyval registration along with the intercept routines in intercepts.cc. When the C++ intercepts are activated, they unwrap the user's callback and extra state and call them. - Added Cray Compute Node Linux (CNL) and ALPS Support. --> Expected: ??? - Added Microsoft Windows support. See README.WINDOWS file for details. --> Expected: ??? - Addition of "dr" (data reliability) PML. --> Expected: ??? - Added threaded progress for the openib BTL (waiting on other threading support) --> Expected: ??? - Added the Sparse Groups implementation. --> Expected: 1.3 - Added support for Platform/LSF job launchers. Must be Platform LSF v7.0.2 or later. --> Expected 1.3 - Updated ROMIO with the version from MPICH2 1.0.5p4 --> Expected: 1.3 - Add RDMA capable one-sided component (called rdma), which can be used with BTL components that expose a full one-sided interface. --> Expected: 1.3 - Added btl_openib_if_[in|ex]clude MCA parameters for including/excluding comma-delimited lists of HCAs and ports. --> Expected: 1.3 - Add the optional datatype MPI_REAL2. As this is added to the "end of" predefined datatypes in the fortran header files, there will not be any compatibility issues. --> Expected 1.3 - Add Portable Linux Processor Affinity (PLPA) for Linux --> Expected: 1.3 - Release tarballs now use Autoconf 2.61 and Automake 1.10. --> Expected: 1.3 - Addition of a finer symbols export control via the visibiliy feature offered by some compilers. --> Expected: 1.3 - Added checkpoint/restart process fault tolerance support. Initially support a LAM/MPI-like protocol. --> Expected: 1.3 - Removed "mvapi" BTL; all InfiniBand support now uses the OpenFabrics driver stacks. --> Expected: 1.3 - Added more stringent MPI API parameter checking to help user-level debugging. --> Expected: 1.3 1.2.6 (not released yet, if ever) ----- - Made the openib BTL a bit more resillient in the face of driver errors. See ticket #1217. - Fixed F90 interface for MPI_CART_CREATE. See ticket #1208. Thanks to Michal Charemza for reporting the problem. - Fixed some C++ compiler warnings. See ticket #1203. - Fixed formatting of the orterun man page. See ticket #1202. Thanks to Peter Breitenlohner for the patch. 1.2.5 ----- - Fixed compile issue with open() on Fedora 8 (and newer) platforms. Thanks to Sebastian Schmitzdorff for noticing the problem. - Added run-time warnings during MPI_INIT when MPI_THREAD_MULTIPLE and/or progression threads are used (the OMPI v1.2 series does not support these well at all). - Better handling of ECONNABORTED from connect on Linux. Thanks to Bob Soliday for noticing the problem; thanks to Brian Barrett for submitting a patch. - Reduce extraneous output from OOB when TCP connections must be retried. Thanks to Brian Barrett for submitting a patch. - Fix for ConnectX devices and OFED 1.3. See ticket #1190. - Fixed a configure problem for Fortran 90 on Cray systems. Ticket #1189. - Fix an uninitialized variable in the error case in opal_init.c. Thanks to Ake Sandgren for pointing out the mistake. - Fixed a hang in configure if $USER was not defined. Thanks to Darrell Kresge for noticing the problem. See ticket #900. - Added support for parallel debuggers even when we have an optimized build. See ticket #1178. - Worked around a bus error in the Mac OS X 10.5.X (Leopard) linker when compiling Open MPI with -g. See ticket #1179. - Removed some warnings about 'rm' from Mac OS X 10.5 (Leopard) builds. - Fix the handling of mx_finalize(). See ticket #1177. Thanks to Ake Sandgren for bringing this issue to our attention. - Fixed minor file descriptor leak in the Altix timer code. Thanks to Paul Hargrove for noticing the problem and supplying the fix. - Fix a problem when using a different compiler for C and Objective C. See ticket #1153. - Fix segfault in MPI_COMM_SPAWN when the user specified a working directory. Thanks to Murat Knecht for reporting this and suggesting a fix. - A few manpage fixes from the Debian Open MPI maintainers. Thanks to Tilman Koschnick, Sylvestre Ledru, and Dirk Eddelbuettel. - Fixed issue with pthread detection when compilers are not all from the same vendor. Thanks to Ake Sandgren for the bug report. See ticket #1150. - Fixed vector collectives in the self module. See ticket #1166. - Fixed some data-type engine bugs: an indexing bug, and an alignment bug. See ticket #1165. - Only set the MPI_APPNUM attribute if it is defined. See ticket #1164. 1.2.4 ----- - Really added support for TotalView/DDT parallel debugger message queue debugging (it was mistakenly listed as "added" in the 1.2 release). - Fixed a build issue with GNU/kFreeBSD. Thanks to Petr Salinger for the patch. - Added missing MPI_FILE_NULL constant in Fortran. Thanks to Bernd Schubert for bringing this to our attention. - Change such that the UDAPL BTL is now only built in Linux when explicitly specified via the --with-udapl configure command line switch. - Fixed an issue with umask not being propagated when using the TM launcher. - Fixed behavior if number of slots is not the same on all bproc nodes. - Fixed a hang on systems without GPR support (ex. Cray XT3/4). - Prevent users of 32-bit MPI apps from requesting >= 2GB of shared memory. - Added a Portals MTL. - Fix 0 sized MPI_ALLOC_MEM requests. Thanks to Lisandro Dalcin for pointing out the problem. - Fixed a segfault crash on large SMPs when doing collectives. - A variety of fixes for Cray XT3/4 class of machines. - Fixed which error handler is used when MPI_COMM_SELF is passed to MPI_COMM_FREE. Thanks to Lisandro Dalcini for the bug report. - Fixed compilation on platforms that don't have hton/ntoh. - Fixed a logic problem in the fortran binding for MPI_TYPE_MATCH_SIZE. Thanks to Jeff Dusenberry for pointing out the problem and supplying the fix. - Fixed a problem with MPI_BOTTOM in various places of the f77-interface. Thanks to Daniel Spangberg for bringing this up. - Fixed problem where MPI-optional Fortran datatypes were not correctly initialized. - Fixed several problems with stdin/stdout forwarding. - Fixed overflow problems with the sm mpool MCA parameters on large SMPs. - Added support for the DDT parallel debugger via orterun's --debug command line option. - Added some sanity/error checks to the openib MCA parameter parsing code. - Updated the udapl BTL to use RDMA capabilities. - Allow use of the BProc head node if it was allocated to the user. Thanks to Sean Kelly for reporting the problem and helping debug it. - Fixed a ROMIO problem where non-blocking I/O errors were not properly reported to the user. - Made remote process launch check the $SHELL environment variable if a valid shell was not otherwise found for the user. Thanks to Alf Wachsmann for the bugreport and suggested fix. - Added/updated some vendor IDs for a few openib HCAs. - Fixed a couple of failures that could occur when specifying devices for use by the OOB. - Removed dependency on sysfsutils from the openib BTL for libibverbs >=v1.1 (i.e., OFED 1.2 and beyond). 1.2.3 ----- - Fix a regression in comm_spawn functionality that inadvertently caused the mapping of child processes to always start at the same place. Thanks to Prakash Velayutham for helping discover the problem. - Fix segfault when a user's home directory is unavailable on a remote node. Thanks to Guillaume Thomas-Collignon for bringing the issue to our attention. - Fix MPI_IPROBE to properly handle MPI_STATUS_IGNORE on mx and psm MTLs. Thanks to Sophia Corwell for finding this and supplying a reproducer. - Fix some error messages in the tcp BTL. - Use _NSGetEnviron instead of environ on Mac OS X so that there are no undefined symbols in the shared libraries. - On OS X, when MACOSX_DEPLOYMENT_TARGET is 10.3 or higher, support building the Fortran 90 bindings as a shared library. Thanks to Jack Howarth for his advice on making this work. - No longer require extra include flag for the C++ bindings. - Fix detection of weak symbols support with Intel compilers. - Fix issue found by Josh England: ompi_info would not show framework MCA parameters set in the environment properly. - Rename the oob_tcp_include/exclude MCA params to oob_tcp_if_include/exclude so that they match the naming convention of the btl_tcp_if_include/exclude params. The old names are depreciated, but will still work. - Add -wd as a synonym for the -wdir orterun/mpirun option. - Fix the mvapi BTL to compile properly with compilers that do not support anonymous unions. Thanks to Luis Kornblueh for reporting the bug. 1.2.2 ----- - Fix regression in 1.2.1 regarding the handling of $CC with both absolute and relative path names. - Fix F90 array of status dimensions. Thanks to Randy Bramley for noticing the problem. - Add btl_openib_ib_pkey_value MCA parameter for controlling IB port selection. - Fixed a variety of threading/locking bugs. - Fixed some compiler warnings associated with ROMIO, OS X, and gridengine. - If pbs-config can be found, use it to look for TM support. Thanks to Bas van der Vlies for the inspiration and preliminary work. - Fixed a deadlock in orterun when the rsh PLS encounters some errors. 1.2.1 ----- - Fixed a number of connection establishment errors in the TCP out- of-band messaging system. - Fixed a memory leak when using mpi_comm calls. Thanks to Bas van der Vlies for reporting the problem. - Fixed various memory leaks in OPAL and ORTE. - Improved launch times when using TM (PBS Pro, Torque, Open PBS). - Fixed mpi_leave_pinned to work for all datatypes. - Fix functionality allowing users to disable sbrk() (the mpool_base_disable_sbrk MCA parameter) on platforms that support it. - Fixed a pair of problems with the TCP "listen_thread" mode for the oob_tcp_listen_mode MCA parameter that would cause failures when attempting to launch applications. - Fixed a segfault if there was a failure opening a BTL MX endpoint. - Fixed a problem with mpirun's --nolocal option introduced in 1.2. - Re-enabled MPI_COMM_SPAWN_MULTIPLE from singletons. - LoadLeveler and TM configure fixes, Thanks to Martin Audet for the bug report. - Various C++ MPI attributes fixes. - Fixed issues with backtrace code on 64 bit Intel & PPC OS X builds. - Fixed issues with multi-word CC variables and libtool. Thanks to Bert Wesarg for the bug reports. - Fix issue with non-uniform node naming schemes in SLURM. - Fix file descriptor leak in the Grid Engine/N1GE support. - Fix compile error on OS X 10.3.x introduced with Open MPI 1.1.5. - Implement MPI_TYPE_CREATE_DARRAY function (was in 1.1.5 but not 1.2). - Recognize zsh shell when using rsh/ssh for launching MPI jobs. - Ability to set the OPAL_DESTDIR or OPAL_PREFIX environment variables to "re-root" an existing Open MPI installation. - Always include -I for Fortran compiles, even if the prefix is /usr/local. - Support for "fork()" in MPI applications that use the OpenFabrics stack (OFED v1.2 or later). - Support for setting specific limits on registered memory. 1.2 --- - Fixed race condition in the shared memory fifo's, which led to orphaned messages. - Corrected the size of the shared memory file - subtracted out the space the header was occupying. - Add support for MPI_2COMPLEX and MPI_2DOUBLE_COMPLEX. - Always ensure to create $(includedir)/openmpi, even if the C++ bindings are disabled so that the wrapper compilers don't point to a directory that doesn't exist. Thanks to Martin Audet for identifying the problem. - Fixes for endian handling in MPI process startup. - Openib BTL initialization fixes for cases where MPI processes in the same job has different numbers of active ports on the same physical fabric. - Print more descriptive information when displaying backtraces on OS's that support this functionality, such as the hostname and PID of the process in question. - Fixes to properly handle MPI exceptions in C++ on communicators, windows, and files. - Much more reliable runtime support, particularly with regards to MPI job startup scalability, BProc support, and cleanup in failure scenarios (e.g., MPI_ABORT, MPI processes abnormally terminating, etc.). - Significant performance improvements for MPI collectives, particularly on high-speed networks. - Various fixes in the MX BTL component. - Fix C++ typecast problems with MPI_ERRCODES_IGNORE. Thanks to Satish Balay for bringing this to our attention. - Allow run-time specification of the maximum amount of registered memory for OpenFabrics and GM. - Users who utilize the wrapper compilers (e.g., mpicc and mpif77) will not notice, but the underlying library names for ORTE and OPAL have changed to libopen-rte and libopen-pal, respectively (listed here because there are undoubtedly some users who are not using the wrapper compilers). - Many bug fixes to MPI-2 one-sided support. - Added support for TotalView message queue debugging. - Fixes for MPI_STATUS_SET_ELEMENTS. - Print better error messages when mpirun's "-nolocal" is used when there is only one node available. - Added man pages for several Open MPI executables and the MPI API functions. - A number of fixes for Alpha platforms. - A variety of Fortran API fixes. - Build the Fortran MPI API as a separate library to allow these functions to be profiled properly. - Add new --enable-mpirun-prefix-by-default configure option to always imply the --prefix option to mpirun, preventing many rsh/ssh-based users from needing to modify their shell startup files. - Add a number of missing constants in the C++ bindings. - Added tight integration with Sun N1 Grid Engine (N1GE) 6 and the open source Grid Engine. - Allow building the F90 MPI bindings as shared libraries for most compilers / platforms. Explicitly disallow building the F90 bindings as shared libraries on OS X because of complicated situations with Fortran common blocks and lack of support for unresolved common symbols in shared libraries. - Added stacktrace support for Solaris and Mac OS X. - Update event library to libevent-1.1b. - Fixed standards conformance issues with MPI_ERR_TRUNCATED and setting MPI_ERROR during MPI_TEST/MPI_WAIT. - Addition of "cm" PML to better support library-level matching interconnects, with support for Myrinet/MX, and QLogic PSM-based networks. - Addition of "udapl" BTL for transport across uDAPL interconnects. - Really check that the $CXX given to configure is a C++ compiler (not a C compiler that "sorta works" as a C++ compiler). - Properly check for local host only addresses properly, looking for 127.0.0.0/8, rather than just 127.0.0.1. 1.1.5 ----- - Implement MPI_TYPE_CREATE_DARRAY function. - Fix race condition in shared memory BTL startup that could cause MPI applications to hang in MPI_INIT. - Fix syntax error in a corner case of the event library. Thanks to Bert Wesarg for pointing this out. - Add new MCA parameter (mpi_preconnect_oob) for pre-connecting the "out of band" channels between all MPI processes. Most helpful for MPI applications over InfiniBand where process A sends an initial message to process B, but process B does not enter the MPI library for a long time. - Fix for a race condition in shared memory locking semantics. - Add major, minor, and release version number of Open MPI to mpi.h. Thanks to Martin Audet for the suggestion. - Fix the "restrict" compiler check in configure. - Fix a problem with argument checking in MPI_TYPE_CREATE_SUBARRAY. - Fix a problem with compiling the XGrid components with non-gcc compilers. 1.1.4 ----- - Fixed 64-bit alignment issues with TCP interface detection on intel-based OS X machines. - Adjusted TCP interface selection to automatically ignore Linux channel-bonded slave interfaces. - Fixed the type of the first parameter to the MPI F90 binding for MPI_INITIALIZED. Thanks to Tim Campbell for pointing out the problem. - Fix a bunch of places in the Fortran MPI bindings where (MPI_Fint*) was mistakenly being used instead of (MPI_Aint*). - Fixes for fortran MPI_STARTALL, which could sometimes return incorrect request values. Thanks to Tim Campbell for pointing out the problem. - Include both pre- and post-MPI-2 errata bindings for MPI::Win::Get_attr. - Fix math error on Intel OS X platforms that would greatly increase shared memory latency. - Fix type casting issue with MPI_ERRCODES_IGNORE that would cause errors when using a C++ compiler. Thanks to Barry Smith for bringing this to our attention. - Fix possible segmentation fault during shutdown when using the MX BTL. 1.1.3 ----- - Remove the "hierarch" coll component; it was not intended to be included in stable releases yet. - Fix a race condition with stdout/stderr not appearing properly from all processes upon termination of an MPI job. - Fix internal accounting errors with the self BTL. - Fix typos in the code path for when sizeof(int) != sizeof(INTEGER) in the MPI F77 bindings functions. Thanks to Pierre-Matthieu Anglade for bringing this problem to our attention. - Fix for a memory leak in the derived datatype function ompi_ddt_duplicate(). Thanks to Andreas Schafer for reporting, diagnosing, and patching the leak. - Used better performing basic algorithm for MPI_ALLGATHERV. - Added a workaround for a bug in the Intel 9.1 C++ compiler (all versions up to and including 20060925) in the MPI C++ bindings that caused run-time failures. Thanks to Scott Weitzenkamp for reporting this problem. - Fix MPI_SIZEOF implementation in the F90 bindings for COMPLEX variable types. - Fixes for persistent requests involving MPI_PROC_NULL. Thanks to Lisandro Dalcin for reporting the problem. - Fixes to MPI_TEST* and MPI_WAIT* for proper MPI exception reporting. Thanks to Lisandro Dalcin for finding the issue. - Various fixes for MPI generalized request handling; addition of missing MPI::Grequest functionality to the C++ bindings. - Add "mpi_preconnect_all" MCA parameter to force wireup of all MPI connections during MPI_INIT (vs. making connections lazily whenever the first MPI communication occurs between a pair of peers). - Fix a problem for when $FC and/or $F77 were specified as multiple tokens. Thanks to Orion Poplawski for identifying the problem and to Ralf Wildenhues for suggesting the fix. - Fix several MPI_*ERRHANDLER* functions and MPI_GROUP_TRANSLATE_RANKS with respect to what arguments they allowed and the behavior that they effected. Thanks to Lisandro Dalcin for reporting the problems. 1.1.2 ----- - Really fix Fortran status handling in MPI_WAITSOME and MPI_TESTSOME. - Various datatype fixes, reported by several users as causing failures in the BLACS testing suite. Thanks to Harald Forbert, Ake Sandgren and, Michael Kluskens for reporting the problem. - Correctness and performance fixes for heterogeneous environments. - Fixed a error in command line parsing on some platforms (causing mpirun to crash without doing anything). - Fix for initialization hangs on 64 bit Mac OS X PowerPC systems. - Fixed some memory allocation problems in mpirun that could cause random problems if "-np" was not specified on the command line. - Add Kerberos authentication support for XGrid. - Added LoadLeveler support for jobs larger than 128 tasks. - Fix for large-sized Fortran LOGICAL datatypes. - Fix various error checking in MPI_INFO_GET_NTHKEY and MPI_GROUP_TRANSLATE_RANKS, and some collective operations (particularly with regards to MPI_IN_PLACE). Thanks to Lisandro Dalcin for reporting the problems. - Fix receiving messages to buffers allocated by MPI_ALLOC_MEM. - Fix a number of race conditions with the MPI-2 Onesided interface. - Fix the "tuned" collective componenete where some cases where MPI_BCAST could hang. - Update TCP support to support non-uniform TCP environments. - Allow the "poe" RAS component to be built on AIX or Linux. - Only install mpif.h if the rest of the Fortran bindings are installed. - Fixes for BProc node selection. - Add some missing Fortran MPI-2 IO constants. 1.1.1 ----- - Fix for Fortran string handling in various MPI API functions. - Fix for Fortran status handling in MPI_WAITSOME and MPI_TESTSOME. - Various fixes for the XL compilers. - Automatically disable using mallot() on AIX. - Memory fixes for 64 bit platforms with registering MCA parameters in the self and MX BTL components. - Fixes for BProc to support oversubscription and changes to the mapping algorithm so that mapping processes "by slot" works as expected. - Fixes for various abort cases to not hang and clean up nicely. - If using the Intel 9.0 v20051201 compiler on an IA64 platform, the ptmalloc2 memory manager component will automatically disable itself. Other versions of the Intel compiler on this platform seem to work fine (e.g., 9.1). - Added "host" MPI_Info key to MPI_COMM_SPAWN and MPI_COMM_SPAWN_MULTIPLE. - Add missing C++ methods: MPI::Datatype::Create_indexed_block, MPI::Datatype::Create_resized, MPI::Datatype::Get_true_extent. - Fix OSX linker issue with Fortran bindings. - Fixed MPI_COMM_SPAWN to start spawning new processes in slots that (according to Open MPI) are not already in use. - Added capability to "mpirun a.out" (without specifying -np) that will run on all currently-allocated resources (e.g., within a batch job such as SLURM, Torque, etc.). - Fix a bug with one particular case of MPI_BCAST. Thanks to Doug Gregor for identifying the problem. - Ensure that the shared memory mapped file is only created when there is more than one process on a node. - Fixed problems with BProc stdin forwarding. - Fixed problem with MPI_TYPE_INDEXED datatypes. Thanks to Yven Fournier for identifying this problem. - Fix some thread safety issues in MPI attributes and the openib BTL. - Fix the BProc allocator to not potentially use the same resources across multiple ORTE universes. - Fix gm resource leak. - More latency reduction throughout the code base. - Make the TM PLS (PBS Pro, Torque, Open PBS) more scalable, and fix some latent bugs that crept in v1.1. Thanks to the Thunderbird crew at Sandia National Laboratories and Martin Schaffoner for access to testing facilities to make this happen. - Added new command line options to mpirun: --nolocal: Do not run any MPI processes on the same node as mpirun (compatibility with the OSC mpiexec launcher) --nooversubscribe: Abort if the number of processes requested would cause oversubscription --quiet / -q: do not show spurious status messages --version / -V: show the version of Open MPI - Fix bus error in XGrid process starter. Thanks to Frank from the Open MPI user's list for identifying the problem. - Fix data size mismatches that caused memory errors on PPC64 platforms during the startup of the openib BTL. - Allow propagation of SIGUSR1 and SIGUSR2 signals from mpirun to back-end MPI processes. - Add missing MPI::Is_finalized() function. 1.1 --- - Various MPI datatype fixes, optimizations. - Fixed various problems on the SPARC architecture (e.g., not correctly aligning addresses within structs). - Improvements in various run-time error messages to be more clear about what they mean and where the errors are occurring. - Various fixes to mpirun's handling of --prefix. - Updates and fixes for Cray/Red Storm support. - Major improvements to the Fortran 90 MPI bindings: - General improvements in compile/linking time and portability between different F90 compilers. - Addition of "trivial", "small" (the default), and "medium" Fortran 90 MPI module sizes (v1.0.x's F90 module was equivalent to "medium"). See the README file for more explanation. - Fix various MPI F90 interface functions and constant types to match. Thanks to Michael Kluskens for pointing out the problems to us. - Allow short messagees to use RDMA (vs. send/receive semantics) to a limited number peers in both the mvapi and openib BTL components. This reduces communication latency over IB channels. - Numerous performance improvements throughout the entire code base. - Many minor threading fixes. - Add a define OMPI_SKIP_CXX to allow the user to skip the mpicxx.h from being included in mpi.h. It allows the user to compile C code with a CXX compiler without including the CXX bindings. - PERUSE support has been added. In order to activate it add --enable-peruse to the configure options. All events described in the PERUSE 2.0 draft are supported, plus one Open MPI extension. PERUSE_COMM_REQ_XFER_CONTINUE allow to see how the data is segmented internally, using multiple interfaces or the pipeline engine. However, this version only support one event of each type simultaneously attached to a communicator. - Add support for running jobs in heterogeneous environments. Currently supports environments with different endianness and different representations of C++ bool and Fortran LOGICAL. Mismatched sizes for other datatypes is not supported. - Open MPI now includes an implementation of the MPI-2 One-Sided Communications specification. - Open MPI is now configurable in cross-compilation environments. Several Fortran 77 and Fortran 90 tests need to be pre-seeded with results from a config.cache-like file. - Add --debug option to mpirun to generically invoke a parallel debugger. 1.0.3 (unreleased; all fixes included in 1.1) --------------------------------------------- - Fix a problem noted by Chris Hennes where MPI_INFO_SET incorrectly disallowed long values. - Fix a problem in the launch system that could cause inconsistent launch behavior, particularly when launching large jobs. - Require that the openib BTL find . Thanks to Josh Aune for the suggestion. - Include updates to support the upcoming Autoconf 2.60 and Libtool 2.0. Thanks to Ralf Wildenhues for all the work! - Fix bug with infinite loop in the "round robin" process mapper. Thanks to Paul Donohue for reporting the problem. - Enusre that memory hooks are removed properly during MPI_FINALIZE. Thanks to Neil Ludban for reporting the problem. - Various fixes to the included support for ROMIO. - Fix to ensure that MPI_LONG_LONG and MPI_LONG_LONG_INT are actually synonyms, as defined by the MPI standard. Thanks to Martin Audet for reporting this. - Fix Fortran 90 configure tests to properly utilize LDFLAGS and LIBS. Thanks to Terry Reeves for reporting the problem. - Fix shared memory progression in asynchronous progress scenarios. Thanks to Mykael Bouquey for reporting the problem. - Fixed back-end operations for predefined MPI_PROD for some datatypes. Thanks to Bert Wesarg for reporting this. - Adapted configure to be able to handle Torque 2.1.0p0's (and above) new library name. Thanks to Brock Palen for pointing this out and providing access to a Torque 2.1.0p0 cluster to test with. - Fixed situation where mpirun could set a shell pipeline's stdout to non-blocking, causing the shell pipeline to prematurely fail. Thanks to Darrell Kresge for figuring out what was happening. - Fixed problems with leave_pinned that could cause Badness with the mvapi BTL. - Fixed problems with MPI_FILE_OPEN and non-blocking MPI-2 IO access. - Fixed various InfiniBand port matching issues during startup. Thanks to Scott Weitzenkamp for identifying these problems. - Fixed various configure, build and run-time issues with ROMIO. Thanks to Dries Kimpe for bringing them to our attention. - Fixed error in MPI_COMM_SPLIT when dealing with intercommunicators. Thanks to Bert Wesarg for identifying the problem. - Fixed backwards handling of "high" parameter in MPI_INTERCOMM_MERGE. Thanks to Michael Kluskens for pointing this out to us. - Fixed improper handling of string arguments in Fortran bindings for MPI-IO functionality - Fixed segmentation fault with 64 bit applications on Solaris when using the shared memory transports. - Fixed MPI_COMM_SELF attributes to free properly at the beginning of MPI_FINALIZE. Thanks to Martin Audet for bringing this to our attention. - Fixed alignment tests for cross-compiling to not cause errors with recent versions of GCC. 1.0.2 ----- - Fixed assembly race condition on AMD64 platforms. - Fixed residual .TRUE. issue with copying MPI attributes set from Fortran. - Remove unnecessary logic from Solaris pty I/O forwarding. Thanks to Francoise Roch for bringing this to our attention. - Fixed error when count = 0 was given for multiple completion MPI functions (MPI_TESTSOME, MPI_TESTANY, MPI_TESTALL, MPI_WAITSOME, MPI_WAITANY, MPI_WAITALL). - Better handling in MPI_ABORT for when peer processes have already died, especially under some resource managers. - Random updates to README file, to include notes about the Portland compilers. - Random, small threading fixes to prevent deadlock. - Fixed a problem with handling long mpirun app files. Thanks to Ravi Manumachu for identifying the problem. - Fix handling of strings in several of the Fortran 77 bindings. - Fix LinuxPPC assembly issues. Thanks to Julian Seward for reporting the problem. - Enable pty support for standard I/O forwarding on platforms that have ptys but do not have openpty(). Thanks to Pierre Valiron for bringing this to our attention. - Disable inline assembly for PGI compilers to avoid compiler errors. Thanks to Troy Telford for bringing this to our attention. - Added MPI_UNSIGNED_CHAR and MPI_SIGNED_CHAR to the allowed reduction types. - Fix a segv in variable-length message displays on Opterons running Solaris. Thanks to Pierre Valiron for reporting the issue. - Added MPI_BOOL to the intrinsic reduction operations MPI_LAND, MPI_LOR, MPI_LXOR. Thanks to Andy Selle for pointing this out to us. - Fixed TCP BTL network matching logic during MPI_INIT; in some cases on multi-NIC nodes, a NIC could get paired with a NIC on another network (typically resulting in deadlock). Thanks to Ken Mighell for pointing this out to us. - Change the behavior of orterun (mpirun, mpirexec) to search for argv[0] and the cwd on the target node (i.e., the node where the executable will be running in all systems except BProc, where the searches are run on the node where orterun is invoked). - Fix race condition in shared memory transport that could cause crashes on machines with weak memory consistency models (including POWER/PowerPC machines). - Fix warnings about setting read-only MCA parameters on bproc systems. - Change the exit status set by mpirun when an application process is killed by a signal. The exit status is now set to signo + 128, which conforms with the behavior of (almost) all shells. - Correct a datatype problem with the convertor when partially unpacking data. Now we can position the convertor to any position not only on the predefined types boundaries. Thanks to Yvan Fournier for reporting this to us. - Fix a number of standard I/O forwarding issues, including the ability to background mpirun and a loss of data issue when redirecting mpirun's standard input from a file. - Fixed bug in ompi_info where rcache and bml MCA parameters would not be displayed. - Fixed umask issues in the session directory. Thanks to Glenn Morris for reporting this to us. - Fixed tcsh-based LD_LIBRARY_PATH issues with --prefix. Thanks to Glen Morris for identifying the problem and suggesting the fix. - Removed extraneous \n's when setting PATH and LD_LIBRARY_PATH in the rsh startup. Thanks to Glen Morris for finding these typos. - Fixed missing constants in MPI C++ bindings. - Fixed some errors caused by threading issues. - Fixed openib BTL flow control logic to not overrun the number of send wqes available. - Update to match newest OpenIB user-level library API. Thanks to Roland Dreier for submitting this patch. - Report errors properly when failing to register memory in the openib BTL. - Reduce memory footprint of openib BTL. - Fix parsing problem with mpirun's "-tv" switch. Thanks to Chris Gottbrath for supplying the fix. - Fix Darwin net/if.h configure warning. - The GNU assembler unbelievably defaults to making stacks executable. So when using gas, add flags to explicitly tell it to not make stacks executable (lame but necessary). - Add missing MPI::Request::Get_status() methods. Thanks to Bill Saphir for pointing this out to us. - Improved error messages on memory registration errors (e.g., when using high-speed networks). - Open IB support now checks firmware for how many outstanding RDMA requests are supported. Thanks to Mellanox for pointing this out to us. - Enable printing of stack traces in MPI processes upon SIGBUS, SIGSEGV, and SIGFPE if the platform supports it. - Fixed F90 compilation support for the Lahey compiler. - Fixed issues with ROMIO shared library support. - Fixed internal accounting problems with rsh support. - Update to GNU Libtool 1.5.22. - Fix error in configure script when setting CCAS to ias (the Intel assembler). - Added missing MPI::Intercomm collectives. - Fixed MPI_IN_PLACE handling for Fortran collectives. - Fixed some more C++ const_cast<> issues. Thanks for Martin Audet (again) for bringing this to our attention. - Updated ROMIO with the version from MPICH 1.2.7p1, marked as version 2005-06-09. - Fixes for some cases where the use of MPI_BOTTOM could cause problems. - Properly handle the case where an mVAPI does not have shared receive queue support (such as the one shipped by SilverStorm / Infinicon for OS X). 1.0.1 ----- - Fixed assembly on Solaris AMD platforms. Thanks to Pierre Valiron for bringing this to our attention. - Fixed long messages in the send-to-self case. - Ensure that when the "leave_pinned" option is used, the memory hooks are also enabled. Thanks to Gleb Natapov for pointing this out. - Fixed compile errors for IRIX. - Allow hostfiles to have integer host names (for BProc clusters). - Fixed a problem with message matching of out-of-order fragments in multiple network device scenarios. - Converted all the C++ MPI bindings to use proper const_cast<>'s instead of old C-style casts to get rid of const-ness. Thanks to Martin Audet for raising the issue with us. - Converted MPI_Offset to be a typedef instead of a #define because it causes problems for some C++ parsers. Thanks to Martin Audet for bringing this to our attention. - Improved latency of TCP BTL. - Fixed index value in MPI_TESTANY to be MPI_UNDEFINED if some requests were not MPI_REQUEST_NULL, but no requests finished. - Fixed several Fortran MPI API implementations that incorrectly used integers instead of logicals or address-sized integers. - Fix so that Open MPI correctly handles the Fortran value for .TRUE., regardless of what the Fortran compiler's value for .TRUE. is. - Improved scalability of MX startup. - Fix datatype offset handling in the coll basic component's MPI_SCATTERV implementation. - Fix EOF handling on stdin. - Fix missing MPI_F_STATUS_IGNORE and MPI_F_STATUSES_IGNORE instanatiations. Thanks to Anthony Chan for pointing this out. - Add a missing value for MPI_WIN_NULL in mpif.h. - Bring over some fixes for the sm btl that somehow didn't make it over from the trunk before v1.0. Thanks to Beth Tibbitts and Bill Chung for helping identify this issue. - Bring over some fixes for the iof that somehow didn't make it over from the trunk before v1.0. - Fix for --with-wrapper-ldflags handling. Thanks to Dries Kimpe for pointing this out to us. 1.0 --- Initial public release.