test: add opt-in MPICH/Hydra multi-node checkpoint-restart - #489
Draft
alan-lira wants to merge 1 commit into
Draft
test: add opt-in MPICH/Hydra multi-node checkpoint-restart#489alan-lira wants to merge 1 commit into
alan-lira wants to merge 1 commit into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
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.
Refs #485
Summary
This pull request adds an opt-in multi-node MPICH/Hydra checkpoint-and-restart test for MANA.
The goal is to cover a workflow that is difficult to exercise through a normal single-node CI runner: an MPI application distributed across multiple machines, checkpointed while communicating through Hydra, terminated, and then restarted from the generated checkpoint images.
The test is intentionally opt-in. It exits successfully with a clear
SKIPmessage unless the user supplies a hostfile and the required runtime configuration.Why this test is useful
Most local tests exercise MANA on a single machine. In a multi-node MPICH/Hydra execution, additional components become relevant:
The new test automates these steps in one reproducible workflow.
Test workflow
The script performs the following stages:
MPI_Allreducecorrectness and forward progress;Configuration
The test is controlled through environment variables, including:
MANA_HOME;MANA_TEST_HOSTFILE;MANA_TEST_MPICH_HOME;MANA_TEST_RANKS;MANA_TEST_COORD_PORT;MANA_TEST_TIMEOUT;MANA_TEST_WORKDIR;MANA_TEST_REMOTE_USER.When
MANA_TEST_HOSTFILEis absent, the script prints a skip message and returns success. This keeps the test suitable for repositories whose standard CI environment does not provide multiple SSH-accessible nodes.Isolation and safety
The test uses a dedicated work directory and an isolated
HOMEdirectory for the MANA coordinator status file. It does not overwrite the invoking user's normal.mana.rc.Remote SSH commands use
ssh -nso that reading the hostfile cannot be disrupted by SSH consuming standard input.Cleanup is limited to the coordinator, MPI process group, and files created by the test. The script does not use broad process-killing commands or delete paths outside the configured test directory.
Validation performed
I validated the test using:
The complete test returned success.
The validation environment also required the loader debug-symbol compatibility setup and the separately reported
PMI_FDcorrection in the bundled DMTCP socket handling. Those source changes are intentionally not included in this pull request and are discussed separately in the umbrella issue.Scope
This pull request adds only the opt-in integration test and its documentation.
It does not modify MANA's coordinator, restart wrapper, loader symbol lookup, or DMTCP submodule.