A graphics processing unit (GPU) has become a core technology for modern supercomputers. Applications that once ran on supercomputers are being forced to make significant changes to their designs to utilize these new machines. This paper introduces the concept of Thin-Threads as a method for history-based Monte Carlo transport applications on GPUs. The key principles behind Thin-Threads are light memory usage and communication and managing data race issues via atomics. We show that we can achieve a 10x speedup when moving from the traditional method to Thin-Threads on GPUs. Additionally, we demonstrate the viability of the Thin-Threads model at scale for GPU and CPU platforms.
Like many other code teams, the developers of the Mercury Monte Carlo Transport code at Lawrence Livermore National Laboratory are being forced by the arrival of GPU-based supercomputers to substantially refactor their application to obtain acceptable performance on new architectures. This paper describes how we have designed, developed, and used Quicksilver, a proxy application for Mercury, to assist in this process. We explain the goals and principles that informed Quicksilver's design and describe the features of Mercury that are and are not represented by the proxy. We recount some experiences testing Quicksilver and changes made to improve its ability to represent Mercury. Finally we explore how we have used Quicksilver and QS lite, a proxy app for Quicksilver, as prototypes to test potential refactorings and provide performance results on GPU and CPU platforms.
We describe the challenges posed to the Mercury Monte Carlo particle transport code development team from emerging and future advanced computing architectures. We review recent work to scale Mercury to large numbers of MPI processes as well as to improve compute node parallelism via OpenMP threading and demonstrate these capabilities using a reactor eigenvalue calculation. We then describe initial progress for enabling Mercury for the Intel Xeon Phi-based MIC architecture. We present preliminary results of research investigations into the use of event-based algorithms in a Monte Carlo test code for application to GPU architectures. We then briefly describe work to enable storage of nuclear data in shared memory and to enable the use of the Generalized Nuclear Data format in Mercury via the General Interaction Data Interface.
MERCURY is a modem, parallel, general-purpose Monte Carlo code being developed at the Lawrence Livermore National Laboratory. Recently, a radiographic capability has been added. MERCURY can create a source of diagnostic, virtual particles that are aimed at pixels in an image tally. This new feature is compared to the radiography code HADES for verification and timing. Comparisons for accuracy were made using the French Test Object and for timing were made by tracking through an unstructured mesh. In addition, self-consistency tests were run in MERCURY for the British Test Object and scattering test problem. MERCURY and HADES were found to agree to the precision of the input data. HADES appears to run around eight times faster than MERCURY in the timing study. Profiling the MERCURY code has turned up several differences in the algorithms that account for this. These differences will be addressed in a future release of MERCURY.
The equations of radiation transport for thermal photons are notoriously difficult to solve in thick media without resorting to asymptotic approximations such as the diffusion limit. One source of this difficulty is that in thick, absorbing media thermal emission is almost completely balanced by strong absorption. In a previous publication [SB03], the photon transport equation was written in terms of the deviation of the specific intensity from the local equilibrium field. We called the new form of the equations the difference formulation. The difference formulation is rigorously equivalent to the original transport equation. It is particularly advantageous in thick media, where the radiation field approaches local equilibrium and the deviations from the Planck distribution are small. The difference formulation for photon transport also clariffes the diffusion limit. In this paper, the transport equation is solved by the Symbolic Implicit Monte Carlo (SIMC) method and a comparison is made between the standard formulation and the difference formulation. The SIMC method is easily adapted to the derivative source terms of the difference formulation, and a remarkable reduction in noise is obtained when the difference formulation is applied to problems involving thick media.
In this paper, we extend the difference formulation for radiation transport to the case of a single atomic line. We examine the accuracy, performance and stability of the difference formulation within the framework of the Symbolic Implicit Monte Carlo method. The difference formulation, introduced for thermal radiation by some of the authors, has the unique property that the transport equation is written in terms that become small for thick systems. We find that the difference formulation has a significant advantage over the standard formulation for a thick system. The correct treatment of the line profile, however, requires that the difference formulation in the core of the line be mixed with the standard formulation in the wings, and this may limit the advantage of the method. We bypass this problem by using the gray approximation. We develop three Monte Carlo solution methods based on different degrees of implicitness for the treatment of the source terms, and we find only conditional stability unless the source terms are treated fully implicitly.