Intel(r) Threading Building Blocks (Intel TBB) offers a rich and
complete approach to expressing parallelism in a C++ program.
It is a library that helps you take advantage of multi-core
processor performance without having to be a threading expert.
Intel TBB is not just a threads-replacement library. It represents
a higher-level, task-based parallelism that abstracts platform
details and threading mechanisms for scalability and performance.
Changes in v1.5.4 as compared to v1.5.3:
- Add support for the (as yet unreleased) Mellanox MXM transport.
- Add support for dynamic service levels (SLs) in the openib BTL.
- Fixed C++ bindings cosmetic/warnings issue with
MPI::Comm::NULL_COPY_FN and MPI::Comm::NULL_DELETE_FN. Thanks to
Julio Hoffimann for identifying the issues.
- Also allow the word "slots" in rankfiles (i.e., not just "slot").
(** also to appear in 1.4.4)
- Add Mellanox ConnectX 3 device IDs to the openib BTL defaults.
(** also to appear in 1.4.4)
- Various FCA updates.
- Fix 32 bit SIGBUS errors on Solaris SPARC platforms.
- Add missing ARM assembly code files.
- Update to allow more than 128 entries in an appfile.
(** also to appear in 1.4.4)
- Various VT updates and bug fixes.
- Update description of btl_openib_cq_size to be more accurate.
(** also to appear in 1.4.4)
- Various assembly "clobber" fixes.
- Fix a hang in carto selection in obscure situations.
- Guard the inclusion of execinfo.h since not all platforms have it. Thanks
to Aleksej Saushev for identifying this issue.
(** also to appear in 1.4.4)
- Support Solaris legacy munmap prototype changes.
(** also to appear in 1.4.4)
- Updated to Automake 1.11.1 per
http://www.open-mpi.org/community/lists/devel/2011/07/9492.php.
- Fix compilation of LSF support.
- Update MPI_Comm_spawn_multiple.3 man page to reflect what it
actually does.
- Fix for possible corruption of the environment. Thanks to Peter
Thompson for the suggestion. (** also to appear in 1.4.4)
- Enable use of PSM on direct-launch SLURM jobs.
- Update paffinity hwloc to v1.2, and to fix minor bugs affinity
assignment bugs on PPC64/Linux platforms.
- Let the openib BTL auto-detect its bandwidth.
- Support new MPI-2.2 datatypes.
- Updates to support more datatypes in MPI one-sided communication.
- Fix recursive locking bug when MPI-IO was used with
MPI_THREAD_MULTIPLE. (** also to appear in 1.4.4)
- Fix mpirun handling of prefix conflicts.
- Ensure mpirun's --xterm options leaves sessions attached.
(** also to appear in 1.4.4)
- Fixed type of sendcounts and displs in the "use mpi" F90 module.
ABI is preserved, but applications may well be broken. See the
README for more details. Thanks to Stanislav Sazykin for
identifying the issue. (** also to appear in 1.4.4)
- Fix indexed datatype leaks. Thanks to Pascal Deveze for supplying
the initial patch. (** also to appear in 1.4.4)
- Fix debugger mapping when mpirun's -npernode option is used.
- Fixed support for configure's --disable-dlopen option when used with
"make distclean".
- Fix segv associated with MPI_Comm_create with MPI_GROUP_EMPTY.
Thanks to Dominik Goeddeke for finding this.
(** also to appear in 1.4.4)
- Improved LoadLeveler ORTE support.
- Add new WindVerbs BTL plugin, supporting native OpenFabrics verbs on
Windows (the "wv" BTL).
- Add new btl_openib_gid_index MCA parameter to allow selecting which
GID to use on an OpenFabrics device's GID table.
- Add support for PCI relaxed ordering in the OpenFabrics BTL (when
available).
- Update rsh logic to allow correct SGE operation.
- Ensure that the mca_paffinity_alone MCA parameter only appears once
in the ompi_info output. Thanks to Gus Correa for identifying the
issue.
- Fixed return codes from MPI_PROBE and MPI_IPROBE.
(** also to appear in 1.4.4)
- Remove --enable-progress-thread configure option; it doesn't work on
the v1.5 branch. Rename --enable-mpi-threads to
--enable-mpi-thread-multiple. Add new --enable-opal-multi-threads
option.
- Updates for Intel Fortran compiler version 12.
- Remove bproc support. Farewell bproc!
- If something goes wrong during MPI_INIT, fix the error
message to say that it's illegal to invoke MPI_INIT before
MPI_INIT.
more machines. A job is typically a single command or a small script that
has to be run for each of the lines in the input. The typical input is a
list of files, a list of hosts, a list of users, or a list of tables.
1.5.3
-----
- Add missing "affinity" MPI extension (i.e., the OMPI_Affinity_str()
API) that was accidentally left out of the 1.5.2 release.
1.5.2
-----
- Replaced all custom topology / affinity code with initial support
for hwloc v1.1.1 (PLPA has been removed -- long live hwloc!). Note
that hwloc is bundled with Open MPI, but an external hwloc can be
used, if desired. See README for more details.
- Many CMake updates for Windows builds.
- Updated opal_cr_thread_sleep_wait MCA param default value to make it
less aggressive.
- Updated debugger support to allow Totalview attaching from jobs
launched directly via srun (not mpirun). Thanks to Nikolay Piskun
for the patch.
- Added more FTB/CIFTS support.
- Fixed compile error with the PGI compiler.
- Portability fixes to allow the openib BTL to run on the Solaris
verbs stack.
- Fixed multi-token command-line issues when using the mpirun
--debug switch. For example:
mpirun --debug -np 2 a.out "foo bar"
Thanks to Gabriele Fatigati for reporting the issue.
- Added ARM support.
- Added the MPI_ROOT environment variable in the Open MPI Linux SRPM
for customers who use the BPS and LSF batch managers.
- Updated ROMIO from MPICH v1.3.1 (plus one additional patch).
- Fixed some deprecated MPI API function notification messages.
- Added new "bfo" PML that provides failover on OpenFabrics networks.
- Fixed some buffer memcheck issues in MPI_*_init.
- Added Solaris-specific chip detection and performance improvements.
- Fix some compile errors on Solaris.
- Updated the "rmcast" framework with bug fixes, new functionality.
- Updated the Voltaire FCA component with bug fixes, new
functionality. Support for FCA version 2.1.
- Fix gcc 4.4.x and 4.5.x over-aggressive warning notifications on
possibly freeing stack variables. Thanks to the Gentoo packagers
for reporting the issue.
- Make the openib component be verbose when it disqualifies itself due
to MPI_THREAD_MULTIPLE.
- Minor man page fixes.
- Various checkpoint / restart fixes.
- Fix race condition in the one-sided unlock code. Thanks to
Guillaume Thouvenin for finding the issue.
- Improve help message aggregation.
- Add OMPI_Affinity_str() optional user-level API function (i.e., the
"affinity" MPI extension). See README for more details.
- Added btl_tcp_if_seq MCA parameter to select a different ethernet
interface for each MPI process on a node. This parameter is only
useful when used with virtual ethernet interfaces on a single
network card (e.g., when using virtual interfaces give dedicated
hardware resources on the NIC to each process).
- Changed behavior of mpirun to terminate if it receives 10 (or more)
SIGPIPEs.
- Fixed oversubscription detection.
- Added new mtl_mx_board and mtl_mx_endpoint MCA parameters.
- Added ummunotify support for OpenFabrics-based transports. See the
README for more details.
Changes in 1.3.1
# OVERALL: MPICH2 is now fully compliant with the CIFTS FTB standard
MPI events (based on the draft standard).
# OVERALL: Major improvements to RMA performance for long lists of
RMA operations.
# OVERALL: Performance improvements for Group_translate_ranks.
# COLLECTIVES: Collective algorithm selection thresholds can now be controlled
at runtime via environment variables.
# ROMIO: PVFS error codes are now mapped to MPI error codes.
# Several other minor bug fixes, memory leak fixes, and code cleanup.
A full list of changes is available using:
svn log -r7350:HEAD https://svn.mcs.anl.gov/repos/mpi/mpich2/tags/release/mpich2-1.3.1
... or at the following link:
https://trac.mcs.anl.gov/projects/mpich2/log/mpich2/tags/release/mpich2-1.3.1?action=follow_copy&rev=HEAD&stop_rev=7350&mode=follow_copy
Changes in 1.3
# OVERALL: Initial support for fine-grained threading in
ch3:nemesis:tcp.
# OVERALL: Support for Asynchronous Communication Progress.
# OVERALL: The ssm and shm channels have been removed.
# OVERALL: Checkpoint/restart support using BLCR.
# OVERALL: Improved tolerance to process and communication failures
when error handler is set to MPI_ERRORS_RETURN. If a communication
operation fails (e.g., due to a process failure) MPICH2 will return
an error, and further communication to that process is not
possible. However, communication with other processes will still
proceed normally. Note, however, that the behavior collective
operations on communicators containing the failed process is
undefined, and may give incorrect results or hang some processes.
# OVERALL: Experimental support for inter-library dependencies.
# PM/PMI: Hydra is now the default process management framework
replacing MPD.
# PM/PMI: Added dynamic process support for Hydra.
# PM/PMI: Added support for LSF, SGE and POE in Hydra.
# PM/PMI: Added support for CPU and memory/cache topology aware
process-core binding.
# DEBUGGER: Improved support and bug fixes in the Totalview support.
# Build system: Replaced F90/F90FLAGS by FC/FCFLAGS. F90/F90FLAGS are
not longer supported in the configure.
# Multi-compiler support: On systems where C compiler that is used to
build mpich2 libraries supports multiple weak symbols and multiple aliases,
the Fortran binding built in the mpich2 libraries can handle different
Fortran compilers (than the one used to build mpich2). Details in README.
# Several other minor bug fixes, memory leak fixes, and code cleanup.
A full list of changes is available using:
svn log -r5762:HEAD https://svn.mcs.anl.gov/repos/mpi/mpich2/tags/release/mpich2-1.3
... or at the following link:
https://trac.mcs.anl.gov/projects/mpich2/log/mpich2/tags/release/mpich2-1.3?action=follow_copy&rev=HEAD&stop_rev=5762&mode=follow_copy
Changes in 1.5.1
- Fixes for the Oracle Studio 12.2 Fortran compiler.
- Fix SPARC and SPARCv9 atomics. Thanks to Nicola Stange for the
initial patch.
- Fix Libtool issues with the IBM XL compiler in 64-bit mode.
- Restore the reset of the libevent progress counter to avoid
over-sampling the event library.
- Update memory barrier support.
- Use memmove (instead of memcpy) when necessary (e.g., source and
destination overlap).
- Fixed ompi-top crash.
- Fix to handle Autoconf --program-transforms properly and other
m4/configury updates. Thanks to the GASNet project for the
--program transforms fix.
- Allow hostfiles to specify usernames on a per-host basis.
- Update wrapper compiler scripts to search for perl during configure,
per request from the BSD maintainers.
- Minor man page fixes.
- Added --with-libltdl option to allow building Open MPI with an
external installation of libltdl.
- Fixed various issues with -D_FORTIFY_SOURCE=2.
- Various VT fixes and updates.
Notable changes in 1.5
- Added "knem" support: direct process-to-process copying for shared
memory message passing. See http://runtime.bordeaux.inria.fr/knem/
and the README file for more details.
- Updated shared library versioning scheme and linking style of MPI
applications. The MPI application ABI has been broken from the
v1.3/v1.4 series. MPI applications compiled against any prior
version of Open MPI will need to, at a minimum, re-link. See the
README file for more details.
- Added "fca" collective component, enabling MPI collective offload
support for Voltaire switches.
- Fixed MPI one-sided operations with large target displacements.
Thanks to Brian Price and Jed Brown for reporting the issue.
- Fixed MPI_GET_COUNT when used with large counts. Thanks to Jed
Brown for reporting the issue.
- Made the openib BTL safer if extremely low SRQ settings are used.
- Fixed handling of the array_of_argv parameter in the Fortran
binding of MPI_COMM_SPAWN_MULTIPLE (** also to appear: 1.4.3).
- Fixed malloc(0) warnings in some collectives.
- Fixed a problem with the Fortran binding for
MPI_FILE_CREATE_ERRHANDLER. Thanks to Secretan Yves for identifying
the issue (** also to appear: 1.4.3).
- Updates to the LSF PLM to ensure that the path is correctly passed.
Thanks to Teng Lin for the patch (** also to appear: 1.4.3).
- Fixes for the F90 MPI_COMM_SET_ERRHANDLER and MPI_WIN_SET_ERRHANDLER
bindings. Thanks to Paul Kapinos for pointing out the issue
(** also to appear: 1.4.3).
- Fixed extra_state parameter types in F90 prototypes for
MPI_COMM_CREATE_KEYVAL, MPI_GREQUEST_START, MPI_REGISTER_DATAREP,
MPI_TYPE_CREATE_KEYVAL, and MPI_WIN_CREATE_KEYVAL.
- Fixes for Solaris oversubscription detection.
- If the PML determines it can't reach a peer process, print a
slightly more helpful message. Thanks to Nick Edmonds for the
suggestion.
- Make btl_openib_if_include/exclude function the same way
btl_tcp_if_include/exclude works (i.e., supplying an _include list
overrides supplying an _exclude list).
- Apply more scalable reachability algorithm on platforms with more
than 8 TCP interfaces.
- Various assembly code updates for more modern platforms / compilers.
- Relax restrictions on using certain kinds of MPI datatypes with
one-sided operations. Users beware; not all MPI datatypes are valid
for use with one-sided operations!
- Improve behavior of MPI_COMM_SPAWN with regards to --bynode.
- Various threading fixes in the openib BTL and other core pieces of
Open MPI.
- Various help file and man pages updates.
- Various FreeBSD and NetBSD updates and fixes. Thanks to Kevin
Buckley and Aleksej Saushev for their work.
- Fix case where freeing communicators in MPI_FINALIZE could cause
process failures.
- Print warnings if shared memory state files are opened on what look
like networked filesystems.
- Update libevent to v1.4.13.
- Allow propagating signals to processes that call fork().
- Fix bug where MPI_GATHER was sometimes incorrectly examining the
datatype on non-root processes. Thanks to Michael Hofmann for
investigating the issue.
- Various Microsoft Windows fixes.
- Various Catamount fixes.
- Various checkpoint / restart fixes.
- Xgrid support has been removed until it can be fixed (patches
would be welcome).
- Added simplistic "libompitrace" contrib package. Using the MPI
profiling interface, it essentially prints out to stderr when select
MPI functions are invoked.
- Update bundled VampirTrace to v5.8.2.
- Add pkg-config(1) configuration files for ompi, ompi-c, ompi-cxx,
ompi-f77, ompi-f90. See the README for more details.
- Removed the libopenmpi_malloc library (added in the v1.3 series)
since it is no longer necessary
- Add several notifier plugins (generally used when Open MPI detects
system/network administrator-worthy problems); each have their own
MCA parameters to govern their usage. See "ompi_info --param
notifier <name>" for more details.
- command to execute arbitrary commands (e.g., run a script).
- file to send output to a file.
- ftb to send output to the Fault Tolerant Backplane (see
http://wiki.mcs.anl.gov/cifts/index.php/CIFTS)
- hnp to send the output to mpirun.
- smtp (requires libesmtp) to send an email.
New in 1.4.3
------------
- Fixed handling of the array_of_argv parameter in the Fortran
binding of MPI_COMM_SPAWN_MULTIPLE.
- Fixed a problem with the Fortran binding for
MPI_FILE_CREATE_ERRHANDLER. Thanks to Secretan Yves for identifying
the issue.
- Updates to the LSF PLM to ensure that the path is correctly passed.
Thanks to Teng Lin for the patch.
- Fixes for the F90 MPI_COMM_SET_ERRHANDLER and MPI_WIN_SET_ERRHANDLER
bindings. Thanks to Paul Kapinos for pointing out the issue.
- Fixed various MPI_THREAD_MULTIPLE race conditions.
- Fixed an issue with an undeclared variable from ptmalloc2 munmap on
BSD systems.
- Fixes for BSD interface detection.
- Various other BSD fixes. Thanks to Kevin Buckley helping to track.
all of this down.
- Fixed issues with the use of the -nper* mpirun command line arguments.
- Fixed an issue with coll tuned dynamic rules.
- Fixed an issue with the use of OPAL_DESTDIR being applied too aggressively.
- Fixed an issue with one-sided xfers when the displacement exceeds 2GBytes.
- Change to ensure TotalView works properly on Darwin.
- Added support for Visual Studio 2010.
- Fix to ensure proper placement of VampirTrace header files.
- Needed to add volatile keyword to a varialbe used in debugging
(MPIR_being_debugged).
- Fixed a bug in inter-allgather.
- Fixed malloc(0) warnings.
- Corrected a typo the MPI_Comm_size man page (intra -> inter). Thanks
to Simon number.cruncher for pointing this out.
- Fixed a SegV in orted when given more than 127 app_contexts.
- Removed xgrid source code from the 1.4 branch since it is no longer
supported in the 1.4 series.
- Removed the --enable-opal-progress-threads config option since
opal progress thread support does not work in 1.4.x.
- Fixed a defect in VampirTrace's vtfilter.
- Fixed wrong Windows path in hnp_contact.
- Removed the requirement for a paffinity component.
- Removed a hardcoded limit of 64 interconnected jobs.
- Fix to allow singletons to use ompi-server for rendezvous.
- Fixed bug in output-filename option.
- Fix to correctly handle failures in mx_init().
- Fixed a potential Fortran memory leak.
- Fixed an incorrect branch in some ppc32 assembly code. Thanks
to Matthew Clark for this fix.
- Remove use of undocumented AS_VAR_GET macro during configuration.
- Fixed an issue with VampirTrace's wrapper for MPI_init_thread.
- Updated mca-btl-openib-device-params.ini file with various new vendor id's.
- Configuration fixes to ensure CPPFLAGS in handled properly if a non-standard
valgrind location was specified.
- Various man page updates
I managed to trace things to the file libmetrics/netbsd/metrics.c in
the get_netbw function. Apparently, the code in get_netbw violates
alignment constraints for sparc64. I attached a patch against the result
of a "make patch" in parallel/ganglia-monitor-core. While I was at it, I
also changed proc_run_func somewhat to only count actually running
processes (having a look at NetBSD's ps(1) implementation) - without the
change, I got around 30 running processes on an idle machine.
"Looks good at a quick glance" martin@
Bump PKGREVISION.
to trigger/signal a rebuild for the transition 5.10.1 -> 5.12.1.
The list of packages is computed by finding all packages which end
up having either of PERL5_USE_PACKLIST, BUILDLINK_API_DEPENDS.perl,
or PERL5_PACKLIST defined in their make setup (tested via
"make show-vars VARNAMES=..."), minus the packages updated after
the perl package update.
sno@ was right after all, obache@ kindly asked and he@ led the
way. Thanks!
Changes in v1.4.2 as compared to v1.4.1:
- Fixed problem when running in heterogeneous environments.
- Update LSF support to ensure that the path is passed correctly.
- Fixed some miscellaneous oversubscription detection bugs.
- IBM re-licensed its LoadLeveler code to be BSD-compliant.
- Various fixes for multithreading deadlocks, race conditions, and
other nefarious things.
- Fixed ROMIO's handling of "nearly" contiguous issues (e.g., with
non-zero true_lb).
- Bunches of Windows build fixes.
- Now allow the graceful failover from MTLs to BTLs if no MTLs can
initialize successfully.
- Added "clobber" information to various atomic operations, fixing
erroneous behavior in some newer versions of the GNU compiler suite.
- Update various iWARP and InfiniBand device specifications in the
OpenFabrics .ini support file.
- Fix the use of hostfiles when a username is supplied.
- Various fixes for rankfile support.
- Updated the internal version of VampirTrace to 5.4.12.
- Fixed OS X TCP wireup issues having to do with IPv4/IPv6 confusion
(see https://svn.open-mpi.org/trac/ompi/changeset/22788 for more
details).
- Fixed some problems in processor affinity support, including when
there are "holes" in the processor namespace (e.g., offline
processors).
- Ensure that Open MPI's "session directory" (usually located in /tmp)
is cleaned up after process termination.
- Fixed some problems with the collective "hierarch" implementation
that could occur in some obscure conditions.
- Various MPI_REQUEST_NULL, API parameter checking, and attribute
error handling fixes.
- Fix case where MPI_GATHER erroneously used datatypes on non-root nodes.
- Patched ROMIO support for PVFS2 > v2.7 (patch taken from MPICH2
version of ROMIO).
- Fixed "mpirun --report-bindings" behavior when used with
mpi_paffinity_alone=1. Also fixed mpi_paffinity_alone=1 behavior
with non-MPI applications.
- Ensure that all OpenFabrics devices have compatible receive_queues
specifications before allowing them to communicate. See the lengthy
comment in https://svn.open-mpi.org/trac/ompi/changeset/22592 for details.
- Fix some issues with checkpoint/restart.
- Improve the pre-MPI_INIT/post-MPI_FINALIZE error messages.
- Ensure that loopback addresses are never advertised to peer
processes for RDMA/OpenFabrics support.
- Fixed a CSUM PML false positive.
- Various fixes for Catamount support.
- Minor update to wrapper compilers in how user-specific argv is
ordered on the final command line. Thanks to Jed Brown for the
suggestions.
- Update to PLPA v1.3.2, addressing a licensing issue identified by
the Fedora project. See
https://svn.open-mpi.org/trac/plpa/changeset/262 for details.
- Add check for malformed checkpoint metadata files (Ticket #2141).
- Fix error path in ompi-checkpoint when not able to checkpoint
(Ticket #2138).
- Cleanup component release logic when selecting checkpoint/restart
enabled components (Ticket #2135).
- Fixed VT node name detection for Cray XT platforms, and fixed some
broken VT documentation files.
- Fix a possible race condition in tearing down RDMA CM-based
connections.
- Relax error checking on MPI_GRAPH_CREATE. Thanks to David Singleton
for pointing out the issue.
- Fix a shared memory "hang" problem that occurred on x86/x86_64
platforms when used with the GNU >=4.4.x compiler series.
- Add fix for Libtool 2.2.6b's problems with the PGI 10.x compiler
suite. Inspired directly from the upstream Libtool patches that fix
the issue (but we need something working before the next Libtool
release).