Skip to content

[io] Deprecate TMPIFile and the mpi build option#22846

Draft
guitargeek wants to merge 1 commit into
root-project:masterfrom
guitargeek:tmpifile
Draft

[io] Deprecate TMPIFile and the mpi build option#22846
guitargeek wants to merge 1 commit into
root-project:masterfrom
guitargeek:tmpifile

Conversation

@guitargeek

Copy link
Copy Markdown
Contributor

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 #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

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 guitargeek self-assigned this Jul 17, 2026
@guitargeek
guitargeek marked this pull request as draft July 17, 2026 15:38
@github-actions

Copy link
Copy Markdown

Test Results

    23 files      23 suites   3d 17h 37m 42s ⏱️
 3 874 tests  3 874 ✅ 0 💤 0 ❌
78 808 runs  78 808 ✅ 0 💤 0 ❌

Results for commit 68a8cc4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant