Changes:
1.10.1
------
- Workaround an optimization problem with gcc compilers >= 4.9.2 that
causes problems with memory registration, and forced
mpi_leave_pinned to default to 0 (i.e., off). Thanks to @oere for
the fix.
- Fix use of MPI_LB and MPI_UB in subarray and darray datatypes.
Thanks to Gus Correa and Dimitar Pashov for pointing out the issue.
- Minor updates to mpi_show_mpi_alloc_mem_leaks and
ompi_debug_show_handle_leaks functionality.
- Fix segv when invoking non-blocking reductions with a user-defined
operation. Thanks to Rupert Nash and Georg Geiser for identifying
the issue.
- No longer probe for PCI topology on Solaris (unless running as root).
- Fix for Intel Parallel Studio 2016 ifort partial support of the
!GCC$ pragma. Thanks to Fabrice Roy for reporting the problem.
- Bunches of Coverity / static analysis fixes.
- Fixed ROMIO to look for lstat in <sys/stat.h>. Thanks to William
Throwe for submitting the patch both upstream and to Open MPI.
- Fixed minor memory leak when attempting to open plugins.
- Fixed type in MPI_IBARRIER C prototype. Thanks to Harald Servat for
reporting the issue.
- Add missing man pages for MPI_WIN_CREATE_DYNAMIC, MPI_WIN_ATTACH,
MPI_WIN_DETACH, MPI_WIN_ALLOCATE, MPI_WIN_ALLOCATE_SHARED.
- When mpirun-launching new applications, only close file descriptors
that are actually open (resulting in a faster launch in some
environments).
- Fix "test ==" issues in Open MPI's configure script. Thank to Kevin
Buckley for pointing out the issue.
- Fix performance issue in usnic BTL: ensure progress thread is
throttled back to not aggressively steal CPU cycles.
- Fix cache line size detection on POWER architectures.
- Add missing #include in a few places. Thanks to Orion Poplawski for
supplying the patch.
- When OpenSHMEM building is disabled, no longer install its header
files, help files, or man pages. Add man pages for oshrun, oshcc,
and oshfort.
- Fix mpi_f08 implementations of MPI_COMM_SET_INFO, and profiling
versions of MPI_BUFFER_DETACH, MPI_WIN_ALLOCATE,
MPI_WIN_ALLOCATE_SHARED, MPI_WTICK, and MPI_WTIME.
- Add orte_rmaps_dist_device MCA param, allowing users to map near a
specific device.
- Various updates/fixes to the openib BTL.
- Add missing defaults for the Mellanox ConnectX 3 card to the openib BTL.
- Minor bug fixes in the OFI MTL.
- Various updates to Mellanox's MXM, hcoll, and FCA components.
- Add OpenSHMEM man pages. Thanks to Tony Curtis for sharing the man
pages files from openshmem.org.
- Add missing "const" attributes to MPI_COMPARE_AND_SWAP,
MPI_FETCH_AND_OP, MPI_RACCUMULATE, and MPI_WIN_DETACH prototypes.
Thanks to Michael Knobloch and Takahiro Kawashima for bringing this
to our attention.
- Fix linking issues on some platforms (e.g., SLES 12).
- Fix hang on some corner cases when MPI applications abort.
- Add missing options to mpirun man page. Thanks to Daniel Letai
for bringing this to our attention.
- Add new --with-platform-patches-dir configure option
- Adjust relative selection priorities to ensure that MTL
support is favored over BTL support when both are available
- Use CUDA IPC for all sized messages for performance
1.10.0
------
** NOTE: The v1.10.0 release marks the transition to Open MPI's new
** version numbering scheme. The v1.10.x release series is based on
** the v1.8.x series, but with a few new features. v2.x will be the
** next series after the v1.10.x series, and complete the transition
** to the new version numbering scheme. See README for more details
** on the new versioning scheme.
**
** NOTE: In accordance with OMPI version numbering, the v1.10 is *not*
** API compatible with the v1.8 release series.
- Added libfabric support (see README for more details):
- usNIC BTL updated to use libfabric.
- Added OFI MTL (usable with PSM in libfabric v1.1.0).
- Added Intel Omni-Path support via new PSM2 MTL.
- Added "yalla" PML for faster MXM support.
- Removed support for MX
- Added persistent distributed virtual machine (pDVM) support for fast
workflow executions.
- Fixed typo in GCC inline assembly introduced in Open MPI v1.8.8.
Thanks to Paul Hargrove for pointing out the issue.
- Add missing man pages for MPI_Win_get|set_info(3).
- Ensure that session directories are cleaned up at the end of a run.
- Fixed linking issues on some OSs where symbols of dependent
libraries are not automatically publicly available.
- Improve hcoll and fca configury library detection. Thanks to David
Shrader for helping track down the issue.
- Removed the LAMA mapper (for use in setting affinity). Its
functionality has been largely superseded by other mpirun CLI
options.
- CUDA: Made the asynchronous copy mode be the default.
- Fix a malloc(0) warning in MPI_IREDUCE_SCATTER_BLOCK. Thanks to
Lisandro Dalcin for reporting the issue.
- Fix typo in MPI_Scatter(3) man page. Thanks to Akshay Venkatesh for
noticing the mistake.
- Add rudimentary protection from TCP port scanners.
- Fix typo in Open MPI error handling. Thanks to ¥ke Sandgren for
pointing out the error.
- Increased the performance of the CM PML (i.e., the Portals, PSM,
PSM2, MXM, and OFI transports).
- Restored visibility of blocking send requests in message queue
debuggers (e.g., TotalView, DDT).
- Fixed obscure IPv6-related bug in the TCP BTL.
- Add support for the "no_locks" MPI_Info key for one-sided
functionality.
- Fixed ibv_fork support for verbs-based networks.
- Fixed a variety of small bugs in OpenSHMEM.
- Fixed MXM configure with additional CPPFLAGS and LDFLAGS. Thanks to
David Shrader for the patch.
- Fixed incorrect memalign threshhold in the openib BTL. Thanks to
Xavier Besseron for pointing out the issue.
1.8.8
-----
- Fix a segfault in MPI_FINALIZE with the PSM MTL.
- Fix mpi_f08 sentinels (e.g., MPI_STATUS_IGNORE) handling.
- Set some additional MXM default values for OSHMEM.
- Fix an invalid memory access in MPI_MRECV and MPI_IMRECV.
- Include two fixes that were mistakenly left out of the official
v1.8.7 tarball:
- Fixed MPI_WIN_POST and MPI_WIN_START for zero-size messages
- Protect the OOB TCP ports from segfaulting when accessed by port
scanners
1.8.7
----
** NOTE: v1.8.7 technically breaks ABI with prior versions
** in the 1.8 series because it repairs two incorrect API
** signatures. However, users will only need to recompile
** if they were using those functions - which they couldn't
** have been, because the signatures were wrong :-)
- Plugged a memory leak that impacted blocking sends
- Fixed incorrect declaration for MPI_T_pvar_get_index and added
missing return code MPI_T_INVALID_NAME.
- Fixed an uninitialized variable in PMI2 support
- Added new vendor part id for Mellanox ConnectX4-LX
- Fixed NBC_Copy for legitimate zero-size messages
- Fixed MPI_Win_post and MPI_Win_start for zero-size messages
- Protect the OOB ports from segfaulting when accessed by port scanners
- Fixed several Fortran typos
- Fixed configure detection of XRC support
- Fixed support for highly heterogeneous systems to avoid
memory corruption when printing out the bindings
1.8.6
-----
- Fixed memory leak on Mac OS-X exposed by TCP keepalive
- Fixed keepalive support to ensure that daemon/node failure
results in complete job cleanup
- Update Java binding support
- Fixed MPI_THREAD_MULTIPLE bug in vader shared memory BTL
- Fixed issue during shutdown when CUDA initialization wasn't complete
- Fixed orted environment when no prefix given
- Fixed trivial typo in MPI_Neighbor_allgather manpage
- Fixed tree-spawn support for sh and ksh shells
- Several data type fixes
1.8.5
-----
- Fixed configure problems in some cases when using an external hwloc
installation. Thanks to Erick Schnetter for reporting the error and
helping track down the source of the problem.
- Fixed linker error on OS X when using the clang compiler. Thanks to
Erick Schnetter for reporting the error and helping track down the
source of the problem.
- Fixed MPI_THREAD_MULTIPLE deadlock error in the vader BTL. Thanks
to Thomas Klimpel for reporting the issue.
- Fixed several Valgrind warnings. Thanks for Lisandro Dalcin for
contributing a patch fixing some one-sided code paths.
- Fixed version compatibility test in OOB that broke ABI within the
1.8 series. NOTE: this will not resolve the problem between pre-1.8.5
versions, but will fix it going forward.
- Fix some issues related to running on Intel Xeon Phi coprocessors.
- Opportunistically switch away from using GNU Libtool's libltdl
library when possible (by default).
- Fix some VampirTrace errors. Thanks to Paul Hargrove for reporting
the issues.
- Correct default binding patterns when --use-hwthread-cpus was
specified and nprocs <= 2.
- Fix warnings about -finline-functions when compiling with clang.
- Updated the embedded hwloc with several bug fixes, including the
"duplicate Lhwloc1 symbol" that multiple users reported on some
platforms.
- Do not error when mpirun is invoked with with default bindings
(i.e., no binding was specified), and one or more nodes do not
support bindings. Thanks to Annu Desari for pointing out the
problem.
- Let root invoke "mpirun --version" to check the version without
printing the "Don't run as root!" warnings. Thanks to Robert McLay
for the suggestion.
- Fixed several bugs in OpenSHMEM support.
- Extended vader shared memory support to 32-bit architectures.
- Fix handling of very large datatypes. Thanks to Bogdan Sataric for
the bug report.
- Fixed a bug in handling subarray MPI datatypes, and a bug when using
MPI_LB and MPI_UB. Thanks to Gus Correa for pointing out the issue.
- Restore user-settable bandwidth and latency PML MCA variables.
- Multiple bug fixes for cleanup during MPI_FINALIZE in unusual
situations.
- Added support for TCP keepalive signals to ensure timely termination
when sockets between daemons cannot be created (e.g., due to a
firewall).
- Added MCA parameter to allow full use of a SLURM allocation when
started from a tool (supports LLNL debugger).
- Fixed several bugs in the configure logic for PMI and hwloc.
- Fixed incorrect interface index in TCP communications setup. Thanks
to Mark Kettenis for spotting the problem and providing a patch.
- Fixed MPI_IREDUCE_SCATTER with single-process communicators when
MPI_IN_PLACE was not used.
- Added XRC support for OFED v3.12 and higher.
- Various updates and bug fixes to the Mellanox hcoll collective
support.
- Fix problems with Fortran compilers that did not support
REAL*16/COMPLEX*32 types. Thanks to Orion Poplawski for identifying
the issue.
- Fixed problem with rpath/runpath support in pkg-config files.
Thanks to Christoph Junghans for notifying us of the issue.
- Man page fixes:
- Removed erroneous "color" discussion from MPI_COMM_SPLIT_TYPE.
Thanks to Erick Schnetter for spotting the outdated text.
- Fixed prototypes for MPI_IBARRIER. Thanks to Maximilian for
finding the issue.
- Updated docs about buffer usage in non-blocking communications.
Thanks to Alexander Pozdneev for citing the outdated text.
- Added documentation about the 'ompi_unique' MPI_Info key with
MPI_PUBLISH_NAME.
- Fixed typo in MPI_INTERCOMM_MERGE. Thanks to Harald Servat for
noticing and sending a patch.
- Updated configure paths in HACKING. Thanks to Maximilien Levesque
for the fix.
- Fixed Fortran typo in MPI_WIN_LOCK_ALL. Thanks to Thomas Jahns
for pointing out the issue.
- Fixed a number of MPI one-sided bugs.
- Fixed MPI_COMM_SPAWN when invoked from a singleton job.
- Fixed a number of minor issues with CUDA support, including
registering of shared memory and supporting reduction support for
GPU buffers.
- Improved support for building OMPI on Cray platforms.
- Fixed performance regression introduced by the inadvertent default
enabling of MPI_THREAD_MULTIPLE support.
1.8.4
-----
- Fix MPI_SIZEOF; now available in mpif.h for modern Fortran compilers
(see README for more details). Also fixed various compiler/linker
errors.
- Fixed inadvertant Fortran ABI break between v1.8.1 and v1.8.2 in the
mpi interface module when compiled with gfortran >= v4.9.
- Fix various MPI_THREAD_MULTIPLE issues in the TCP BTL.
- mpirun no longer requires the --hetero-nodes switch; it will
automatically detect when running in heterogeneous scenarios.
- Update LSF support, to include revamped affinity functionality.
- Update embedded hwloc to v1.9.1.
- Fixed max registerable memory computation in the openib BTL.
- Updated error message when debuggers are unable to find various
symbols/types to be more clear. Thanks to Dave Love for raising the
issue.
- Added proper support for LSF and PBS/Torque libraries in static builds.
- Rankfiles now support physical processor IDs.
- Fixed potential hang in MPI_ABORT.
- Fixed problems with the PSM MTL and "re-connect" scenarios, such as
MPI_INTERCOMM_CREATE.
- Fix MPI_IREDUCE_SCATTER with a single process.
- Fix (rare) race condition in stdout/stderr funneling to mpirun where
some trailing output could get lost when a process terminated.
- Removed inadvertent change that set --enable-mpi-thread-multiple "on"
by default, thus impacting performance for non-threaded apps.
- Significantly reduced startup time by optimizing internal hash table
implementation.
- Fixed OS X linking with the Fortran mpi module when used with
gfortran >= 4.9. Thanks to Github user yafshar for raising the
issue.
- Fixed memory leak on Cygwin platforms. Thanks for Marco Atzeri for
reporting the issue.
- Fixed seg fault in neighborhood collectives when the degree of the
topology is higher than the communicator size. Thanks to Lisandro
Dalcin for reporting the issue.
- Fixed segfault in neighborhood collectives under certain use-cases.
- Fixed various issues regarding Solaris support. Thanks to Siegmar
Gross for patiently identifying all the issues.
- Fixed PMI configure tests for certain Slurm installation patterns.
- Fixed param registration issue in Java bindings. Thanks to Takahiro
Kawashima and Siegmar Gross for identifying the issue.
- Several man page fixes.
- Silence several warnings and close some memory leaks (more remain,
but it's better than it was).
- Re-enabled the use of CMA and knem in the shared memory BTL.
- Updated mpirun manpage to correctly explain new map/rank/binding options.
- Fixed MPI_IALLGATHER problem with intercommunicators. Thanks for
Takahiro Kawashima for the patch.
- Numerous updates and performance improvements to OpenSHMEM.
- Turned off message coalescing in the openib BTL until a proper fix
for that capability can be provided (tentatively expected for 1.8.5)
- Fix a bug in iof output that dates back to the dinosaurs which would
output extra bytes if the system was very heavily loaded
- Fix a bug where specifying mca_component_show_load_errors=0 could
cause ompi_info to segfault
- Updated valgrind suppression file
1.8.3
-----
- Fixed application abort bug to ensure that MPI_Abort exits appropriately
and returns the provided exit status
- Fixed some alignment (not all) issues identified by Clang
- Allow CUDA-aware to work with nonblocking collectives. Forces packing to
happen when using GPU buffers.
- Fixed configure test issue with Intel 2015 Fortran compiler
- Fixed some PGI-related errors
- Provide better help message when encountering a firewall
- Fixed MCA parameter quoting to protect multi-word params and params
that contain special characters
- Improved the bind-to help message to clarify the defaults
- Add new MPI-3.1 tools interface
- Several performance optimizations and memory leak cleanups
- Turn off the coll/ml plugin unless specifically requested as it
remains in an experimental state
- Fix LSF support by adding required libraries for the latest LSF
releases. Thanks to Joshua Randal for supplying the initial
patches.
1.8.2
-----
- Fix auto-wireup of OOB, allowing ORTE to automatically
test all available NICs
- "Un-deprecate" pernode, npernode, and npersocket options
by popular demand
- Add missing Fortran bindings for MPI_WIN_LOCK_ALL,
MPI_WIN_UNLOCK_ALL, and MPI_WIN_SYNC.
- Fix cascading/over-quoting in some cases with the rsh/ssh-based
launcher. Thanks to multiple users for raising the issue.
- Properly add support for gfortran 4.9 ignore TKR pragma (it was
erroneously only partially added in v1.7.5). Thanks to Marcus
Daniels for raising the issue.
- Update/improve help messages in the usnic BTL.
- Resolve a race condition in MPI_Abort.
- Fix obscure cases where static linking from wrapper compilers would
fail.
- Clarify the configure --help message about when OpenSHMEM is
enabled/disabled by default. Thanks to Paul Hargrove for the
suggestion.
- Align pages properly where relevant. Thanks to Paul Hargrove for
identifying the issue.
- Various compiler warning and minor fixes for OpenBSD, FreeBSD, and
Solaris/SPARC. Thanks to Paul Hargrove for the patches.
- Properly pass function pointers from Fortran to C in the mpi_f08
module, thereby now supporting gfortran 4.9. Thanks to Tobias
Burnus for assistance and testing with this issue.
- Improve support for Cray CLE 5.
- Fix mpirun regression: ensure exit status is non-zero if mpirun is
terminated due to signal.
- Improved CUDA efficiency of asynchronous copies.
- Fix to parameter type in MPI_Type_indexed.3. Thanks to Bastian
Beischer for reporting the mistake.
- Fix NUMA distance calculations in the openib BTL.
- Decrease time required to shut down mpirun at the end of a job.
- More RMA fixes.
- More hostfile fixes from Tetsuya Mishima.
- Fix darray issue where UB was not computed correctly.
- Fix mpi_f08 parameter name for MPI_GET_LIBRARY_VERSION. Thanks to
Junchao Zhang for pointing out the issue.
- Ensure mpirun aborts properly when unable to map processes in
scheduled environments.
- Ensure that MPI RMA error codes show up properly. Thanks to
Lisandro Dalcin for reporting the issue.
- Minor bug fixes and improvements to the bash and zsh mpirun
autocompletion scripts.
- Fix sequential mpirun process mapper. Thanks to Bill Chen for
reporting the issue.
- Correct SLURM stdout/stderr redirection.
- Added missing portals 4 files.
- Performance improvements for blocking sends and receives.
- Lots of cleanup to the ml collective component
- Added new Java methods to provide full MPI coverage
- Many OSHMEM cleanups
- Prevent comm_spawn from automatically launching a VM across
all available nodes
- Close many memory leaks to achieve valgrind-clean operation
- Better handling of TCP connection discovery for mismatched networks
where we don't have a direct 1:1 subnet match between nodes
- Prevent segfault when OMPI info tools are used in pipes and user
exits one step of that pipe before completing output
1.8.1
-----
- Fix for critical bug: mpirun removed files (but not directories)
from / when run as root. Thanks to Jay Fenlason and Orion Poplawski
for bringing the issue to our attention and helping identify the
fix.
1.8
---
- Commit upstream ROMIO fix for mixed NFS+local filesystem environments.
- Several fixes for MPI-3 one-sided support. For example,
arbitrary-length datatypes are now supported.
- Add config support for the Mellanox ConnectX 4 card.
- Add missing MPI_COMM_GET|SET_INFO functions, and missing
MPI_WEIGHTS_EMPTY and MPI_ERR_RMA_SHARED constants. Thanks to
Lisandro Dalcin for pointing out the issue.
- Update some help messages in OSHMEM, the usnic BTL, the TCP BTL, and
ORTE, and update documentation about ompi_info's --level option.
- Fix some compiler warnings.
- Ensure that ORTE daemons are not bound to a single processor
if TaskAffinity is set on by default in Slurm. Thanks to Artem Polyakov
for identifying the problem and providing a patch
1.7.5
-----
**********************************************************************
* Open MPI is now fully MPI-3.0 compliant
**********************************************************************
- Add Linux OpenSHMEM support built on top of Open MPI's MPI
layer. Thanks to Mellanox for contributing this new feature.
- Allow restricting ORTE daemons to specific cores using the
orte_daemon_cores MCA param.
- Ensure to properly set "locality" flags for processes launched via
MPI dynamic functions such as MPI_COMM_SPAWN.
- Fix MPI_GRAPH_CREATE when nnodes is smaller than the size of the old
communicator.
- usnic BTL now supports underlying UDP transport.
- usnic BTL now checks for common connectivty errors at first send to
a remote server.
- Minor scalability improvements in the usnic BTL.
- ompi_info now lists whether the Java MPI bindings are available or not.
- MPI-3: mpi.h and the Fortran interfaces now report MPI_VERSION==3
and MPI_SUBVERSION==0.
- MPI-3: Added support for new RMA functions and functionality.
- Fix MPI_Info "const buglet. Thanks to Orion Poplawski for
identifying the issue.
- Multiple fixes to mapping/binding options. Thanks to Tetsuya Mishima
for his assistance.
- Multiple fixes for normal and abnormal process termination,
including singleton MPI_Abort and ensuring to kill entire process
groups when abnormally terminating a job.
- Fix DESTDIR install for javadocs. Thanks to Orion Poplawski for
pointing out the issue.
- Various performance improvements for the MPI Java bindings.
- OMPI now uses its own internal random number generator and will not
perturb srand() and friends.
- Some cleanups for Cygwin builds. Thanks to Marco Atzeri for the
patches.
- Add a new collective component (coll/ml) that provides substantially
improved performance. It is still experimental, and requires
setting coll_ml_priority > 0 to become active.
- Add version check during startup to ensure you are using the same
version of Open MPI on all nodes in a job.
- Significantly improved the performance of MPI_DIMS_CREATE for large
values. Thanks to Andreas Schfer for the contribution.
- Removed ASYNCHRONOUS keyword from the "ignore TKR" mpi_f08 module.
- Deprecated the following mpirun options:
--bynode, --bycore, --byslot: replaced with --map-by node|core|slot.
--npernode, --npersocket: replaced with --map-by ppr:N:node and
--map-by ppr:N:socket, respectively
- Pick NFS "infinitely stale" fix from ROMIO upstream.
- Various PMI2 fixes and extension to support broader range of mappings.
- Improve launch performance at large scale.
- Add support for PBS/Torque environments that set environment
variables to indicate the number of slots available on each nodes.
Set the ras_tm_smp MCA parameter to "1" to enable this mode.
- Add new, more scalable endpoint exchange (commonly called "modex")
method that only exchanges endpoint data on a per-peer basis
on first message. Not all transports have been updated to use
this feature. Set the rte_orte_direct_modex parameter to "1"
to enable this mode.
1.7.4
-----
**********************************************************************
* CRITICAL CHANGE
*
* As of release 1.7.4, OpenMPI's default mapping, ranking, and binding
* settings have changed:
*
* Mapping:
* if #procs <= 2, default to map-by core
* if #procs > 2, default to map-by socket
* Ranking:
* if default mapping is used, then default to rank-by slot
* if map-by <obj> is given, then default to rank-by <obj>,
* where <obj> is whatever object we mapped against
* Binding:
* default to bind-to core
*
* Users can override any of these settings individually using the
* corresponding MCA parameter. Note that multi-threaded applications
* in particular may want to override at least the binding default
* to allow threads to use multiple cores.
**********************************************************************
- Restore version number output in "ompi_info --all".
- Various bug fixes for the mpi_f08 Fortran bindings.
- Fix ROMIO compile error with Lustre 2.4. Thanks to Adam Moody for
reporting the issue.
- Various fixes for 32 bit platforms.
- Add ability to selectively disable building the mpi or mpi_f08
module. See the README file for details.
- Fix MX MTL finalization issue.
- Fix ROMIO issue when opening a file with MPI_MODE_EXCL.
- Fix PowerPC and MIPS assembly issues.
- Various fixes to the hcoll and FCA collective offload modules.
- Prevent integer overflow when creating datatypes. Thanks to
original patch from Gilles Gouaillardet.
- Port some upstream hwloc fixes to Open MPI's embedded copy for
working around buggy NUMA node cpusets and including mising header
files. Thanks to Jeff Becker and Paul Hargrove for reporting the
issues.
- Fix recursive invocation issues in the MXM MTL.
- Various bug fixes to the new MCA parameter back-end system.
- Have the posix fbtl module link against -laio on NetBSD platforms.
Thanks to Paul Hargrove for noticing the issue.
- Various updates and fixes to network filesystem detection to support
more operating systems.
- Add gfortran v4.9 "ignore TKR" syntax to the mpi Fortran module.
- Various compiler fixes for several BSD-based platforms. Thanks to
Paul Hargrove for reporting the issues.
- Fix when MPI_COMM_SPAWN[_MULTIPLE] is used on oversubscribed
systems.
- Change the output from --report bindings to simply state that a
process is not bound, instead of reporting that it is bound to all
processors.
- Per MPI-3.0 guidance, remove support for all MPI subroutines with
choice buffers from the TKR-based mpi Fortran module. Thanks to Jed
Brown for raising the issue.
- Only allow the usnic BTL to build on 64 bit platforms.
- Various bug fixes to SLURM support, to include ensuring proper
exiting on abnormal termination.
- Ensure that MPI_COMM_SPAWN[_MULTIPLE] jobs get the same mapping
directives that were used with mpirun.
- Fixed the application of TCP_NODELAY.
- Change the TCP BTL to not warn if a non-existent interface is
ignored.
- Restored the "--bycore" mpirun option for backwards compatibility.
- Fixed debugger attach functionality. Thanks to Ashley Pittman for
reporting the issue and suggesting the fix.
- Fixed faulty MPI_IBCAST when invoked on a communicator with only
one process.
- Add new Mellanox device IDs to the openib BTL.
- Progress towards cleaning up various internal memory leaks as
reported by Valgrind.
- Fixed some annoying flex-generated warnings that have been there for
years. Thanks to Tom Fogal for the initial patch.
- Support user-provided environment variables via the "env" info key
to MPI_COMM_SPAWN[_MULTIPLE]. Thanks to Tom Fogal for the feature
request.
- Fix uninitialized variable in MPI_DIST_GRAPH_CREATE.
- Fix a variety of memory errors on SPARC platforms. Thanks to
Siegmar Gross for reporting and testing all the issues.
- Remove Solaris threads support. When building on Solaris, pthreads
will be used.
- Correctly handle the convertor internal stack for persistent
receives. Thanks to Guillaume Gouaillardet for identifying the
problem.
- Add support for using an external libevent via --with-libevent. See
the README for more details.
- Various OMPIO updates and fixes.
- Add support for the MPIEXEC_TIMEOUT environment variable. If set,
mpirun will terminate the job after this many seconds.
- Update the internal copy of ROMIO to that which shipped in MPICH
3.0.4.
- Various performance tweaks and improvements in the usnic BTL,
including now reporting MPI_T performance variables for each usnic
device.
- Fix to not access send datatypes for non-root processes with
MPI_ISCATTER[V] and MPI_IGATHER[V]. Thanks to Pierre Jolivet for
supplying the initial patch.
- Update VampirTrace to 5.14.4.9.
- Fix ptmalloc2 hook disable when used with ummunotify.
- Change the default connection manager for the openib BTL to be based
on UD verbs data exchanges instead of ORTE OOB data exchanges.
- Fix Fortran compile error when compiling with 8-byte INTEGERs and
4-byte ints.
- Fix C++11 issue identified by Jeremiah Willcock.
- Many changes, updates, and bug fixes to the ORTE run-time layer.
- Correctly handle MPI_REDUCE_SCATTER with recvcounts of 0.
- Update man pages for MPI-3, and add some missing man pages for
MPI-2.x functions.
- Updated mpi_f08 module in accordance with post-MPI-3.0 errata which
basically removed BIND(C) from all interfaces.
- Fixed MPI_IN_PLACE detection for MPI_SCATTER[V] in Fortran
routines. Thanks to Charles Gerlach for identifying the issue.
- Added support for routable RoCE to the openib BTL.
- Update embedded hwloc to v1.7.2.
- ErrMgr framework redesigned to better support fault tolerance development
activities. See the following RFC for details:
http://www.open-mpi.org/community/lists/devel/2010/03/7589.php
- Added database framework to OPAL and changed all modex operations
to flow thru it, also included additional system info in the
available data
- Added staged state machine to support sequential work flows
- Added distributed file system support for accessing files across
nodes that do not have networked file systems
- Extended filem framework to support scalable pre-positioning of
files for use by applications, adding new "raw" component that
transmits files across the daemon network
- Native Windows support has been removed. A cygwin package is
available from that group for Windows-based use.
- Added new MPI Java bindings. See the Javadocs for more details on
the API.
- Wrapper compilers now add rpath support by default to generated
executables on systems that support it. This behavior can be
disabled via --disable-wrapper-rpath. See note in README about ABI
issues when using rpath in MPI applications.
- Added a new parallel I/O component and multiple new frameworks to
support parallel I/O operations.
- Fixed MPI_STATUS_SIZE Fortran issue when used with 8-byte Fortran
INTEGERs and 4-byte C ints. Since this issue affects ABI, it is
only enabled if Open MPI is configured with
--enable-abi-breaking-fortran-status-i8-fix. Thanks to Jim Parker
for supplying the initial patch.
- Add support for Intel Phi SCIF transport.
- For CUDA-aware MPI configured with CUDA 6.0, use new pointer
attribute to avoid extra synchronization in stream 0 when using
CUDA IPC between GPUs on the same node.
- For CUDA-aware MPI configured with CUDA 6.0, compile in support
of GPU Direct RDMA in openib BTL to improve small message latency.
- Updated ROMIO from MPICH v3.0.4.
- MPI-3: Added support for remaining non-blocking collectives.
- MPI-3: Added support for neighborhood collectives.
- MPI-3: Updated C bindings with consistent use of [].
- MPI-3: Added the const keyword to read-only buffers.
- MPI-3: Added support for non-blocking communicator duplication.
- MPI-3: Added support for non-collective communicator creation.
1.7.3
-----
- Make CUDA-aware support dynamically load libcuda.so so CUDA-aware
MPI library can run on systems without CUDA software.
- Fix various issues with dynamic processes and intercommunicator
operations under Torque. Thanks to Suraj Prabhakaran for reporting
the problem.
- Enable support for the Mellanox MXM2 library by default.
- Improve support for Portals 4.
- Various Solaris fixes. Many thanks to Siegmar Gross for his
incredible patience in reporting all the issues.
- MPI-2.2: Add reduction support for MPI_C_*COMPLEX and MPI::*COMPLEX.
- Fixed internal accounting when openpty() fails. Thanks to Michal
Peclo for reporting the issue and providing a patch.
- Fixed too-large memory consumption in XRC mode of the openib BTL.
Thanks to Alexey Ryzhikh for the patch.
- Add bozo check for negative np values to mpirun to prevent a
deadlock. Thanks to Upinder Malhi for identifying the issue.
- Fixed MPI_IS_THREAD_MAIN behavior. Thanks to Lisandro Dalcin for
pointing out the problem.
- Various rankfile fixes.
- Fix functionality over iWARP devices.
- Various memory and performance optimizations and tweaks.
- Fix MPI_Cancel issue identified by Fujitsu.
- Add missing support for MPI_Get_address in the "use mpi" TKR
implementation. Thanks to Hugo Gagnon for identifying the issue.
- MPI-3: Add support for MPI_Count.
- MPI-2.2: Add missing MPI_IN_PLACE support for MPI_ALLTOALL.
- Added new usnic BTL to support the Cisco usNIC device.
- Minor VampirTrace update to 5.14.4.4.
- Removed support for ancient OS X systems (i.e., prior to 10.5).
- Fixed obscure packing/unpacking datatype bug. Thanks to Takahiro
Kawashima for identifying the issue.
- Add run-time support for PMI2 environments.
- Update openib BTL default parameters to include support for Mellanox
ConnectX3-Pro devices.
- Update libevent to v2.0.21.
- "ompi_info --param TYPE PLUGIN" now only shows a small number of MCA
parameters by default. Add "--level 9" or "--all" to see *all* MCA
parameters. See README for more details.
- Add support for asynchronous CUDA-aware copies.
- Add support for Mellanox MPI collective operation offload via the
"hcoll" library.
- MPI-3: Add support for the MPI_T interface. Open MPI's MCA
parameters are now accessible via the MPI_T control variable
interface. Support has been added for a small number of MPI_T
performance variables.
- Add Gentoo memory hooks override. Thanks to Justin Bronder for the
patch.
- Added new "mindist" process mapper, allowing placement of processes
via PCI locality information reported by the BIOS.
- MPI-2.2: Add support for MPI_Dist_graph functionality.
- Enable generic, client-side support for PMI2 implementations. Can
be leveraged by any resource manager that implements PMI2; e.g. SLURM,
versions 2.6 and higher.
1.7.2
-----
- Major VampirTrace update to 5.14.4.2.
(** also appeared: 1.6.5)
- Fix to set flag==1 when MPI_IPROBE is called with MPI_PROC_NULL.
(** also appeared: 1.6.5)
- Set the Intel Phi device to be ignored by default by the openib BTL.
(** also appeared: 1.6.5)
- Decrease the internal memory storage used by intrinsic MPI datatypes
for Fortran types. Thanks to Takahiro Kawashima for the initial
patch.
(** also appeared: 1.6.5)
- Fix total registered memory calculation for Mellanox ConnectIB and
OFED 2.0.
(** also appeared: 1.6.5)
- Fix possible data corruption in the MXM MTL component.
(** also appeared: 1.6.5)
- Remove extraneous -L from hwloc's embedding. Thanks to Stefan
Friedel for reporting the issue.
(** also appeared: 1.6.5)
- Fix contiguous datatype memory check. Thanks to Eric Chamberland
for reporting the issue.
(** also appeared: 1.6.5)
- Make the openib BTL more friendly to ignoring verbs devices that are
not RC-capable.
(** also appeared: 1.6.5)
- Fix some MPI datatype engine issues. Thanks to Thomas Jahns for
reporting the issue.
(** also appeared: 1.6.5)
- Add INI information for Chelsio T5 device.
(** also appeared: 1.6.5)
- Integrate MXM STREAM support for MPI_ISEND and MPI_IRECV, and other
minor MXM fixes.
(** also appeared: 1.6.5)
- Fix to not show amorphous "MPI was already finalized" error when
failing to MPI_File_close an open file. Thanks to Brian Smith for
reporting the issue.
(** also appeared: 1.6.5)
- Add a distance-based mapping component to find the socket "closest"
to the PCI bus.
- Fix an error that caused epoll to automatically be disabled
in libevent.
- Upgrade hwloc to 1.5.2.
- *Really* fixed XRC compile issue in Open Fabrics support.
- Fix MXM connection establishment flow.
- Fixed parallel debugger ability to attach to MPI jobs.
- Fixed some minor memory leaks.
- Fixed datatype corruption issue when combining datatypes of specific
formats.
- Added Location Aware Mapping Algorithm (LAMA) mapping component.
- Fixes for MPI_STATUS handling in corner cases.
- Add a distance-based mapping component to find the socket "closest" to the PCI bus.
1.7.1
-----
- Fixed compile error when --without-memory-manager was specified
on Linux
- Fixed XRC compile issue in Open Fabrics support.
1.7
---
- Added MPI-3 functionality:
- MPI_GET_LIBRARY_VERSION
- Matched probe
- MPI_TYPE_CREATE_HINDEXED_BLOCK
- Non-blocking collectives
- MPI_INFO_ENV support
- Fortran '08 bindings (see below)
- Dropped support for checkpoint/restart due to loss of maintainer :-(
- Enabled compile-time warning of deprecated MPI functions by default
(in supported compilers).
- Revamped Fortran MPI bindings (see the README for details):
- "mpifort" is now the preferred wrapper compiler for Fortran
- Added "use mpi_f08" bindings (for compilers that support it)
- Added better "use mpi" support (for compilers that support it)
- Removed incorrect MPI_SCATTERV interface from "mpi" module that
was added in the 1.5.x series for ABI reasons.
- Lots of VampirTrace upgrades and fixes; upgrade to v5.14.3.
- Modified process affinity system to provide warning when bindings
result in being "bound to all", which is equivalent to not being
bound.
- Removed maffinity, paffinity, and carto frameworks (and associated
MCA params).
- Upgraded to hwloc v1.5.1.
- Added performance improvements to the OpenIB (OpenFabrics) BTL.
- Made malloc hooks more friendly to IO interprosers. Thanks to the
bug report and suggested fix from Darshan maintainer Phil Carns.
- Added support for the DMTCP checkpoint/restart system.
- Added support for the Cray uGNI interconnect.
- Fixed header file problems on OpenBSD.
- Fixed issue with MPI_TYPE_CREATE_F90_REAL.
- Wrapper compilers now explicitly list/link all Open MPI libraries if
they detect static linking CLI arguments.
- Open MPI now requires a C99 compiler to build. Please upgrade your
C compiler if you do not have a C99-compliant compiler.
- Fix MPI_GET_PROCESSOR_NAME Fortran binding to set ierr properly.
Thanks to LANL for spotting the error.
- Many MXM and FCA updates.
- Fixed erroneous free of putenv'ed string that showed up in Valgrind
reports.
- Fixed MPI_IN_PLACE case for MPI_ALLGATHER.
- Fixed a bug that prevented MCA params from being forwarded to
daemons upon launch.
- Fixed issues with VT and CUDA --with-cuda[-libdir] configuration CLI
parameters.
- Entirely new implementation of many MPI collective routines focused
on better performance.
- Revamped autogen / build system.
- Add new sensor framework to ORTE that includes modules for detecting
stalled applications and processes that consume too much memory.
- Added new state machine framework to ORTE that converts ORTE into an
event-driven state machine using the event library.
- Added a new MCA parameter (ess_base_stream_buffering) that allows the user
to override the system default for buffering of stdout/stderr streams
(via setvbuf). Parameter is not visible via ompi_info.
- Revamped the launch system to allow consideration of node hardware
in assigning process locations and bindings.
- Added the -novm option to preserve the prior launch behavior.
- Revamped the process mapping system to utilize node hardware by adding
new map-by, rank-by, and bind-to cmd line options.
- Added new MCA parameter to provide protection against IO forwarding
backlog.
- Dropped support for native Windows due to loss of maintainers. :-(
- Added a new parallel I/O component and multiple new frameworks to
support parallel I/O operations.
- Fix typo in orte_setup_hadoop.m4. Thanks to Aleksej Saushev for
reporting it
- Fix a very old error in opal_path_access(). Thanks to Marco Atzeri
for chasing it down.
1.6.5
-----
- Updated default SRQ parameters for the openib BTL.
(** also to appear: 1.7.2)
- Major VampirTrace update to 5.14.4.2.
(** also to appear: 1.7.2)
- Fix to set flag==1 when MPI_IPROBE is called with MPI_PROC_NULL.
(** also to appear: 1.7.2)
- Set the Intel Phi device to be ignored by default by the openib BTL.
(** also to appear: 1.7.2)
- Decrease the internal memory storage used by intrinsic MPI datatypes
for Fortran types. Thanks to Takahiro Kawashima for the initial
patch.
(** also to appear: 1.7.2)
- Fix total registered memory calculation for Mellanox ConnectIB and
OFED 2.0.
(** also to appear: 1.7.2)
- Fix possible data corruption in the MXM MTL component.
(** also to appear: 1.7.2)
- Remove extraneous -L from hwloc's embedding. Thanks to Stefan
Friedel for reporting the issue.
(** also to appear: 1.7.2)
- Fix contiguous datatype memory check. Thanks to Eric Chamberland
for reporting the issue.
(** also to appear: 1.7.2)
- Make the openib BTL more friendly to ignoring verbs devices that are
not RC-capable.
(** also to appear: 1.7.2)
- Fix some MPI datatype engine issues. Thanks to Thomas Jahns for
reporting the issue.
(** also to appear: 1.7.2)
- Add INI information for Chelsio T5 device.
(** also to appear: 1.7.2)
- Integrate MXM STREAM support for MPI_ISEND and MPI_IRECV, and other
minor MXM fixes.
(** also to appear: 1.7.2)
- Improved alignment for OpenFabrics buffers.
- Fix to not show amorphous "MPI was already finalized" error when
failing to MPI_File_close an open file. Thanks to Brian Smith for
reporting the issue.
(** also to appear: 1.7.2)
The find-prefix infrastructure was required in a pkgviews world where
packages installed from pkgsrc could have different installation
prefixes, and this was a way for a dependency prefix to be determined.
Now that pkgviews has been removed there is no longer any need for the
overhead of this infrastructure. Instead we use BUILDLINK_PREFIX.pkg
for dependencies pulled in via buildlink, or LOCALBASE/PREFIX where the
dependency is coming from pkgsrc.
Provides a reasonable performance win due to the reduction of `pkg_info
-qp` calls, some of which were redundant anyway as they were duplicating
the same information provided by BUILDLINK_PREFIX.pkg.
pkgsrc changes: stop regenerating build system
and drop build-time dependency on autotools.
Version 1.11.1
--------------
* Detection fixes
+ Hardwire the topology of Fujitsu K-computer, FX10, FX100 servers to
workaround buggy Linux kernels.
Thanks to Takahiro Kawashima and Gilles Gouaillardet.
+ Fix L3 cache information on AMD Opteron 61xx Magny-Cours processors
in the x86 backend. Thanks to Guillaume Beauchamp for the patch.
+ Detect block devices directly attached to PCI without a controller,
for instance NVMe disks. Thanks to Barry M. Tannenbaum.
+ Add the PCISlot attribute to all PCI functions instead of only the
first one.
* Miscellaneous internal fixes
+ Ignore PCI bridges that could fail assertions by reporting buggy
secondary-subordinate bus numbers
Thanks to George Bosilca for reporting the issue.
+ Fix an overzealous assertion when inserting an intermediate Group object
while Groups are totally ignored.
+ Fix a memory leak on Linux on AMD processors with dual-core compute units.
Thanks to Bob Benner.
+ Fix a memory leak on failure to load a xml diff file.
+ Fix some segfaults when inputting an invalid synthetic description.
+ Fix a segfault when plugins fail to find core symbols.
Thanks to Guy Streeter.
* Many fixes and improvements in the Windows backend:
+ Fix the discovery of more than 32 processors and multiple processor
groups. Thanks to Barry M. Tannenbaum for the help.
+ Add thread binding set support in case of multiple process groups.
+ Add thread binding get support.
+ Add get_last_cpu_location() support for the current thread.
+ Disable the unsupported process binding in case of multiple processor
groups.
+ Fix/update the Visual Studio support under contrib/windows.
Thanks to Eloi Gaudry for the help.
* Tools fixes
+ Fix a segfault when displaying logical indexes in the graphical lstopo.
Thanks to Guillaume Mercier for reporting the issue.
+ Fix lstopo linking with X11 libraries, for instance on Mac OS X.
Thanks to Scott Atchley and Pierre Ramet for reporting the issue.
+ hwloc-annotate, hwloc-diff and hwloc-patch do not drop unavailable
resources from the output anymore and those may be annotated as well.
+ Command-line tools may now import XML from the standard input with -i -.xml
+ Add missing documentation for the hwloc-info --no-icaches option.
Existing SHA1 digests verified, all found to be the same on the
machine holding the existing distfiles (morden). Existing SHA1
digests retained for now as an audit trail.
From Benedek Gergely on pkgsrc-users.
Version 1.11.1
--------------
* hwloc-annotate does not drop unavailable resources from the output anymore
and those may be annotated as well.
* Fix an overzealous assertion when intermediate Group object while Groups
are totally ignored.
* Fix a memory leak on failure to load a xml diff file.
* Fix some segfaults when inputting an invalid synthetic description.
Version 1.11.0
--------------
* API
+ Socket objects are renamed into Package to align with the terminology
used by processor vendors. The old HWLOC_OBJ_SOCKET type and "Socket"
name are still supported for backward compatibility.
+ HWLOC_OBJ_NODE is replaced with HWLOC_OBJ_NUMANODE for clarification.
HWLOC_OBJ_NODE is still supported for backward compatibility.
"Node" and "NUMANode" strings are supported as in earlier releases.
* Detection improvements
+ Add support for Intel Knights Landing Xeon Phi.
Thanks to Grzegorz Andrejczuk and Lukasz Anaczkowski.
+ Add Vendor, Model, Revision, SerialNumber, Type and LinuxDeviceID
info attributes to Block OS devices on Linux. Thanks to Vineet Pedaballe
for the help.
- Add --disable-libudev to avoid dependency on the libudev library.
+ Add "MemoryDevice" Misc objects with information about DIMMs, on Linux
when privileged and when I/O is enabled.
Thanks to Vineet Pedaballe for the help.
+ Add a PCISlot attribute to PCI devices on Linux when supported to
identify the physical PCI slot where the board is plugged.
+ Add CPUStepping info attribute on x86 processors,
thanks to Thomas Röhl for the suggestion.
+ Ignore the device-tree on non-Power architectures to avoid buggy
detection on ARM. Thanks to Orion Poplawski for reporting the issue.
+ Work-around buggy Xeon E5v3 BIOS reporting invalid PCI-NUMA affinity
for the PCI links on the second processor.
+ Add support for CUDA compute capability 5.x, thanks Benjamin Worpitz.
+ Many fixes to the x86 backend
- Add L1i and fix L2/L3 type on old AMD processors without topoext support.
- Fix Intel CPU family and model numbers when basic family isn't 6 or 15.
- Fix package IDs on recent AMD processors.
- Fix misc issues due to incomplete APIC IDs on x2APIC processors.
- Avoid buggy discovery on old SGI Altix UVs with non-unique APIC IDs.
+ Gather total machine memory on NetBSD.
* Tools
+ lstopo
- Collapse identical PCI devices unless --no-collapse is given.
This avoids gigantic outputs when a PCI device contains dozens of
identical virtual functions.
- The ASCII art output is now called "ascii", for instance in
"lstopo -.ascii".
The former "txt" extension is retained for backward compatibility.
- Automatically scales graphical box width to the inner text in Cairo,
ASCII and Windows outputs.
- Add --rect to lstopo to force rectangular layout even for NUMA nodes.
- Add --restrict-flags to configure the behavior of --restrict.
- Objects may have a "Type" info attribute to specify a better type name
and display it in lstopo.
- Really export all verbose information to the given output file.
+ hwloc-annotate
- May now operate on all types of objects, including I/O.
- May now insert Misc objects in the topology.
- Do not drop instruction caches and I/O devices from the output anymore.
+ Fix lstopo path in hwloc-gather-topology after install.
* Misc
+ Fix hwloc/cudart.h for machines with multiple PCI domains,
thanks to Imre Kerr for reporting the problem.
+ Fix PCI Bridge-specific depth attribute.
+ Fix hwloc_bitmap_intersect() for two infinite bitmaps.
+ Fix some corner cases in the building of levels on large NUMA machines
with non-uniform NUMA groups and I/Os.
+ Improve the performance of object insertion by cpuset for large
topologies.
+ Prefix verbose XML import errors with the source name.
+ Improve pkg-config checks and error messages.
+ Fix excluding after a component with an argument in the HWLOC_COMPONENTS
environment variable.
* Documentation
+ Fix the recommended way in documentation and examples to allocate memory
on some node, it should use HWLOC_MEMBIND_BIND.
Thanks to Nicolas Bouzat for reporting the issue.
+ Add a "Miscellaneous objects" section in the documentation.
+ Add a FAQ entry "What happens to my topology if I disable symmetric
multithreading, hyper-threading, etc. ?" to the documentation.
Version 1.10.1
--------------
* Actually remove disallowed NUMA nodes from nodesets when the whole-system
flag isn't enabled.
* Fix the gathering of PCI domains. Thanks to James Custer for reporting
the issue and providing a patch.
* Fix the merging of identical parent and child in presence of Misc objects.
Thanks to Dave Love for reporting the issue.
* Fix some misordering of children when merging with ignore_keep_structure()
in partially allowed topologies.
* Fix an overzealous assertion in the debug code when running on a single-PU
host with I/O. Thanks to Thomas Van Doren for reporting the issue.
* Don't forget to setup NUMA node object nodesets in x86 backend (for BSDs)
and OSF/Tru64 backend.
* Fix cpuid-x86 build error with gcc -O3 on x86-32. Thanks to Thomas Van Doren
for reporting the issue.
* Fix support for future very large caches in the x86 backend.
* Fix vendor/device names for SR-IOV PCI devices on Linux.
* Fix an unlikely crash in case of buggy hierarchical distance matrix.
* Fix PU os_index on some AIX releases. Thanks to Hendryk Bockelmann and
Erik Schnetter for helping debugging.
* Fix hwloc_bitmap_isincluded() in case of infinite sets.
* Change hwloc-ls.desktop into a lstopo.desktop and only install it if
lstopo is built with Cairo/X11 support. It cannot work with a non-graphical
lstopo or hwloc-ls.
* Add support for the renaming of Socket into Package in future releases.
* Add support for the replacement of HWLOC_OBJ_NODE with HWLOC_OBJ_NUMANODE
in future releases.
* Clarify the documentation of distance matrices in hwloc.h and in the manpage
of the hwloc-distances. Thanks to Dave Love for the suggestion.
* Improve some error messages by displaying more information about the
hwloc library in use.
* Document how to deal with the ABI break when upgrading to the upcoming 2.0
See "How do I handle ABI breaks and API upgrades ?" in the FAQ.
Version 1.10.0
--------------
* API
+ Add hwloc_topology_export_synthetic() to export a topology to a
synthetic string without using lstopo. See the Synthetic topologies
section in the documentation.
+ Add hwloc_topology_set/get_userdata() to let the application save
a private pointer in the topology whenever it needs a way to find
its own object corresponding to a topology.
+ Add hwloc_get_numanode_obj_by_os_index() and document that this function
as well as hwloc_get_pu_obj_by_os_index() are good at converting
nodesets and cpusets into objects.
+ hwloc_distrib() does not ignore any objects anymore when there are
too many of them. They get merged with others instead.
Thanks to Tim Creech for reporting the issue.
* Tools
+ hwloc-bind --get <command-line> now executes the command after displaying
the binding instead of ignoring the command entirely.
Thanks to John Donners for the suggestion.
+ Clarify that memory sizes shown in lstopo are local by default
unless specified (total memory added in the root object).
* Synthetic topologies
+ Synthetic topology descriptions may now specify attributes such as
memory sizes and OS indexes. See the Synthetic topologies section
in the documentation.
+ lstopo now exports in this fully-detailed format by default.
The new option --export-synthetic-flags may be used to revert
back the old format.
* Documentation
+ Add the doc/examples/ subdirectory with several real-life examples,
including the already existing hwloc-hello.C for basics.
Thanks to Rob Aulwes for the suggestion.
+ Improve the documentation of CPU and memory binding in the API.
+ Add a FAQ entry about operating system errors, especially on AMD
platforms with buggy cache information.
+ Add a FAQ entry about loading many topologies in a single program.
* Misc
+ Work around buggy Linux kernels reporting 2 sockets instead
1 socket with 2 NUMA nodes for each Xeon E5 v3 (Haswell) processor.
+ pciutils/libpci support is now removed since libpciaccess works
well and there's also a Linux-specific PCI backend. For the record,
pciutils was GPL and therefore disabled by default since v1.6.2.
+ Add --disable-cpuid configure flag to work around buggy processor
simulators reporting invalid CPUID information.
Thanks for Andrew Friedley for reporting the issue.
+ Fix a racy use of libltdl when manipulating multiple topologies in
different threads.
Thanks to Andra Hugo for reporting the issue and testing patches.
+ Fix some build failures in private/misc.h.
Thanks to Pavan Balaji and Ralph Castain for the reports.
+ Fix failures to detect X11/Xutil.h on some Solaris platforms.
Thanks to Siegmar Gross for reporting the failure.
+ The plugin ABI has changed, this release will not load plugins
built against previous hwloc releases.
Version 1.9.1
-------------
* Fix a crash when the PCI locality is invalid. Attach to the root object
instead. Thanks to Nicolas Denoyelle for reporting the issue.
* Fix -f in lstopo manpage. Thanks to Jirka Hladky for reporting the issue.
* Fix hwloc_obj_type_sscanf() and others when strncasecmp() is not properly
available. Thanks to Nick Papior Andersen for reporting the problem.
* Mark Linux file descriptors as close-on-exec to avoid leaks on exec.
* Fix some minor memory leaks.
Version 1.9.0
-------------
* API
+ Add hwloc_obj_type_sscanf() to extend hwloc_obj_type_of_string() with
type-specific attributes such as Cache/Group depth and Cache type.
hwloc_obj_type_of_string() is moved to hwloc/deprecated.h.
+ Add hwloc_linux_get_tid_last_cpu_location() for retrieving the
last CPU where a Linux thread given by TID ran.
+ Add hwloc_distrib() to extend the old hwloc_distribute[v]() functions.
hwloc_distribute[v]() is moved to hwloc/deprecated.h.
+ Don't mix total and local memory when displaying verbose object attributes
with hwloc_obj_attr_snprintf() or in lstopo.
* Backends
+ Add CPUVendor, CPUModelNumber and CPUFamilyNumber info attributes for
x86, ia64 and Xeon Phi sockets on Linux, to extend the x86-specific
support added in v1.8.1. Requested by Ralph Castain.
+ Add many CPU- and Platform-related info attributes on ARM and POWER
platforms, in the Machine and Socket objects.
+ Add CUDA info attributes describing the number of multiprocessors and
cores and the size of the global, shared and L2 cache memories in CUDA
OS devices.
+ Add OpenCL info attributes describing the number of compute units and
the global memory size in OpenCL OS devices.
+ The synthetic backend now accepts extended types such as L2Cache, L1i or
Group3. lstopo also exports synthetic strings using these extended types.
* Tools
+ lstopo
- Do not overwrite output files by default anymore.
Pass -f or --force to enforce it.
- Display OpenCL, CUDA and Xeon Phi numbers of cores and memory sizes
in the graphical output.
- Fix export to stdout when specifying a Cairo-based output type
with --of.
+ hwloc-ps
- Add -e or --get-last-cpu-location to report where processes/threads
run instead of where they are bound.
- Report locations as likely-more-useful objects such as Cores or Sockets
instead of Caches when possible.
+ hwloc-bind
- Fix failure on Windows when not using --pid.
- Add -e as a synonym to --get-last-cpu-location.
+ hwloc-distrib
- Add --reverse to distribute using last objects first and singlify
into last bits first. Thanks to Jirka Hladky for the suggestion.
+ hwloc-info
- Report unified caches when looking for data or instruction cache
ancestor objects.
* Misc
+ Add experimental Visual Studio support under contrib/windows.
Thanks to Eloi Gaudry for his help and for providing the first draft.
+ Fix some overzealous assertions and warnings about the ordering of
objects on a level with respect to cpusets. The ordering is only
guaranteed for complete cpusets (based on the first bit in sets).
+ Fix some memory leaks when importing xml diffs and when exporting a
"too complex" entry.
Version 1.8.1
-------------
* Fix the cpuid code on Windows 64bits so that the x86 backend gets
enabled as expected and can populate CPU information.
Thanks to Robin Scher for reporting the problem.
* Add CPUVendor/CPUModelNumber/CPUFamilyNumber attributes when running
on x86 architecture. Thanks to Ralph Castain for the suggestion.
* Work around buggy BIOS reporting duplicate NUMA nodes on Linux.
Thanks to Jeff Becker for reporting the problem and testing the patch.
* Add a name to the lstopo graphical window. Thanks to Michael Prokop
for reporting the issue.
Version 1.8.0
-------------
* New components
+ Add the "linuxpci" component that always works on Linux even when
libpciaccess and libpci aren't available (and even with a modified
file-system root). By default the old "pci" component runs first
because "linuxpci" lacks device names (obj->name is always NULL).
* API
+ Add the topology difference API in hwloc/diff.h for manipulating
many similar topologies.
+ Add hwloc_topology_dup() for duplicating an entire topology.
+ hwloc.h and hwloc/helper.h have been reorganized to clarify the
documentation sections. The actual inline code has moved out of hwloc.h
into the new hwloc/inlines.h.
+ Deprecated functions are now in hwloc/deprecated.h, and not in the
official documentation anymore.
* Tools
+ Add hwloc-diff and hwloc-patch tools together with the new diff API.
+ Add hwloc-compress-dir to (de)compress an entire directory of XML files
using hwloc-diff and hwloc-patch.
+ Object colors in the graphical output of lstopo may be changed by adding
a "lstopoStyle" info attribute. See CUSTOM COLORS in the lstopo(1) manpage
for details. Thanks to Jirka Hladky for discussing the idea.
+ hwloc-gather-topology may now gather I/O-related files on Linux when
--io is given. Only the linuxpci component supports discovering I/O
objects from these extended tarballs.
+ hwloc-annotate now supports --ri to remove/replace info attributes with
a given name.
+ hwloc-info supports "root" and "all" special locations for dumping
information about the root object.
+ lstopo now supports --append-legend to append custom lines of text
to the legend in the graphical output. Thanks to Jirka Hladky for
discussing the idea.
+ hwloc-calc and friends have a more robust parsing of locations given
on the command-line and they report useful error messages about it.
+ Add --whole-system to hwloc-bind, hwloc-calc, hwloc-distances and
hwloc-distrib, and add --restrict to hwloc-bind for uniformity among
tools.
* Misc
+ Calling hwloc_topology_load() or hwloc_topology_set_*() on an already
loaded topology now returns an error (deprecated since release 1.6.1).
+ Fix the initialisation of cpusets and nodesets in Group objects added
when inserting PCI hostbridges.
+ Never merge Group objects that were added explicitly by the user with
hwloc_custom_insert_group_object_by_parent().
+ Add a sanity check during dynamic plugin loading to prevent some
crashes when hwloc is dynamically loaded by another plugin mechanisms.
+ Add --with-hwloc-plugins-path to specify the install/load directories
of plugins.
+ Add the MICSerialNumber info attribute to the root object when running
hwloc inside a Xeon Phi to match the same attribute in the MIC OS device
when running in the host.
Version 1.7.2
-------------
* Do not create invalid block OS devices on very old Linux kernel such
as RHEL4 2.6.9.
* Fix PCI subvendor/device IDs.
* Fix the management of Misc objects inserted by parent.
Thanks to Jirka Hladky for reporting the problem.
* Add a Port<n>State into attribute to OpenFabrics OS devices.
* Add a MICSerialNumber info attribute to Xeon PHI/MIC OS devices.
* Improve verbose error messages when failing to load from XML.
reported in PR 49080. I did look in the package configury to figure
out which ones were mutually connected, but I may have gotten it
wrong as there's a monumental maze of m4 autotoolery.
---------------------
- Now compiles on GNU/kFreeBSD
- Pool: `AF_PIPE` address fixed so that it works on recent Windows versions
in combination with Python 2.7.7.
- Pool: Fix for `Supervisor object has no attribute _children` error.
- Pool: Fixed bug with human_status(None).
- Pool: shrink did not work properly if asked to remove more than 1 process.
mk-configure>=0.27.0 is required for build.
Option -X was introduced to paexec(1) for ignoring
calculator's stdout.
PAEXEC_ENV environment variable sets a list of variables passed to
the calculator.
PAEXEC_TRANSPORT environment variable sets the transport unless
option -t was applied.
PAEXEC_NODES environment variable sets the nodes unless
option -n was applied.
pareorder(1) is a synonym for paexec_reorder(1)
Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
This seems to have been fixed in a previous version. At least "import
billiard" works from the interpreter. From CHANGES.txt:
- Fixes SemLock on Python 3.4 (Issue #107) when using
``forking_enable(False)``.
- Pool: Include more useful exitcode information when processes exit.
1) The shared library isn't installed with py33. The package uses a pure
python implementation;
2) The connection and reduction functions are installed in different
directory names depending on python major version. From CHANGES.txt:
3.3.0.16 - 2014-02-11
---------------------
- Previous release was missing the billiard.py3 package from MANIFEST
so the installation would not work on Python 3.
3.3.0.15 - 2014-02-10
---------------------
- Pool: Fixed "cannot join process not started" error.
- Now uses billiard.py2 and billiard.py3 specific packages that are installed
depending on the python version used.
This way the installation will not import version specific modules (and
possibly crash).
3.3.0.14 - 2014-01-17
---------------------
- Fixed problem with our backwards compatible ``bytes`` wrapper
(Issue #103).
- No longer expects frozen applications to have a valid ``__file__``
attribute.
Version 8.1.6
-------------
* Bug fixes
Version 8.1.5
-------------
* Bug fixes
Version 8.1.4
-------------
Milestone version: over 1000 patches since the last from Sun
* Bug fixes
* Enhancements
* qacct: print category information; support -A like -P ; make
-u a synonym for -o; -E selects on job end times read from
standard input with -f
* Move manager/operator setup in startup scripts
* Installation creates an environment modules file
* Add monitor_qmaster.sh script
* Write shepherd panic messages to syslog, not into /tmp
* Add .desktop file for qmon
* rpm/dpkg packaging allows building against motif (recent Debian/Fedora)
* Accounting reports qmaster-enforced resource limits (only on master PE
task if accounting_summary is false)
* Add "smp" to the default queue PE list
* install_execd doesn't check the presence of (mostly irrelevant) binaries
* Add configuration for logcheck
* Potentially incompatible changes
* renew_all_certs.ksh re-named to renew_all_certs.sh
* Expand $ja_task_id to 0 for non-array jobs
* Move manager/operator setup in startup scripts
* For security reasons, installation defaults for min_uid, min_gid in
sge_conf(5) are now 100 without CSP. See
<http://arc.liv.ac.uk/SGE/howto/sge-security.html>
* RPM layout changed to put relevant ones under noarch (on RHEL6 and
recent Fedora), with a separate guiinst package
* Memory values can be input and output in TB or tB (possible
incompatibility parsing output)
* Reduce execd CPU time reading large smaps files from Linux /proc and
provide USE_SMAPS in execd_params to turn it on (default now off
because huge smaps are generated by some programs)
* Remove redundant -verify option from qsh, qlogin (per doc)
Version 8.1.3
-------------
* Bug fixes
* Enhancements
* Document Interix building explicitly
* qstat reports array task maximum concurrency
* qstatus removes [] suffix for non-array jobs if -t was requested
* Read /etc/default/{sgeexecd,sgemaster} to allow customizing rc scripts
* Location of daemon pid files can be specified with SGE_QMASTER_PIDFILE,
SGE_EXECD_PIDFILE
* Debian packaging (as an add-on, installing into /opt/sge)
* Expand $sge_root and $sge_cell in the definitions of prolog and
similar methods
* Check in init script that shepherd will load
* Add lx-armhf architecture
* On Linux and NetBSD, report jobs' virtual memory usage as accurately
as possible
* Add -nobincheck installation option to avoid checking binaries
* Add some build hooks, useful for Debian particularly.
* Potentially incompatible changes
* qacct prints units (might affect parsing the output)
* Correct spelling of "comunication_error" in qstat XML error output
* Fix problems submitting to ARs (printing times now doesn't use
a days field in qstat etc.)
* Java version >= 1.5 required
* Lower default MAX_DYN_EC somewhat to avoid warning on typical Linux
configurations
* Other changes
* Don't install the ckpt directory (contents obsolete)
Version 8.1.2
-------------
* Bug fixes
* Enhancements
* Use cpusets for process containment on fairly recent Linux-based systems
(see USE_CGROUPS in sge_conf(5))
* Add bootstrap build script
* Make SGE template an RPM conf file
* Incompatible changes
* Make CRL and certificate expiry consistent
Version 8.1.1
-------------
* Bug fixes
* Security
* Don't pass any user environment to remote startup daemons -- better
fix for half of CVE-2012-0208
* Enhancements
* SGE_BINDING is set in the environment for all types of binding
* New jobstats(1) provides historical job summary
* Berkeleydb spools can optionally be opened "private" to allow
operation on NFS3 filesystems. Currently no installer support, but
see bootstrap(5) and the health warning
* Environment variable SGE_DRMAA_ALLOW_JOB_ERROR_STATE allows DRMAA
jobs to enter the error state; see drmaa_submit(3)
* Define SGE_JOBEXIT_STAT environment variable in epilog; see submit(1)
* The user from which mail is sent can be configured in sge_conf(5)
* Topology items are now static load values; see load_parameters(5)
* qstat now prints array job dependency info
* Default to support for qsort_args in sge_pe(5)
* Include an example of logrotate usage
* Install an "smp" PE
* Distribute/document sge_share_mon(1) to print share tree
* Improve install template defaults
* GPU load sensor (dist/util/resources/loadsensors/gpu-loadsensor.c)
* Allow building Kerberos/GSSAPI security modules against Heimdal
(but GSS is still not properly usable)
* Support arm and mipsel on GNU/Linux, completing the set
of official Debian Linux-based ports
* Support for OpenBSD (untested)
* Preliminary support for Cygwin: everything builds, clients work
(lightly tested), daemons need fixing
* Add ja_task_id to expandable variables in ckpt_command and similar
methods
* distinst supports installation with install(1) for use with -local
* Incompatible changes
* The CA directory is now /var/lib/sgeCA instead of /var/sgeCA
but installation will offer to move it [fixme]
* Drop (any pretence at) support for Cray/Unicos, NEC SX, Darwin 6
* The spool format for parallel job tasks has changed from any previous
version built with qsort_args (as above), which will make live
upgrades from such a version fail on nodes running parallel jobs
* Other changes
* Extensive internal changes to improve robustness, e.g. of
string-handling against buffer overruns -- somewhat error-prone
and may have caused regressions; more required
* Install script allows rsh et al to be omitted from binary distribution
in favour of ssh
Version 8.1.0
-------------
* Security fix
* Prevent users other than root deleting entries with sgepasswd
* Version numbering
* Switch to a more logical numbering scheme now that the Univa
baseline is irrelevant
* Bug fixes
* Other changes
* Hadoop support now for a more recent Hadoop distribution (see
README.BUILD)
Version 8.0.0e
--------------
Mostly build and security issues
* Bug fixes
* Security fixes
The first fix is for a trivial remote root by a valid user. The
others, including fixes for potential buffer overruns in daemon and
setuid programs, may or may not be exploitable.
* Sanitize the environment before executing remote startup programs etc.
Somewhat incompatible: LD_LIBRARY_PATH etc. may need to be set
differently. See the security notes in remote_startup(5) and
sge_conf(5). (CVE-2012-0208, thanks to William Hay)
* Don't write initial log messages in /tmp. Somewhat
incompatible: initial messages now in syslog.
* Avoid using mktemp. (Probably not a significant problem.)
* Control core dumps under setuid etc. with SGE_ENABLE_COREDUMP.
(Not normally a security issue.)
* Bounds checking in replace_params
* Avoid execd crash and possible overruns
* Fixes for buffer overrun and other improvements for (setuid
program) sgepasswd
dsh is an implementation of a wrapper for executing multiple remote shell
(rsh/remsh/ssh) commands. rsh/remsh/ssh are wrappers for executing shell
(ksh/bash/zsh/tcsh/sh .. etc... ) on remote hosts.
PLIST. From ChangeLog:
3.3.0.13 - 2013-12-13
---------------------
- Fixes compatability with Python < 2.7.6
- No longer attempts to handle ``SIGBUS``
- Non-thread based pool now only handles signals:
``SIGHUP``, ``SIGQUIT``, ``SIGTERM``, ``SIGUSR1``,
``SIGUSR2``.
- setup.py: Only show compilation warning for build related commands.
3.3.0.12 - 2013-12-09
---------------------
- Fixed installation for Python 3.
- Pool: Fixed bug with maxtasksperchild.
- Pool: Fixed bug in maintain_pool.
3.3.0.11 - 2013-12-03
---------------------
- Fixed Unicode error when installing the distribution (Issue #89).
- Daemonic processes are now allowed to have children.
But note that it will not be possible to automatically
terminate them when the process exits.
- Pool: Would not always be able to detect that a process exited.
3.3.0.10 - 2013-12-02
---------------------
- Windows: Fixed problem with missing ``WAITABANDONED_0``
- Windows: PipeConnection can now be inherited.
3.3.0.9 - 2013-12-02
--------------------
- Temporary workaround for Celery maxtasksperchild issue.
3.3.0.8 - 2013-11-21
--------------------
- Now also sets ``multiprocessing.current_process`` for compatibility
with loggings ``processName`` field.
3.3.0.7 - 2013-11-15
--------------------
- Fixed compatibility with PyPy 2.1 + 2.2.
- Fixed problem in pypy detection.
- Now uses ``ctypes.find_library`` instead of hardcoded path to find
the OS X CoreServices framework.
3.3.0.6 - 2013-11-12
--------------------
- Now works without C extension again.
- New ``_billiard.read(fd, buffer, [len, ])` function
implements os.read with buffer support (new buffer API)
- New pure-python implementation of ``Connection.send_offset``.
3.3.0.5 - 2013-11-11
--------------------
- All platforms except for Windows/PyPy/Jython now requires the C extension.
3.3.0.4 - 2013-11-11
--------------------
- Fixed problem with Python3 and setblocking.
3.3.0.3 - 2013-11-09
--------------------
- Now works on Windows again.
3.3.0.2 - 2013-11-08
--------------------
- ApplyResult.terminate() may be set to signify that the job
must not be executed. It can be used in combination with
Pool.terminate_job.
- Pipe/_SimpleQueue: Now supports rnonblock/wnonblock arguments
to set the read or write end of the pipe to be nonblocking.
- Pool: Log message included exception info but exception happened
in another process so the resulting traceback was wrong.
- Pool: Worker process can now prepare results before they are sent
back to the main process (using ``Worker.prepare_result``).
3.3.0.1 - 2013-11-04
--------------------
- Pool: New ``correlation_id`` argument to ``apply_async`` can be
used to set a related id for the ``ApplyResult`` object returned:
>>> r = pool.apply_async(target, args, kwargs, correlation_id='foo')
>>> r.correlation_id
'foo'
- Pool: New callback `on_process_exit` is called when a pool
process exits, with signature ``(pid, exitcode)``.
- Pool: Improved the too many restarts detection.
3.3.0.0 - 2013-10-14
--------------------
- Dual code base now runs on Python 2.6+ and Python 3.
- No longer compatible with Python 2.5
- Includes many changes from multiprocessing in 3.4.
- Now uses ``time.monotonic`` when available, also including
fallback implementations for Linux and OS X.
- No longer cleans up after receiving SIGILL, SIGSEGV or SIGFPE
- ``Finalize`` and ``register_after_fork`` is now aliases to multiprocessing.
It's better to import these from multiprocessing directly now
so that there aren't multiple registries.
- New `billiard.queues._SimpleQueue` that does not use semaphores.
- Pool: Can now be extended to support using multiple IPC queues.
- Pool: Can now use async I/O to write to pool IPC queues.
- Pool: New ``Worker.on_loop_stop`` handler can be used to add actions
at pool worker process shutdown.
Note that, like all finalization handlers, there is no guarantee that
this will be executed.