Collection of utility scripts to build and run the EXCLAIM coupled atmosphere-ocean setup.
To build the coupled setup follow these steps:
# Start UENV
uenv start --view=default icon/25.2:v3
# Create a base directory
mkdir -p coupled-setup
# Clone this repository in the base directory
cd coupled-setup && git clone [email protected]:C2SM/EXCLAIM_coupled_setup.git
# Copy the build_tools into the base directory
cp EXCLAIM_coupled_setup/build_utils/build_tools.sh .
# Source the build_tools and initialize
source build_tools.sh
cao_init
# Build CPU and GPU
pushd icon-hybrid/build-cpu && cao_build cpu_ocean && popd
pushd icon-hybrid/build-gpu && cao_build gpu_coupled && popdIf you only want to rebuild (e.g. after you made some changes in the code), enter the build directories and run
cao_rebuild.
# Make sure your UENV is active first
uenv status
# Rebuild CPU and GPU executables
cd build-cpu && cao_rebuild && cd ..
cd build-gpu && cao_rebuild && cd ..Note that to have the build utilities (e.g.
cao_init,cao_build,cao_rebuild, ...) available you should source build_tools.sh in all new shells.
To run the coupled setup follow these steps:
# From the base directory navigate to the EXCLAIM_coupled_setup/experiments directory
cd EXCLAIM_coupled_setup/experiments
# Select the case you want to run: 'R02B07-R02B07' (default), 'R02B08-R02B09', 'R02B10-R02B10'
export CASE='R02B07-R02B07'
# Run the experiment for one of the three possible targets: 'hybrid', 'cpu', 'cpu-cpu'
jid=$(sbatch --parsable exp.EXCLAIM_COUPLED.run hybrid)
# Inspect the logfile at the end
less LOG.EXCLAIM_COUPLED.${jid}We provide the following running options:
--profile: Run the Nsight Systems profiler and generate a profile file that can be inspected with nsys-ui.--separate-io: Distribute the IO tasks of both ocean and atmosphere components on nodes that do not have compute tasks.
You can add these options at the end of the sbatch command in any order. All of them are turned off by default if not provided.
jid=$(sbatch --parsable exp.EXCLAIM_COUPLED.run hybrid --profile)