YAC 3.21.0
Yet Another Coupler
Loading...
Searching...
No Matches
Installing yaxt

Yet Another eXchange Tool (yaxt) is a communication library, which is a requirement for building YAC.

Dokumentation: https://dkrz-sw.gitlab-pages.dkrz.de/yaxt/

Download: https://gitlab.dkrz.de/dkrz-sw/yaxt

Requirements

  • MPI

Getting yaxt

Clone public repository of yaxt.

Entire Repository

Get the entire repository and optionally check out a specific release

git clone https://gitlab.dkrz.de/dkrz-sw/yaxt.git
git -C yaxt checkout <release_tag>

Specific Release

Alternatively get only the code for a specific release.

git clone --depth 1 --branch <release_tag> https://gitlab.dkrz.de/dkrz-sw/yaxt.git

Building yaxt

After cloning the repository the folder yaxt contains all source code and other files that belong to the software yaxt.

For building yaxt it is recommended to use a separate directory. The location is arbitrary. To create the build directory inside the folder yaxt execute the following commands:

cd yaxt
mkdir build

In the remainder of this section the folder yaxt will be referred to as <yaxt_repo_dir> and the folder <yaxt_repo_dir>/build will be referred to as <yaxt_build_dir>. The folder <yaxt_inst_dir> specifies the target directory where yaxt should be installed.

Building on HPC System at DKRZ (gcc 11.2.0, OpenMPI 4.1.2)

Information about the HPC-system Levante at DKRZ can be found here.

Load toolchain

module purge
module load \
gcc/11.2.0-gcc-11.2.0 \
openmpi/4.1.2-gcc-11.2.0

Generate configure-script in source directory

cd <yaxt_repo_dir>
./scripts/reconfigure

Configure build directory

cd <yaxt_build_dir>
<yaxt_repo_dir>/configure \
CC=mpicc \
FC=mpif90 \
--prefix=<yaxt_inst_dir>

Build

cd <yaxt_build_dir>
make -j8

Run tests

cd <yaxt_build_dir>
make -j8 check

Install

cd <yaxt_build_dir>
make install

Building on macOS 13.1 (Ventura) Apple M1 (homebrew gcc 12.2.0, OpenMPI 4.1.4, netcdf 4.9.0)

Generate configure-script in source directory

cd <yaxt_repo_dir>
./scripts/reconfigure

Configure build directory

cd <yaxt_build_dir>
<yaxt_repo_dir>/configure \
MPI_LAUNCH="$(which mpirun) --map-by socket:OVERSUBSCRIBE" \
--prefix=<yaxt_inst_dir> \
--disable-shared

Build

cd <yaxt_build_dir>
make -j8

Run tests

cd <yaxt_build_dir>
make -j8 check

Install

cd <yaxt_build_dir>
make install

Building on Ubuntu 24.04 / 25.04 (OpenMPI 4.1.6)

First, install some basic dependencies via the package manager:

apt install build-essential git libtool openmpi-bin libopenmpi-dev

Generate configure-script in source directory

cd <yaxt_repo_dir>
./scripts/reconfigure

Create a build directory and configure it

mkdir <yaxt_build_dir>
cd <yaxt_build_dir>
<yaxt_repo_dir>/configure \
CC=mpicc \
FC=mpif90 \
MPI_LAUNCH="mpirun --oversubscribe" \
--prefix=<yaxt_inst_dir> \

Build

cd <yaxt_build_dir>
make -j8

Run tests

cd <yaxt_build_dir>
make -j8 check

Install

cd <yaxt_build_dir>
make install
Note
Instead of setting MPI_LAUNCH during configuration above, you can configure your MPI to use the --oversubscribe option per default.
  • OpenMPI 4 and earlier: Create the file $HOME/.openmpi/mca-params.conf and insert the following lines:
    rmaps_base_oversubscribe=1
    orte_create_session_dirs=1
  • OpenMPI 5: Create the file $HOME/.prte/mca-params.conf and insert the line:
    rmaps_default_mapping_policy = :oversubscribe