QuOp_MPI Backend & Software Architecture
This section documents the backend architecture and implementation-level
details for QuOp_MPI. The pages below are aligned with the Fortran sources in
native/comm_info and native/wavefront.
Implementation details are aligned with the current Fortran sources in:
native/comm_info/comm_info_module.f90native/mpi/mpi_context.f90native/wavefront/context/wavefront_context.f90native/wavefront/context/gpu_transfer.f90
Backend Overview
QuOp_MPI supports two execution backends:
Backend |
Summary |
Primary hardware |
|---|---|---|
|
Host-only state representation with MPI collectives over |
CPU clusters |
|
Device-resident state representation with hierarchical communicators and host/device transfer collectives. |
HIP-capable GPU clusters |
Both backends use the same negotiated layout object (quop_mpi_layout_t),
created in comm_info_module.
Backend Comparison
Aspect |
MPI backend |
Wavefront backend |
|---|---|---|
Primary state location |
Host memory |
Device memory (host staging for transfers/reductions) |
Runtime communicators |
|
|
Expectation/norm reduction |
Host local compute + |
GPU kernel + host partial sum + |
State I/O path |
Host buffers only |
|
Device ownership logic |
Not applicable |
|
Runtime Environment Variables
Variable |
Effect |
|---|---|
|
Select Python backend path ( |
|
Controls topology assignment density for wavefront GPU ranks. |
|
In GPU-aware builds, force staged host->device transfers. |
|
Enable runtime profiling output when set to |
Build-time controls are documented in QuOp_MPI Build System.