EduHPX shows what happens inside an HPX program and in the MPI messages below it, on one timeline: when HPX prepares a parcel, when MPI sends and receives it, when HPX picks it up and runs the action. Collectives (broadcast ...) are grouped, drawn as a tree and analysed along their critical path.
One broadcast of 16 localities on 4 nodes: green = MPI send, red = MPI receive, blue frame = time in MPI, the rest is HPX.
New in 0.0.3, the tree in 3D: a flat broadcast of 64 localities on 8 nodes. Every node of the cluster is a glass cube with its localities inside (the first node bottom left), green lines are sends, red lines are receives (each can be switched off). L#0 on compute-00 sent to all others, so it is green and all others are red. Other views colour the localities by who sent or received the most, or by when the data arrived. Click a cube to look at it; the critical path is shown in gold.
EduHPX is the little brother of EduMPI Suite: EduMPI (an Open MPI that records MPI communication), EduStore (its database, a folder in the EduMPI repo) and the EduMPI GUI.
In HPX you do not write sends and receives: HPX packs a remote call into a parcel and sends it for you, over TCP, LCI or MPI. That is convenient, but when a program gets slow, it is hard to say whether the time is lost in HPX (waiting, scheduling, preparing the parcel) or in the transport below it (the MPI send, the receive).
HPX's Tracy integration (Google Summer of Code 2026) shows tasks, threads and the parcels of each locality, but not the MPI messages below them. EduMPI shows the MPI messages, but knows nothing about parcels. EduHPX puts both on one timeline: for every parcel you see what HPX did and what MPI did.
Ready-made viewer (version 0.0.3), built by the workflows on the branch deploy:
| System | File |
|---|---|
| Linux | EduHPX_0.0.3-x86_64.AppImage: make it executable (chmod +x), then start it |
| macOS | EduHPX_0.0.3.dmg: the app is not signed, see the note below |
| Windows | EduHPX_0.0.3-windows.zip: unpack, start eduhpx.exe |
| Example run files | EduHPX_0.0.3_examples.zip, also built into the app: File > Examples |
| Measuring MPI (source) | eduhpx_mpi_data-5.0.11rc1-eduhpx1.tar.gz and its .sha256: Open MPI 5.0.11rc1 with the EduMPI hooks, to trace your own program. scripts/install-mpi.sh downloads and builds it for you |
All releases: https://github.com/FuldaHPC/tool-eduhpx/releases. What changed: release notes of 0.0.3. The three viewer downloads also contain the examples.
macOS: the first start. The app is not signed with an Apple certificate, so macOS blocks it once (it is not damaged):
- macOS 14 and older: right click on
EduHPX.app> Open > Open. - macOS 15 and newer: double click the app once (it is blocked), then System Settings > Privacy & Security, scroll down to the message about EduHPX and click Open Anyway.
- Or in the Terminal:
xattr -dr com.apple.quarantine /Applications/EduHPX.app.
Copy EduHPX.app from the dmg to Applications first. This is needed only once.
| Folder | What it is |
|---|---|
gui/ |
The viewer (Qt 6). Opens a run file and shows the timeline. Runs on macOS, Linux and Windows. Details and a tour of the window |
scripts/ |
install-mpi.sh (measuring MPI), install-hpx.sh (patched HPX), eduhpx-run (run a program, get run.csv) and eduhpx-merge. Tested on a Linux cluster with Slurm. What works and what is missing |
examples/ |
Ready-made run files to try the viewer |
sample-app/ |
A small HPX program (one collective, flat or hierarchical) to try the whole chain; the examples were made with it |
docs/ |
Trace an HPX program: install, run, look at the result, format of the run file and of the raw MPI log, HPX install notes, the measuring MPI as a tarball |
- Try it: download the viewer (see above) and start it: the start screen lists the built-in examples, every HPX collective
flat and as a tree on 16 to 64 localities. Or open a file from
examples/. - Measure your own program (Linux, tested on a cluster with Slurm and Open MPI; the complete description with all options,
a Slurm script and troubleshooting is the tracing guide):
- Measuring MPI, from the tarball of the release:
scripts/install-mpi.sh --prefix ~/eduhpx_mpi(how it is built and updated). - Patched HPX:
scripts/install-hpx.sh --mpi-prefix ~/eduhpx_mpi --prefix ~/eduhpx_hpx(details). - Build your program against that HPX (the sample in
sample-app/shows how). - Run:
scripts/eduhpx-run --mpi ~/eduhpx_mpi --hpx ~/eduhpx_hpx --out my_run -- mpirun -np 16 ./app ..., then openmy_run/run.csvwith EduHPX (details).
- Measuring MPI, from the tarball of the release:
Status (2026-11-08): the viewer is released (0.0.3). The whole chain from a program to run.csv was tested on one
cluster (4 nodes, 16 localities, all HPX collectives, flat and hierarchical); macOS as a measuring system and runs without Slurm
are not tested yet.
| Hierarchical broadcast | Tree of the broadcast |
|---|---|
![]() |
![]() |
| 3D tree: who sent the most (64 localities on 8 nodes) | 3D tree: look at one locality |
![]() |
![]() |
BSD-3-Clause, see LICENSE and THIRD_PARTY_NOTICES.md. EduHPX is part of the Edu* tools for visualising parallel programs, like EduMPI.






