TRIQS/mpi 1.3.0
C++ interface to MPI
Loading...
Searching...
No Matches
Changelog

Version 1.3.0

This is version 1.3.0 of mpi, a high-level C++ interface to the [Message Passing Interface].

We thank all contributors: Thomas Hahn, Alexander Hampel, Henri Menke, Dylan Simon, Hugo U.R. Strand, Nils Wentzell

Find below an itemized list of changes in this release.

General

  • Clean up detail namespace to consistently contain implementation details
  • Improve test coverage and clean up tests
  • Remove deprecated functions mpi_all_reduce and mpi_all_gather
  • Remove remaining use of enable_if_t
  • Various code improvements in c++/mpi/monitor.hpp
  • Bug fix for custom MPI tuple types
  • Split mpi.hpp into multiple header files
  • Fix np2 tests to actually run with 2 cores and not 4
  • Improve doc for has_env and rename TRIQS_FORCE_MPI_INIT to FORCE_MPI_INIT
  • Protect mpi::environment construction outside of mpirun
  • Use value initialization for also for MPI_Op and MPI_Datatype
  • Fix #8 to restore compatibility against MPICH
  • Make sure to specialize mpi_type<..> also for constant builtin types

cmake

  • Remove python and cpp2py dependencies
  • Use GNUInstallDirs in install commands
  • Set policy CMP0144 to new
  • Export MPIEXEC_MAX_NUMPROCS variable

doc

  • Add documentation to the C++ source code files
  • Remove any sphinx related files and switch to doxygen to generate documentation
  • Build and deploy documentation with GitHub Actions

Version 1.2.0

This is version 1.2.0 of mpi, a high-level C++ interface to the [Message Passing Interface].

We thank all contributors: Thomas Hahn, Alexander Hampel, Dylan Simon, Hugo U.R. Strand, Nils Wentzell

Find below an itemized list of changes in this release.

General

  • Force mpi initialization when FORCE_MPI_INIT is set in environment
  • Add support for cray MPICH environments
  • Fix compiler warnings
  • clang-format all source files

cmake

  • Add compiler warnings for IntelLLVM
  • Do not build documentation as subproject
  • Synchronize deps/CMakeLists.txt with nda
  • Remove redundant PythonSupport check
  • Update Findsanitizer.cmake to include TSAN and MSAN

fixes

  • Make sure to specialize mpi_type<..> also for constant builtin types
  • Use value initialization for also for MPI_Op and MPI_Datatype
  • Fix #8 restore compatibility against MPICH
  • Protect mpi::environment construction outside of mpirun
  • Demote MPI CXX types to C

Version 1.1.0

This is version 1.1.0 of mpi, a high-level C++ interface to the [Message Passing Interface].

We thank all contributors: Philipp Dumitrescu, Alexander Hampel, Olivier Parcollet, Dylan Simon, Nils Wentzell

Find below an itemized list of changes in this release.

General

  • Add mpi::monitor class to allow stopping all ranks when exception is thrown on any one of them
  • Added layer to use triqs without MPI + tests
  • Make sure to specialize mpi_type<..> also for constant builtin types
  • Regenerate Apache copyright headers
  • Restore compatibility against itertools/unstable: Allow sentinel types for std::end/cend(range)
  • Add simple test for vector<non-pod> scatter/gather
  • Add mpi_broadcast and mpi_reduce for std::pair + test
  • Change mpi_gather/scatter for std::vector of custom type to just gather/scatter the vector and not its values
  • New poll barrier as alternative to mpi.barrier
  • mpi::details::convert should be recursive, trigger explicit conversion in else branch
  • Make sure to std::abort in mpi abort when not in an mpi env
  • Simplify check for mpi env vars, provide single static mpi::has_env
  • Fix generic mpi operations for vector/lazy types, Protect in_place operations against rvalues and const
  • Change type of mpi::lazy to match lazy implementation for triqs::gfs, add is_mpi_lazy checker
  • Check that all vector sizes match in all_reduce(std::vector)
  • Call to all_reduce should not take a root argument
  • Type bool should be associated with MPI_CXX_BOOL
  • Use MPI_CXX_DOUBLE_COMPLEX over Fortran-specific type MPI_DOUBLE_COMPLEX

doc

  • Add link to reference doc to README.md
  • Minor doc cleanups for doxygen generation, add Doxyfile and update .gitignore

cmake

  • Do not run mpi_monitor as nompi test
  • Set CXX standard using target_compile_features
  • Use unstable branch of itertools
  • Bump Version number to 1.1.0

Version 1.0.0

mpi is a high-level C++ interface to the [Message Passing Interface].

This is the initial release for this project.