jubench-nekrs

JUPITER Benchmark Suite: nekRS Benchmark

https://github.com/fzj-jsc/jubench-nekrs

Science Score: 62.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization fzj-jsc has institutional domain (www.fz-juelich.de)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.4%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

JUPITER Benchmark Suite: nekRS Benchmark

Basic Info
  • Host: GitHub
  • Owner: FZJ-JSC
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 24.4 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 2
Created almost 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

JUPITER Benchmark Suite: nekRS

DOI Static Badge

This benchmark is part of the JUPITER Benchmark Suite. See the repository of the suite for some general remarks.

This repository contains the nekRS benchmark. DESCRIPTION.md contains details for compilation, execution, and evaluation.

NekRS is an open-source GPU-accelerated Navier Stokes solver based on the spectral element method.
The provided case is a mesoscale convection case. It is based on the RBC (Rayleigh-Bénard convection) example of nekRS and calculates the turbulence induced by a temperature gradient. Depending on the grid resolution, this allows simulations of high Rayleigh numbers while using low Prandtl numbers. To keep the case similar for all cases, and the low resolution for the 1 node cases, the Rayleigh number will be 100000 and the Prandtl number 0.7. The simulation domain is a "sheet", therefore much greater extent in X and Y direction than Z direction. These scaling tests run just a short time, therefore still in the initialization of the fluid motion, doing 600 time steps.

The source code of nekRS is included in the ./src/ subdirectory as a submodule from the upstream nekRS repository at github.com/Nek5000/nekRS.

Quickstart

Execution

Overview over the provided cases, the baseline case is the default option.

| Name | JUBE flag | Node counts | GPU Memory Utilization on A100 | |------------------|---------------|-------------------------|----------------------------| | baseline | - | 8 | 100% | | scaling | scaling | 1, 2, 4, 6, 8 | 100% (on one node) | | largescaling | largescaling | 64, 128, 256, 384 | 100% (on 64 nodes) | | highlarge | highlarge | 642 | 100% | | highmedium | highmedium | 642 | 75% | | highsmall | highsmall | 642 | 50% |

Running

The JUBE step execute will submit the job to the batch system, by using the batch submission script template (via platform.xml) with information specified in the top of the script relating to the number of nodes and tasks per node. Via dependencies, the JUBE step execute calls the JUBE steps that compile nekRS and genbox automatically.

To submit a self-contained benchmark run to the batch system, call jube run benchmark/jube/default.yaml. JUBE will generate the necessary configuration and files, and submit the benchmark to the batch engine.

The following parameters of the JUBE script might need to be adapted: - taskspernode and gres: Should be equal to the number of GPUs - threadspertask: Divide your threads equally onto all tasks - queue and account: SLURM queue and account to use - modules: To be sourced before building and running

Additional JUBE flags can be used to differentiate between the runs: jube run benchmark/jube/default.yaml --tag=scaling

Results

Once all runs are completed, the results can be generated with jube result -a src --style csv. JUBE will also write the generated table into src/000000/result/result.dat into csv format.

Owner

  • Name: Jülich Supercomputing Centre
  • Login: FZJ-JSC
  • Kind: organization
  • Location: Germany

Jülich Supercomputing Centre provides HPC resources and expertise. Part of Forschungszentrum Jülich.

Citation (CITATION.cff)

cff-version: 1.2.0
title: "JUPITER Benchmark Suite: nekRS"
message: >-
  In addition to citing this benchmark repository, please also cite either the JUPITER Benchmark Suite or the accompanying SC24 paper
authors:
  - given-names: Christian
    family-names: Witzler
    affiliation: Forschungszentrum Jülich, Jülich Supercomputing Centre
    orcid: 'https://orcid.org/0000-0002-6423-8590'
  - given-names: Jonathan
    family-names: Windgassen
    affiliation: Forschungszentrum Jülich, Jülich Supercomputing Centre
    orcid: 'https://orcid.org/0009-0007-1172-2366'
  - given-names: Mathis
    family-names: Bode
    affiliation: Forschungszentrum Jülich, Jülich Supercomputing Centre
    orcid: 'https://orcid.org/0000-0001-9922-9742'
  - given-names: Andreas
    family-names: Herten
    affiliation: Forschungszentrum Jülich, Jülich Supercomputing Centre
    orcid: 'https://orcid.org/0000-0002-7150-2505'
  - given-names: Sebastian
    family-names: Achilles
    affiliation: Forschungszentrum Jülich, Jülich Supercomputing Centre
    orcid: 'https://orcid.org/0000-0002-1943-6803'
abstract: "The nekRS benchmark of the JUPITER Benchmark Suite"
identifiers:
  - type: doi
    value: 10.5281/zenodo.12788254
    description: Version-agnostic Zenodo Identifier
repository-code: 'https://github.com/FZJ-JSC/jubench-nekrs/'
license: MIT
date-released: '2024-07-13'
references:
  - title: "JUPITER Benchmark Suite"
    type: software
    doi: 10.5281/zenodo.12737073

GitHub Events

Total
Last Year