4/10/2023 0 Comments Xbench stoolsSets the number of gridpoints per nuclide. This creates an extremely large energy grid data structure (XL: 120GB, XXL: 252GB), which is unlikely to fit on a single node, but is useful for experimentation purposes on novel architectures. They are similar to the H-M "large" option, except the number of gridpoints per nuclide has been increased greatly. The additional size options, "XL" and "XXL", do not directly correspond to any particular physical model. Note that the program defaults to "Large" if no specification is made. This significantly slows down the runtime of the program as the data structures are much larger, and more lookups are required whenever a lookup occurs in a fuel material. The small version has 34 fuel nuclides, whereas the large version has 321 fuel nuclides. The H-M size corresponds to the number of nuclides present in the fuel region. By default, the 'large' option is selected. There are four options: 'small', 'large', 'XL', and 'XXL'. Sets the size of the Hoogenboom-Martin reactor model. See the Transport Simulation Styles section for more information. They key difference between the two methods is the dependence/independence of the macroscopic cross section loop. The event based method expresses its parallelism over a large pool of independent macroscopic cross section lookups that can be executed in any order without dependence. In the history based method, the central mode of parallelism is expressed over particles, which each require some number of macroscopic cross sections to be executed in series and in a dependent order. These two methods represent different methods of parallelizing the Monte Carlo transport method. These options represent the history based or event based algorithms respectively. Sets the simulation method, either "history" or "event". This argument is only used by the OpenMP threading version of XSBench. If running in MPI mode, this will be the number of threads per MPI rank. If the architecture supports hyperthreading, multiple threads will be run per core. By default, XSBench will run with 1 thread per hardware core. Sets the number of OpenMP threads to run. # of hash bins (only used with hash-based grid search) If using event-based method, this is total lookups. If using history based method, this is lookups per particle history. # of particle histories (if running using "history" method) # of gridpoints per nuclide (overrides -s defaults) To compile XSBench with default settings, navigate to your selected source directory and use the following command:įor non-default settings, XSBench supports the following command line options: Argument This version is derived from CUDA using an automatic conversion tool with only a few small manual changes. This version of XSBench is written in HIP for use with GPU architectures. You will also likely need to edit the makefile to supply the path to your SYCL compiler. It was written with GPUs in mind, so if running on other architectures you may need to heavily re-optimize the code. This version of XSBench is written in SYCL, and can be used for CPU, GPU, FPGA, or other architectures that support OpenCL and SYCL. You will also likely need to edit the makefile to supply the path to your OpenCL compiler. This version of XSBench is written in OpenCL, and can be used for CPU, GPU, FPGA, or other architectures that support OpenCL. NOTE: You will likely want to specify in the makefile the SM version for the card you are running on. This version of XSBench is written in CUDA for use with NVIDIA GPU architectures. NOTE: The Makefile will likely not work by default and will need to be adjusted to utilize your OpenMP accelerator compiler. This method of parallelism could be used for a wide variety of architectures (besides CPUs) that support OpenMP 4.5 targeting. This method of parallelism uses OpenMP 4.5 (or newer) to map program data to a remote accelerator memory space and run targeted kernels on the accelerator. The method of parallelism is via the OpenMP threading model. This is the "default" version of XSBench that is appropriate for serial and multicore CPU architectures. The available implementations can be found in their own directories: XSBench has been implemented in multiple different languages to target a variety of computational architectures and accelerators.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |