nekRS is a fast and scalable computational fluid dynamics (CFD) software package targeting massively parallel computers. It is based on the high-order spectral element method and is capable of solving incompressible and low Mach-number fluid flow problems. nekRS uses the OCCA portability layer for offloading compute kernels to GPU devices.
For details about the code and its usage, see the nekRS home page. This page provides information specific to running on Polaris at the ALCF.
ALCF provides assistance with build instructions, compiling executables, submitting jobs, and providing prebuilt binaries (upon request). For questions, contact us at support@alcf.anl.gov.
nekRS is an open-source code and can be downloaded from the website. Alternatively, the user can clone from the nekRS GitHub repository. We recommend using the next branch since it is the most updated branch with some of the latest features, including the in-situ visualization capability.
The rest of this documentation is based on building and running using the next branch. Users who are interested in running the default master branch can contact support@alcf.anl.gov for additional support.
nekRS uses CMake to build and install the software package. After nekRS has been downloaded or cloned on an ALCF filesystem, users should see a directory with the name nekRS. Inside this directory, the user will find a file named nrsconfig that can be used to configure and customize the CMake build options. The user should remove previous build and installation directories whenever there is an update.
During the installation process, you will be prompted to verify the configuration options. If everything was done correctly, you should see the correct compilers and the Default backend : CUDA in the Summary section of the output. If you see this, press Enter to continue with the build and installation process.
After installation, execute the following commands to set up the environment.
The following modules are to be loaded for this particular build. The initial module restore is just setting the default environment as the starting point.
An example submission script for running a 2-node nekRS job is shown below as an example. Additional information on nekRS input files and application setup options is described here. The correct options to execute the script are as follows:
NEKRS_HOME= PROJ_ID= QUEUE= ./run.sh
Users can copy the script below into a file run.sh and execute it using the command above.
nekRS uses the OCCA library to translate, compile, and run GPU-targeted functions and kernels. Some useful notes on the cached object files can be found here.