The Pn form of the Neutron Transport Problem Achieves Linear Scalability Through Domain Decomposition


Kenneth Assogba, Lahbib Bourhrara
Accepted

Distributed matrix-vector product

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.