Features:
- Introduced locality domain concepts and unit locality discovery
(
dash::util::Locality,dash::util::LocalityDomain). - Global dynamic memory allocation: concepts and reference implementations
(
dash::GlobDynamicMem,dash::DynamicAllocator). - Dynamic data structures:
dash::list,dash::unordered_map. - Added load balance patterns and automatic data distribution based on locality information to aid in load balancing.
- Introduced parallel IO concepts for DASH containers (
dash::io), currently implemented based on HDF5. - Introduced stencil iterator and halo block concepts.
- Using new DASH locality domain concept to provide automatic configuration of OpenMP for node-level parallelization.
- New algorithms, including
dash::fill,dash::generate,dash::find. - Drastic performance improvements in algorithms, e.g.
dash::min_element,dash::transform. - Additional benchmark applications.
- Additional example applications, including histogram sort and radix sort implementations.
- Runtime configuration utility (
dash::util::Config). - Better textual output of unit tests
- Added support for HDF5 groups
- Support patterns with underfilled blocks in dash::io::hdf5
Bugfixes:
- Fixed element access of
.local.begin()indash::Matrix. - Numerous stability fixes and performance improvements.
-
Intel MIC architecture build targets (tested on SuperMIC, Knights Corner).
-
Support for likwid.
-
Support for HDF5.
-
Generate cmake package for DASH and DART
-
Added code coverage tests
-
New compiler flags:
-
DASH_ENABLE_LIKWID: Whether DASH has been compiled with likwid support. -
DASH_ENABLE_HDF5: Whether DASH has been compiled with HDF5 support. -
DASH__ARCH__HAS_RDTSC: Whether the target architecture provides an RDTSC micro-instruction.
-
Bugfixes:
- Fixed compiler errors for Intel MIC compiler (
icc -mmic,mpiicc -mic). - Fixed compiler errors for Intel Compiler 16.0.
- Disable hdf5 support if only serial version of hdf5 lib is loaded
Features:
-
Added function
dart_allreduce. -
Added function
dart_reduce -
Made global memory allocation and communication operations aware of the underlying data type to improve stability and performance.
-
Extended use of
constspecifier in DART communication interface -
Added interface component
dart_localityimplementing topology discovery and hierarchical locality description-
New types:
dart_locality_scope_t: enum of locality scopes (global, node, module, NUMA, ...)dart_hwinfo_t: hardware information such as number of NUMA domains and cores, CPU clock frequencies, CPU pinning, cache sizes, etc.dart_domain_locality_t: node in a locality domain hierarchy providing locality information such as the number of units in the domain and their ids, sub-domains, level in topology, etc.dart_unit_localiy_t: locality information for a specific unit
-
New functions:
dart_domain_locality: Access hierarchical locality description of a specified locality domaindart_team_locality: Access hierarchical locality description of a specified team.dart_unit_locality: Access locality description of a specified unit
-
New base implementations:
Implementations of the locality components to be usable by any DART backend:dart__base__locality__initdart__base__locality__finalizedart__base__locality__domaindart__base__locality__unit
-
Fixes:
- Added clarification that DART currently does not provide thread-safe access.
Features:
-
Added support for ScaLAPACK.
-
Added support for MKL.
-
Added support for numalib.
-
Added support for IPM.
-
Added support for PLASMA.
-
Added support for hwloc.
-
Enabled reporting of compiler warnings (
-Wall -pedantic). -
New compiler flags:
DASH_ENABLE_SCALAPACK: Whether DASH has been compiled with ScaLAPACK support.DASH_ENABLE_MKL: Whether DASH has been compiled with Intel MKL support.DASH_ENABLE_NUMA: Whether DASH has been compiled with numalib support.DASH_ENABLE_IPM: Whether DASH has been compiled with support for run-time calls of IPM functions.DASH_ENABLE_PLASMA: Whether DASH has been compiled with support for the PLASMA linear algebra library.
New compiler flags specific to DART-MPI, also available in DASH when built with DART-MPI backend:
DART_MPI_IMPL_ID: Identification string of the linked MPI implementation.DART_MPI_IS_INTEL: Defined if DART-MPI uses Intel MPI.DART_MPI_IS_MPICH: Defined if DART-MPI uses MPICH, including IBM MPI.DART_MPI_IS_MVAPICH: Defined if DART-MPI uses MVAPICH.DART_MPI_IS_OPENMPI: Defined if DART-MPI uses OpenMPI.
Bugfixes:
- Fixed compiler flags for Cray compiler.
Features:
- Added type
dart_operation_tfor specification of reduce operations. - Added type
dart_datatype_tfor portable specification of data types.
Bugfixes:
- Fixed compiler warnings.
Features:
- Added logging.
Bugfixes:
- Fixed missing deallocation of shared memory segments when MPI shared windows are disabled.
- Reduced MPI calls in rank queries.
- Numerous stability improvements, added checks of parameters and return values of MPI calls.
- Fixed compiler warnings.
- Added documentation of container concepts.
Features:
- Added
dash::make_team_specproviding automatic cartesian arrangement of units optimizing communication performance based on pattern properties. - Added
dash::ShiftTilePattern(previouslydash::TilePattern). - Added
dash::TilePattern. - Added algorithms
dash::fillanddash::generate. - Added
dash::GlobViewIterfor specifying and iterating multi-dimensional views e.g. on matrices. - Added benchmark application
bench.10.summafor evaluation ofdash::multiply<dash::Matrix>. - Added benchmark application
bench.07.local-copyfor evaluation ofdash::copy(global-to-local copy operations). - Extended GUPS benchmark application
bench.03.gups. - Extended micro-benchmark
bench.09.multi-reader. - Added automatic balancing of process grid extents in
dash::TeamSpec, optimizing for surface-to-volume ratio. - Added tool
dash::tools::PatternVisualizerto visualize data distributions in SVG graphics. - Added log helper
print_pattern_mappingto visualize data distributions in log output. - Significantly improved performance of
dash::summa. - Added support for irregular blocked distributions (underfilled blocks) for
dash::Array. - Added
dash::util::Locality, a minimalistic helper class for obtaining basic locality information like NUMA domains and CPU pinning. - Added utility class
dash::util::BenchmarkParamsfor printing benchmark parameters, DASH configuration and environment settings in measurements preamble. - Improved efficiency of
dash::copyfor local-to-local copying.
Bugfixes:
- Fixed compiler errors for ICC 15.
- Fixed order of coordinate indices in patterns and
dash::Matrix. - Fixed definition of assertion macros when configured with runtime assertions disabled.
- Added barrier in
dash::Array.deallocate()to prevent partitions of a global array to be freed when going out of scope while other units might still attempt to access it. - Fixed compiler warnings.
- Fixed
dash::copyfor huge ranges.