Getting Started with code_saturne for ISC25 SCC (In Person)

Getting Started with code_saturne for ISC25 SCC (In Person)

 

 

Overview

To get started with code_saturne, see here:

Getting Started with code_saturne for ISC25 SCC

Building code_saturne on ARM CPUs

  • Using the ARM compiler

The script InstallHPC.sh should work without any modification.

  • Using NVHPC

Some parts of the script InstallHPC.sh and the installation itself should be changed. This is an example that uses nvhpc on Nvidia Grace CPU.

Download and install nvhpc for ARM from https://developer.nvidia.com/hpc-sdk-downloads.

  1. Modify InstallHPC.sh for nvhpc

... mkdir -p $CODEBUILD cd $CODEBUILD module use <path to nvhpc-25.3>/modulefiles module load nvhpc-hpcx/25.3 mpicc --version $CODESRC/configure \ --enable-openmp \ --disable-debug \ --disable-shared \ --disable-gui \ --prefix=$CODEOPT \ CC="mpicc" FC="mpif90" CXX="mpicxx" CFLAGS="-O2" FCFLAGS="-O2" CXXFLAGS="-O2 -std=c++17" cd $CODEBUILD make clean make -j 16 2>&1 |tee $INSTALLPATH/build-$$.txt make install cd $INSTALLATION $CODEOPT/bin/code_saturne
  1. Modify code_saturne-8.3.1/src/base/Makefile.in to use CXX instead of CC for cs_base.

diff Makefile.in.orig Makefile.in 2196c2196 < @HAVE_CUDA_CPP_FALSE@ $(CC) -c $(DEFS) $(DEFAULT_INCLUDES) $(cs_base_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CXXFLAGS) $(cs_base) --- > @HAVE_CUDA_CPP_FALSE@ $(CXX) -c $(DEFS) $(DEFAULT_INCLUDES) $(cs_base_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CXXFLAGS) $(cs_base)
  1. Execute “InstallHPC.sh” to build the binary.

Tips to check on a running simulation

  • In the working directory 2025XXXX-XXXX, the file run_status.running gives the status of the simulation, including the time step currently computed. Typing “more” or “less” of this file will give the required information.

  • It is also possible to dynamically control the simulation and its duration, by creating a new file called control_file. This file, when created, is read by code_saturne.

    • If control_file is empty (created using “touch”, for instance), the information held in the memory will be written in files. This applies to the file called timer_stats.csv. Doing so would inform how expensive are the time steps that have already been run (first column of this file).

    • If control_file contains an integer in the first line, corresponding to the new number of time steps to be run, the simulation will then run for this new number of time steps, instead of the original one. In the current case, changing 12500 (see material) to a smaller or larger number will change the total number of time steps. It is only advised to do this, for testing.

Tasks and Submissions

Input (TUBE_BUNDLE_LES) for the task will be given on the competition day.

MD5 checksum: b7a14c21ea9ba855bd133da3f935e79f mesh_input_7M.csm 29373893cd4654a03fc8fa324cdec467 auxiliary.csc 93829e8d23b812c0b5ac4fbd8ced53a1 main.csc

Prepare the simulation by following

 

  1. Run the application on your cluster and submit the results (run_solver.log, timer_stats.csv and performance.log files). In the run_solver.log file, make sure that the 10009th time step is available, as it should be.