Quicksilver is a open source proxy app that represents the key elements of the Mercury workload by solving a simpliﬁed dynamic Monte Carlo particle transport problem. Quicksilver attempts to replicate the memory access patterns, communication patterns, and the branching or divergence of Mercury for problems using multigroup cross sections. OpenMP and MPI are used for parallelization. A GPU version is available.
If you are interested in continuous energy cross sections you might want to look at XSBench or RSBench.
Figure 1: Monte Carlo transport simulations sample the probabilities of the various interactions that a particle can have with its surroundings. To keep the code simple, Quicksilver considers only three possible reactions: absorption, scattering, and fission.
- 3-dimensional, hexahedral problem domain with reﬂective and vacuum boundary conditions.
- Discretization of the problem domain with a 3D mesh.
- Mesh elements will be generalized hexahedral elements with 8 corner nodes and 6 face nodes.
- As shown in Figure 2 (below), each mesh element will have 24 triangular faces and will be treated by the tracking algorithm as a polyhedron.
- Multiple material regions speciﬁed as collections of spheres or bricks.
- Each material’s ability to have a different number of isotopes and reactions.
- All isotopes will be equivalent.
- Only three types of reactions are allowed: absorption, elastic scattering, and ﬁssion (approximate).
- If more than three reactions are speciﬁed, these three reactions will be copied as many times as necessary.
- Multigroup cross sections.
- Simpliﬁed particle sources. Uniform distribution within the source region, with isotropic direction and uniform energy sampling.
- Multigroup scalar ﬂux tally per mesh element.
- Multi-node capabilities via domain decomposition.
- Data structures and algorithms tailored to represent Mercury program ﬂow and data access patterns.
- All physics data is artificial and generated internally by Quicksilver.
These capabilities will allow the user to specify a variety of possible use cases that will provide the ﬂexibility needed to study scalability and probe sensitivity to hardware architecture.
A Quicksilver mesh element. Although the 14 nodes can be thought of as occupying the four corners and face centers of a hexahedra, there is no requirement for any set of four node to be coplanar. Hence, the element forms a polyhedron with 24 triangulated faces.
What’s Not Included
There will be no support in Quicksilver for the following Mercury features:
- Combinatorial geometry
- Complex load balancing