Repository navigation
Move mpi-proxy-split to src, test, examples and bench - #560
Merged
Merged
Conversation
|
Important Review skippedToo many files! This PR contains 128 files, which is 28 over the limit of 100. To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch. Upgrade to a paid plan to raise the limit. This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.
|
mpi-proxy-split/ holds MANA's sources, its tests and its example. Its name comes from DMTCP's contrib/mpi-proxy-split. Move its parts to top-level directories: mpi-proxy-split/ -> src/ (with lower-half/ and mpi-wrappers/) mpi-proxy-split/test/ -> test/ mpi-proxy-split/examples/ -> examples/ The paths in the Makefiles, configure, CI, the style hook, the test scripts, the README and the man page follow. The top-level Makefile now runs 'make tests' and 'make check' in test/ and examples/ itself. The rules of mpi-proxy-split/.gitignore move to the top-level .gitignore. After pulling this change, run ./configure again: it makes the Makefiles in the new directories.
test/ holds two benchmarks of MANA's overhead, virtid_bench and synthetic_app, next to the end-to-end tests. test/Makefile.in builds them with other flags (-O2), and 'make check' does not run them. Move them and synthetic_app's README to bench/, with a Makefile.in that has the rule from test/Makefile.in. 'make tests' still builds them.
The files hold the drain of the point-to-point messages at a checkpoint.
Name them after it: p2p_drain.{cpp,h}.
p2p_log_replay.{cpp,h} holds the list of pending MPI_Isend and MPI_Irecv
calls, which the P2P drain uses and from which the restart posts the
receives again. It also holds two helpers of mpi_plugin.cpp: the world
rank and size, and the checkpoint directory of each rank.
Move the pending-call list, mpi_message_t and replayMpiP2pOnRestart() to
p2p_drain.{cpp,h}. Move g_world_rank, g_world_size, getLocalRankInfo()
and updateCkptDirByRank() to mpi_plugin.{cpp,h}. The code itself does
not change.
xuyao00
force-pushed
the
pr/cleanup-layout
branch
from
November 5, 2026 21:11
aa10903 to
480c248
Compare
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.
Based on #559: this PR also shows #559's 3 commits until #559 is merged. Review only the last 4 commits.
The last step of the cleanup: the source layout and two renames. No code changes.
mpi-proxy-split/holds MANA's sources, its tests and its example. Its parts move to top-level directories:src/(withlower-half/andmpi-wrappers/),test/andexamples/. The paths in the Makefiles,configure, CI, the style hook, the test scripts, the README and the man page are updated. The top-level Makefile now runsmake testsandmake checkintest/andexamples/. The rules ofmpi-proxy-split/.gitignoremove to the top-level.gitignore.virtid_benchandsynthetic_app, move fromtest/tobench/.bench/Makefile.inhas the rule that built them intest/Makefile.in, andmake testsstill builds them.p2p_drain_send_recv.{cpp,h}is renamedp2p_drain.{cpp,h}.p2p_log_replay.{cpp,h}is folded into other files, with no change to the code. The pending-call list,mpi_message_tandreplayMpiP2pOnRestart()move top2p_drain. The world rank and size,getLocalRankInfo()andupdateCkptDirByRank()move tompi_plugin.After pulling this change, run
./configureagain: it makes the Makefiles in the new directories.Left as they are:
"MPI:p2p_log_replay.cpp-void";p2p_drain.h's header guard,_P2P_SEND_RECV_H;mpi-proxy-splitinCHANGELOG.md: the 1.5.0 notes, and an example in the release checklist that names a file that does not exist.The wiki and readthedocs pages also give
mpi-proxy-split/paths.The pre-commit hook rejects commit 1. The hook runs
git diff-index --checkwithout rename detection, so it reports the trailing whitespace that the moved files already have. With-M, the check passes. No added or modified file in commit 1 is C++, so the hook's style check has nothing to check. Commits 2 to 4 pass the hook.Checks (each commit built from clean, compared with #559's build; the comparison leaves out debug info and the build-ID):
p2p_drain.oandlibmana.sohave__FILE__strings with the new file name. Apart from addresses, their instructions are the same.p2p_drain.o,mpi_plugin.oandlibmana.sochange, because GCC inlines library code (std::string,std::map, DMTCP's allocator) differently in the larger files. The moved MANA functions make the same calls as before.libmana.soexports two more weak symbols: two instances ofstd::string's constructor fromconst char*.test-mana-restart.pyandtest-loader-debug.pypass;make checkpassed 53 of 53../configure --prefix=...andmake install,autotest.py --mana-rooton the prefix passes 3 of 3 with the source tree'sbin/andlib/moved away.make uninstallremoves every MANA file (DMTCP's part fails until Update DMTCP for its make uninstall fix #561 is merged; with Update DMTCP for its make uninstall fix #561, every installed file is removed).make distcleanremoves every Makefile thatconfiguremakes, including the four in the new directories.