This release
- adds count and offset to each exchanger message, simplifying the MPI datatypes in turn,
- adds an interface to iterate over the extended messages
- improves multi-threaded operations for exchangers
- improve code-sharing between exchangers by inserting an actual base class
- experimental: exposes the xt_exchanger family of classes (Fortran:
USE xt_exchanger_abstract, C: #include <xt/xt_exchanger.h>)
- adds a configurable mode to put exchangers into synchronous operation mode for improved fault isolation
- adds documentation for the now public exchanger hierarchy
- make the alternate datatype generator previously only available with compile-time macro definition COMPACT_DT a run-time customizable part
- add a limit for the size of the MPI datatype cache, needed large, sparse indexed access into huge local arrays
- various improvements to the test suite for new bugs in new compilers (nvfortran mostly) and old bugs in old compilers (ifort mostly)
- improve the build tools for robustness
- refines and extends the configurable bucket generator interface
- permits suppressing the use of pthreads locking (user then needs to ensure creation of index lists or redists is non-concurrent via other means)
- various minor optimizations in handling of MPI datatypes
This release fixes a minor bug in the build system affecting build certain configurations. In these, a pre-processor macro that influences the conditional expansion of Fortran or C header module dependencies is defined by a command-line flag (usually using a -D switch) with a non-empty value. Such builds will fail with an error message.
If building with 0.11.5 succeeds, no upgrade to this patch release is necessary since only build tooling is different comparing 0.11.5.1 to 0.11.5.
This release
- contains two fixes relevant for intersections using the optimized paths introduced in 0.11,
- fixes potentially problematic use of realloc now exhibit canonical behaviour: whenever an allocation of size 0 is created, NULL is returned and realloc with size 0 uses free instead,
- brings some improvements of the documentation,
- introduces multiple changes that affect the build system (mostly in terms of ergonomics),
- properly detects two failures in the nvfortran compiler and uses work-arounds regardless of compiler macro definitions,
- changes handling of failure cases to print a backtrace before terminating the program,
- improves compatibility with macOS.
It's recommended for all users of older 0.11 releases to upgrade to this version.
This release updates fixes for the build system for newer compilers but remains functionally identical to the 0.11.3 release.
It became necessary to publish an intermediate release for ICON, since the next proper release with improvements for exchangers, derived data type creation and general improvements is not ready yet.
This release adds some minor improvements to the build and installation system, the most significant results are
- fewer rebuilds when used as external by better handling of time stamps and effectively unchanged files
- support of the flang-new line of LLVM Fortran compilers
- introduction of headers for C++ (yaxt.hpp)
Download: https://swprojects.dkrz.de/redmine/projects/yaxt/wiki/Downloads
Apart from bug fixes and compatibility improvements, this release expands on the custom bucket construction facility introduced in 0.11.0 and adds a corresponding performance test program.
This release addresses minor bugs in the internal derived data type packing/unpacking where
MPI_FLOAT_INT might lead to a SIGBUS on some architectures.
- Reference tests for 0-size datatypes incorrectly use a buffer of size 0, but the MPI spec requires a buffer of the size provided by
MPI_Pack_size.
Also, it includes some improvements for xt_idxsection and xt_idxstripes and a few refactorings that were release ready.
The internal derived data type packing/unpacking can now be disabled with the configure switch --disable-xt-ddt-exchanger.
This release addresses minor bugs in the internal derived data type packing/unpacking where
MPI_FLOAT_INT might lead to a SIGBUS on some architectures.
- Reference tests for 0-size datatypes incorrectly use a buffer of size 0, but the MPI spec requires a buffer of the size provided by
MPI_Pack_size.
If you already have a build of 0.10.1 that passes all tests, there is no need to upgrade. But it is strongly recommended for RISC platforms (NEC SX, ARM64, PPC64 and others).
This version presents an overhaul of multiple data paths in the intersection computation that is the basis of Xmap construction.
This release should work as a drop-in replacement for previous versions and only make Xmap creation faster.
In case an unexpected bug got through and you experience performance degradation of any kind, we'd like to hear of that.
New functionality is a choice of sorting algorithm and customizable bucket generation in the distributed directory employed in xt_xmap_dist_dir_new.
This release mostly fixes problems with experimental features and builds on particular platforms.
- A memory leak with the GPU memory exchanger introduced in 0.10.0 was fixed.
- Adjustments for newer nvhpc Fortran compilers have been added.
- Warning suppressions for gcc 13 were updated.
The corresponding archives are in the Downloads section, the branch release-0.10.1 matches the archive contents.