# Example MPI History See `CONTRIBUTING.rst` for details of **required** info/format for each entry, which **must** added in reverse chronological order (newest at the top). It must **not** be used as a substitute for writing good git commit messages! ## 2025-07-25 I. Hrivnacova (MPI-V11-03-03) - Fixed doxygen pages tags ## 2025-07-24 I. Hrivnacova (MPI-V11-03-02) - Migration of existing README.md to Doxygen: - Added Doxygen keywords to README.md files - Removed .README.txt files ## 2025-03-28 Ben Morgan (MPI-V11-03-01) - Modernize and simplify library and example build scripts to build G4mpi library and examples of its use in one project. ## 2025-02-18 Chris Brady, Filippo Falezza, Ben Morgan (MPI-V11-03-00) - Move MPI from deprecated C++ interface to C interface (MPI 3+) - Changes from privately supplied patch, and through [GitHub PR #81](https://github.com/Geant4/geant4/pull/81/) ## 2023-03-11 Ben Morgan (MPI-V11-02-00) - Move CTests definitions to tests/ctests_examples ## 2023-11-09 I. Hrivnacova (MPI-V11-01-03) - Coding guidelines - document examples macros in README files - Renamed v.mac in vis.mac - Removed examples README.html (not synchronised with README.md) ## 2023-11-07 Le Tuan Anh (MPI-V11-01-02) - Fixed bug: G4filesystem -> G4Filesystem in RunActionMaster of exMPI04 - Add 02 new functions in G4MPIrunmanager to access number of events in master / slave ## 2023-11-02 I. Hrivnacova (MPI-V11-01-01) - Updated analysis classes and exMPI04 for changes in analysis in analysis-V11-01-* - Changed struct G4RootMpiPNtupleDescription in class ## 2023-01-09 Ben Morgan (MPI-V11-01-00) - Use PROJECT_ scoped _SOURCE/BINARY_DIR variables in place of CMAKE_ scope version to ease use of Geant4 as a CMake subproject. - Fixes [GitHub PR #52](https://github.com/Geant4/geant4/pull/52) ## 2022-11-09 I. Hrivnacova (MPI-V11-00-03) - Updated analysis classes for changes in analysis in analysis-V11-00-* - Fixed exMPI04 example failing in sequential mode when MPI ntuple merging is activated ## 2022-05-18 Guy Barrand (MPI-V11-00-02) - have "toolx" namespace for g4tools code related to MPI, then: - namespace tools::mpi becomes toolx::mpi. - includes #include become #include ## 2022-03-10 Ben Morgan (MPI-V11-00-01) - Remove use of obsolete G4DeveloperAPI functions ## 2021-12-10 Ben Morgan (MPI-V11-00-00) - Change to new Markdown History format --- # History entries prior to 11.0 9 Novemeber 2021, I. Hrivnacova (MPI-V10-07-03) - Updated analysis classes for changes in analysis in analysis-V10-07-* - More updates in g4mpi for changes in G4String: str(i) -> str[i]; str(i,j) -> str.substr(i,j) - exMPI03 - include G4AnalysisManager.hh exMPI04 - include G4Root[Mpi]AnalysisManager.hh - instead of removed g4root.hh 25 October 2021, B.Morgan (MPI-V10-07-02) - Use G4StrUtil functions replacing deprecated G4String member functions 18 October 2021 B.Morgan (MPI-V10-07-01) - Use std::string member functions from G4String in place of synonyms 1 October 2021 B. Morgan (MPI-V10-07-00) - Use new std::string compliant G4String interfaces 4 November 2020 I. Hrivnacova (MPI-V10-06-00) - Updated analysis classes for the design changes in analysis tags analysis-V10-06-05,06 21 October 2019 I. Hrivnacova (MPI-V10-05-02) - Fixed exMPI03, exMPI04, G4MPIscorerMerger.cc compilation which was broken after changes in scorers - Added new option ('rowMode') for ntuple merging: - Added 'rowMode' parameter in the G4MPIntupleMerger constructor - Changed the default merging mode to the new one (column-wise with preserved rows) - Updated the analysis classes for the new merging mode 09 July 2019 I. Hrivnacova (MPI-V10-05-01) - Removed G4VIS_USE from exMPI04 14 May 2019 I. Hrivnacova (MPI-V10-05-00) - Fixed compilation of G4MPIextraWorker.cc. This fixes problem report #2163. 23 November 2018 I. Hrivnacova (MPI-V10-04-01) - Adapted g4mpi to allow to define an extra worker for collecting data from processing workers (needed for merging ntuples) - Added classes for ntuple merging (in source/analysis) - Added exMPI04 demonstrating merging ntuples via MPI (with Root output only) - In exMPI03: fixed warning from analysis when opening the second output file (dose-merged) within the same run 02 May 2018 J.Allison (MPI-V10-04-00) - Removed G4VIS_USE and G4UI_USE. 28 November 2017 B.Morgan (MPI-V10-03-02) - Repace ROOT_INCLUDE_DIR with ROOT_INCLUDE_DIRS 20 Sep 2017 B. Morgan (MPI-V10-03-01) - Migrate ctests definitions file to base directory - Update to provide tests to build/test G4mpi and each example without requiring obsolete GEANT4_BUILD_EXAMPLES switch. - COWORKS with ctests-V10-03-12 5 Oct 2016 A. Dotti (MPI-V10-02-02) - Porting of scoring merging to new G4StatDouble based hits 20 Jul 2016 I. Hrivnacova (MPI-V10-02-01) - Coding guidelines (class data member names, separators) 04 Jul 2016 I. Hrivnacova (MPI-V10-02-00) - Fixes for Doxygen documentation 18 Nov 2015 A.Dotti (MPI-V10-01-23) - Support for both static and shared at the same time 17 Nov 2015 A.Dotti (MPI-V10-01-22) - New cmake files cleaned up 2 Nov 2015 A.Dotti (MPI-V10-01-21) - Tagging for release 17 Sep 2015 A.Dotti - Check existance of exMPI02 when configuring both library and examples together 2 Sep 2015 A.Dotti - Implementing G4 convention on lib[64] for output - Adding advanced option G4MPI_OLD_MPI to set old MPI back-compatible flag for old MPI signatures 2 Sep 2015 A.Dotti (MPI-V10-01-20) - Fixing previus tag for ctest usage 1 Sep 2015 A.Dotti (MPI-V10-01-19) - New optimized merging for G4Run and scorer 31 Aug 2015 A. Dotti (MPI-V10-01-18) - Improving CMakeLists.txt for standalone use: allow for library and examples to be built together 28 Aug 2015 A. Dotti (MPI-V10-01-17) - Correcting CMakeLists.txt for standalone use 20 Aug 2015 A. Dotti (MPI-V10-01-16) - Code cleanup 20 Aug 2015 A. DOtti (MPI-V10-01-15) - Fixing race condition in exMPI03 for merging 19 Aug 2015 A. Dotti (MPI-V10-01-14) - Functionalities shown in exMPI03: - New merging of command line scorers via MPI::Pack - New merging of user data associated to Run 25 July 2015 A. Dotti (MPI-V10-01-13) - Fix compilation error 24 July 2015 A. Dotti (MPI-V10-01-12) - Increasing verbosity during cmake phase to print out location of mpi library and headers 21 July 2015 A. Dotti (MPI-V10-01-10, -11) - Changing path for exacutables to new standard - Fixing check for examples to be built 09 July 2015 A. Dotti (MPI-V10-01-08, -09) - Fixing macro names for ctests 08 July 2015 A. Dotti (MPI-V10-01-07) - Added TOOLS_USE_NATIVE_MPI compilation flag into source/sources.cmake for use with ctest 04 July 2015 I. Hrivnacova (MPI-V10-01-06) - Added implementation of histo merger with use of g4analysis and with use of g4tools; kept temporarily old merger class - Fixed exMPI03 Analysis class: separated Close() from Save() to avoid resetting histogram before performing Merge. 17 Feb 2015 A.Dotti (MPI-V10-01-05) - Adding MPI examples for ctest/cdash 16 Feb 2015 A.Dotti (MPI-V10-01-04) - Improving CMakeLists for integration with ctest 10 Feb 2015 A.Dotti (MPI-V10-01-01,02,03) - Fix for sequential mode - Simplify cmake - Fix for possible issues with allocation of axis 6 Feb 2015 A.Dotti (MPI-V10-01-00) - Fix bug in exMPI02 using wrong RNG calls to generate primaries - Introduced new functionality in G4mpi library to merge G4Run, scorerers and g4tools histograms/profiles across MPI ranks - Introduced new example exMPI03, based on same geometry and physics of exMPI02 to demonstrate merging capabilities 21 July 2014 A. Dotti (MPI-V10-00-02) - Fixing bug for RNG seed distribution in MT compilations (Bug #1653) 13 June 2014 A. Dotti (MPI-V10-00-01) - Adding first version of G4RunMerger and G4ScorerMerger 10 June 2014 A. Dotti (MPI-V10-00-00) - New CMake receipe: increase portability of the code 10 Novembeer 2013 K. Murakami (MPI-V09-06-00) [source] - new coding guide line - CMakeLists.txt, add BUILD_SHARED_LIBS flag for creating static lib add check IntelMPI, mpiicpc - MT migration : beamOn thread stacked to main for MT use /run/beamOn command, instead of direct call of RM.BeamOn() [examples] - change coding guideling to the example guide - MT migration - PhysicsList is changed to FTFP_BERT - add run.mac 20 November 2012, I. Hrivnacova (MPI-V09-05-06) - Fixed .README files 20 November 2012, I. Hrivnacova (MPI-V09-05-05) - Fixed CmakeLists.txt in the top directory 16 November 2012, K. Murakami (MPI-V09-05-04) - Updated CmakeLists.txt for examples. Fixed link errors. - Updated README document. 16 November 2012, I. Hrivnacova (MPI-V09-05-03) - Update of CMake files: - Added CMakeLists.txt in for processing MPI from upper directories - Removed exMPI02/FindROOT.cmake (available with Geant4 distribution) - Minor changes in exMPI01, exMPI02 CMake build in order to be able to build examples from the upper directories - Added comment lines - Added copying macros in the build area - Install targets under CMAKE_INSTALL_PREFIX/bin and not in source 15 November 2012, K. Murakami (MPI-V09-05-02) - typos in documents are fixed. 8 November 2012, K. Murakami (MPI-V09-05-01) - explicit inclusion of G4SystemOfUnits.hh and G4PhysicalConstants.hh - updated documentations 1 November 2012, K. Murakami (MPI-V09-05-00) - Migrated to CMake build with change of directory structure. - G4Exception is replaced with new one. - Fixed infinite-loop of slaves when a macro does not exists. - Added support for execution of maro with /control/macroPath. - Added best guess of selection of a UI shell. - Added Doxygen-style docs. 3 December 2010 K. Murakami (MPI-V09-03-02) - /mpi/wait command is removed. It is automatically called at the end of macro(batch) execution. 4 June 2010 J.Perl (MPI-V09-03-01) - Updated vis usage. 18 May 2010 K.Murakami (MPI-V09-03-00) == code review was performed. == << mpi_ineterface >> - OpenMPI as default MPI library instead of LAM/MPI - improve /mpi/status command. (waste of CPU, time measurement) - /mpi/wait command is introduced for waiting until beamOn ends. - improve macro file parser * same parser as G4UIbatch * fixed unexpected behavior at the end of batch mode - changed "beamOn" behavior for better performance * thread-out for interactive, on-thread for batch << exMPI01 >> - use G4UIcsh instead of G4UItcsh because OpenMPI is now default. - use G4eMultipleScattering instead of obsolete G4MultipleScattering. << exMPI02 >> - use G4UIcsh instead of G4UItcsh because OpenMPI is now default. 16 Nov. 2007 K.Murakami - commited to G4 CVS.