The Pn form of the Neutron Transport Problem Achieves Linear Scalability Through Domain Decomposition
Kenneth Assogba, Lahbib Bourhrara
Accepted
Due to strong coupling between the angular moments, the spherical harmonics (Pn) formulation of the neutron transport equation has been neglected in favor of the discrete ordinates (Sn) form.
In this work, we target large-scale neutron transport simulation using a combined discontinuous Galerkin (DG) - spherical harmonics approximation. We leverage the benefits of DG discretization to wrap the previous developed solver, called NYMO, in a canonical ghost-mesh based domain decomposition framework. The developed solver handles unstructured, curved and non-conforming meshes with vacuum and reflection as boundary conditions.
Robustness, strong and weak scalability experiments have been conducted on the CEA's pre-exascale system Topaze. We reach and maintain a strong scaling efficiency of 100% up to 4096 cores and 80% up to 8192 cores. In particular, a calculation with 913 million degrees of freedom is performed in 101 seconds. Thus outperforming previously published results for Pn transport as well as many Sn and SPn solvers.
Subdomains coupling
The general Matrix-Vector product from the point of view of a subdomain
for(const auto& subdomain : domain_neighbors)
{
mpi::request_in[i] = mpi::world.irecv(x_upwind); // async
// Copy outgoing part of x in the x_out buffer
mpi::request_out[i] = mpi::world.isend(x_out); // async
i++;
}
y += A_diag * x;
mpi::world.waitall(request_in);
mpi::world.waitall(request_out);
y += A_offd * x_upwind;
Weak scaling experiment
Partitioning | Simple | Geometric | ||||||
---|---|---|---|---|---|---|---|---|
$n_d$ | #core | #dof | time (s) | efficiency (%) | time (s) | efficiency (%) | ||
16 | 1024 | 228M | 145 | - | 142 | - | ||
32 | 2048 | 456M | 154 | 94 | 157 | 90 | ||
64 | 4096 | 913M | 146 | 99 | 147 | 96 |
Strong scaling experiment
Strong scaling experiment on up to 128 domains using a total of 8192 CPU-cores. 0 means shared memory only calculation.
Partitioning | Simple | Geometric | |||||||
---|---|---|---|---|---|---|---|---|---|
$n_d$ | #core | time(s) | speedup | efficiency(%) | time(s) | speedup | efficiency(%) | ||
0 | 64 | 10597 | - | - | 10597 | - | - | ||
4 | 256 | 2557 | 4.1 | 104 | 2658 | 4 | 100 | ||
8 | 512 | 1242 | 8.5 | 107 | 1245 | 8.5 | 106 | ||
16 | 1024 | 667 | 15.9 | 99 | 628 | 16.9 | 106 | ||
32 | 2048 | 302 | 35.1 | 110 | 305 | 34.7 | 109 | ||
64 | 4096 | 146 | 72.6 | 113 | 147 | 72.1 | 113 | ||
128 | 8192 | 101 | 104.9 | 82 | 108 | 98.1 | 77 |
Thanks for reading! Go home for more.