Very Easy XS (VEXS)

Very Easy XS (VEXS)

Students

Forrest Shriver

Summary

For continuous-energy Monte Carlo neutron transport simulations, the cross-section lookup procedure can be a very computationally expensive part of the simulation, especially for scenarios with highly depleted fuel. Various algorithms have been developed to accelerate the process of cross-section lookup, however these algorithms have traditionally been developed specifically for CPU-based platforms. To our knowledge, there is no platform that openly simulates these algorithms on next-generation computational platforms, such as GPUs (used in the Titan and Summit systems at Oak Ridge National Laboratory) and Field Programmable Gate Arrays (FPGAs). The nature of these platforms is sufficiently different that we do not feel that algorithms developed thus far will retain their same performance characteristics relative to one another, especially as companies such as NVIDIA make leaps and bounds each year in their engineering accomplishments, which in turn translates into sometimes vastly different behavior between generations of GPUs. To that extent, we have considerably adapted and extended the open-source code XSBench into a new codebase, VEXS, for such a purpose.

One current branch of work is to enable the VEXS application to model currently used algorithms on GPUs and verify that the results at least roughly match those produced by SHIFT, a next-generation neutron transport code developed by Oak Ridge National Laboratory (ORNL) and specifically built for GPUs. Our studies in this area include the effect of different in-memory data layouts and accurate representation of nuclide grid size on algorithm performance. The overall objective will be to create a tool capable of accurately mimicking the computational patterns exhibited by production codes such as SHIFT, such that new algorithms and methods can be proposed by specialists outside of the nuclear industry.

Another branch of work is an ongoing collaboration with ORNL to integrate VEXS with the OpenARC compiler, a research compiler specifically created to allow source-to-source translation and parallelization across architectures. OpenARC is capable of translating OpenACC-instrumented C code into device code that can be run on Nvidia GPUs, AMD GPUs, Intel FPGAs and even Many Integrated Core (MIC) architectures. Our studies in this area include the performance of code generated by the OpenARC compiler on Nvidia architectures as compared to custom CUDA implementations already present in VEXS, and the performance of different algorithms for cross section lookup relative to each other. The overall objective will be to integrate OpenARC and VEXS such that the lookup routine vital for neutron transport codes can be studied for any potential benefit when implemented on newer architectures, and to investigate whether platform-specific optimizations and differences provide benefits to one algorithm search method as compared to others.

Software Download:

VEXS has been released to the public on github https://github.com/fshriver/VEXS/

Publications:

  1. Forrest Shriver, Seyong Lee, Steven Hamilton, Justin Watson, Jeffery Vetter, “VEXS, An Open Platform for the Study of Continuous-Energy Cross-Section Lookup Algorithms on GPUs,” M&C 2019, August 25-29, Portland, Or.
  2. Forrest Shriver, Seyong Lee, Steven Hamilton, jeffery Vetter, Justin Watson, “VEXS, An Open Platform for the Study of Continuous-Energy Neutron Transport Cross-Section Lookup Algorithms on Accelerators,” Poster, 2018 ANS Winter Meeting