[io] Deprecate TMPIFile and the mpi build option#22846
Draft
guitargeek wants to merge 1 commit into
Draft
Conversation
TMPIFile and its `mpi` build option are deprecated and scheduled for removal in the next release cycle. TMPIFile originated in the US DOE HEP-CCE program as a demonstrator for in-flight merging of ROOT output from MPI ranks in ATLAS event processing on DOE supercomputers (Theta at ALCF, Cori at NERSC): worker ranks send TMemFile buffers over MPI to collector ranks that merge them into a single output file (taken from this repo [1]). It was developed at ANL/LBNL from 2018 on, upstreamed in PR root-project#4375 (December 2019), and presented at CHEP 2019 [2]. Development stopped weeks after the merge: the last functional commit to `io/mpi` dates from January 2020, the original hep-cce/TMPIFile repository is frozen, the workflow was never adopted in production, and the HPC systems the demonstrator targeted have since been decommissioned. Every io/mpi commit since 2020 has been a mechanical tree-wide cleanup. The package is disabled by default and has no owner in the ROOT team. Deprecating the package also frees up the too-generically named `mpi` CMake option, which gates only TMPIFile, its tutorial, and its roottest test. MPI support in Minuit2 is unaffected: it is controlled by the independent `minuit2_mpi` option, which finds MPI on its own. [1] https://github.com/hep-cce/TMPIFile [2] https://indico.cern.ch/event/773049/contributions/3473315/, proceedings: https://zenodo.org/records/3599673
guitargeek
requested review from
bellenot,
dpiparo,
jblomer and
pcanal
as code owners
July 17, 2026 15:31
guitargeek
marked this pull request as draft
July 17, 2026 15:38
Test Results 23 files 23 suites 3d 17h 37m 42s ⏱️ Results for commit 68a8cc4. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TMPIFile and its
mpibuild option are deprecated and scheduled for removal in the next release cycle.TMPIFile originated in the US DOE HEP-CCE program as a demonstrator for in-flight merging of ROOT output from MPI ranks in ATLAS event processing on DOE supercomputers (Theta at ALCF, Cori at NERSC): worker ranks send TMemFile buffers over MPI to collector ranks that merge them into a single output file (taken from this repo [1]). It was developed at ANL/LBNL from 2018 on, upstreamed in PR #4375 (December 2019), and presented at CHEP 2019 [2].
Development stopped weeks after the merge: the last functional commit to
io/mpidates from January 2020, the original hep-cce/TMPIFile repository is frozen, the workflow was never adopted in production, and the HPC systems the demonstrator targeted have since been decommissioned. Every io/mpi commit since 2020 has been a mechanical tree-wide cleanup. The package is disabled by default and has no owner in the ROOT team.Deprecating the package also frees up the too-generically named
mpiCMake option, which gates only TMPIFile, its tutorial, and its roottest test. MPI support in Minuit2 is unaffected: it is controlled by the independentminuit2_mpioption, which finds MPI on its own.[1] https://github.com/hep-cce/TMPIFile
[2] https://indico.cern.ch/event/773049/contributions/3473315/,
proceedings: https://zenodo.org/records/3599673