No CI job compiles the parapack MPI tutorials, so the MPI exchange workers are untested
Maintainers usually reply within 3 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
Research direction
Read the mpi job in ci.yml and the tutorial build setup in compatibility.yml:79-95 and tutorials/examples/parapack/CMakeLists.txt:28. Add an MPI-enabled tutorial build and run the requested ising_multiple and exchange cases at the stated rank counts, using regenerated inputs. The issue also asks for a one-line registration fix in tutorials/examples/parapack/exchange/loop.C:23; done means the CI covers these MPI tutorial instantiations and the named runs pass.
Written by the indexing model from the issue text.
Description
Summary
alps::parapack::parallel_exchange_worker (exchange.h), multiple_parallel_exchange_worker
(exchange_multi.h) and the ring-exchange example multiple/ising.h are template code whose
only instantiations are in tutorials/examples/parapack/{exchange,multiple}. The loop
application registers only single_exchange_worker (src/apps/qmc/looper/path_integral.C:374).
Every CI job that builds the tutorials does so with -DALPS_ENABLE_MPI=OFF
(ci.yml:217,335,402,464; compatibility.yml:34,69,129,202, including the job that installs
and builds the tutorials component at compatibility.yml:79-95), and
tutorials/examples/parapack/CMakeLists.txt:28 adds multiple only when MPI is on. The mpi
CI job builds a fixed list of test targets and never the tutorials.
So #282 (std::filesystem) and #284 (plain MPI) changed these headers and the tutorial without
any build compiling the result. They do compile and run when built by hand against an MPI
SDK (checked at 1-8 ranks on 2026-11-04), but the next change will not be caught either.
What the gap already hid
Building and running the examples with MPI surfaced three pre-existing problems:
tutorials/examples/parapack/exchange/loop.C:22-23registers the parallel worker under
"loop exchange"; the inputexchange.ipand the serial registration use"loop; exchange".
mpirun -np N exchange --mpi < exchange.ipdies with exit 255 on the loop block
(Error: unknown algorithm: "loop; exchange"). The message is only visible on stderr
becausealps::mpi::environmentis created inside thetryinrun_sequential_mpi
(parapack.C:730) andstart_mpi(parapack.C:823): its destructor callsMPI_Abort
during unwinding before thecatchprintswhat(), the same layout #289 reports for the
DMFT drivers.exchange_multi.h::calc_nrepdivides bycomm_.size()instead ofhead_.size()
(separate issue).multiple/ising.h:98has an operator-precedence bug in the heat-bath energy difference
(separate issue).
Proposal
In the mpi CI job (ci.yml "Build MPI integration and representative serial tests"),
after installing the SDK, cmake --install --component tutorials and build
tutorials/examples against it with ALPS_DIR pointing at the MPI install, as the
compatibility job already does for the non-MPI case. Run at least:
ising_multiple --mpiat 2 and 4 ranks against regeneratedising.op-2/ising.op-4;exchange --mpiat 4 ranks withexchange.ip(after fixing the"loop exchange"name) and
with aPROCESS_PER_WORKER = 2input for the multiple worker.
Also fix the one-line typo in loop.C:23 now; it is independent of the CI work.
- Dominant language
- C++
- Stars
- 32
- Forks
- 10
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 51
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ALPSim/ALPS
-
area:tutorials bug scientific-correctness
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
area:parapack bug scientific-correctness
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
area:lattice bug
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 3 days
-
area:parapack compatibility-change enhancement
Difficulty 3/5 1-2 days Newbie friendliness 57/100
Maintainers usually reply within 3 days
-
alps::hdf5::archive aborts the process when one thread reads a file another thread opens for writingOpenbug
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Maintainers usually reply within 3 days
Similar issues
-
Difficulty 1/5 1-3 hours Newbie friendliness 68/100
eic/TimeframeBuilder#102 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 65/100
-
error not reported I/O low priority rt_lib
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
Maintainers usually reply within 1 day
-
[XLA] hlo/pass/README.md says passes implement Run; since the NVI change they implement RunImplOpen
Difficulty 1/5 Under an hour Newbie friendliness 91/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
objectionary/game-of-life#78 ·