-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'topic/default/doc-clusters' into 'branch/default'
Topic/default/doc clusters See merge request fluiddyn/fluidsim!396
- Loading branch information
Showing
8 changed files
with
201 additions
and
17 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
wrap = 89 | ||
number = true | ||
end_of_line = "lf" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# Using Fluidsim on Adastra (CINES) | ||
|
||
We show in this directory | ||
(<https://foss.heptapod.net/fluiddyn/fluidsim/-/tree/branch/default/doc/examples/clusters/adastra>) | ||
how to use Fluidsim on Adastra. The main documentation for this HPC platform is | ||
[here](https://dci.dci-gitlab.cines.fr/webextranet/index.html). We use modules produced | ||
by [Spack](https://spack.io/). | ||
|
||
## Get a login and setup ssh | ||
|
||
Get an account on <https://www.edari.fr/>. | ||
|
||
Set the alias | ||
|
||
```sh | ||
alias sshadastra='ssh -X augier@adastra.cines.fr' | ||
``` | ||
|
||
## Setup Mercurial and clone fluidsim | ||
|
||
Ask authorization to be able to clone the Fluidsim repository from | ||
<https://foss.heptapod.net> as explained | ||
[here](https://dci.dci-gitlab.cines.fr/webextranet/data_storage_and_transfers/index.html#authorizing-an-outbound-connection). | ||
|
||
Install and setup Mercurial as explained | ||
[here](https://fluidhowto.readthedocs.io/en/latest/mercurial/install-setup.html). Clone | ||
the Fluidsim repository in `$HOME/dev`. | ||
|
||
```{warning} | ||
The file `.bashrc` is not sourced at login so the user should do it | ||
to use pipx-installed applications. | ||
``` | ||
|
||
```sh | ||
mkdir ~/dev | ||
cd ~/dev | ||
. ~/.bashrc | ||
hg clone https://foss.heptapod.net/fluiddyn/fluidsim | ||
cd ~/dev/fluidsim/doc/examples/clusters/adastra | ||
|
||
``` | ||
|
||
## Setup a virtual environment | ||
|
||
Execute the script `setup_venv.sh`. | ||
|
||
```sh | ||
./setup_venv.sh | ||
``` | ||
|
||
```{literalinclude} ./setup_venv.sh | ||
``` | ||
|
||
Due to a bug in Meson (the build system used by few fluidfft pluggins, see | ||
https://github.com/mesonbuild/meson/pull/13619), we need to complete the installation: | ||
|
||
```sh | ||
module purge | ||
module load cpe/23.12 | ||
module load craype-x86-genoa | ||
module load PrgEnv-gnu | ||
module load gcc/13.2.0 | ||
module load cray-hdf5-parallel cray-fftw | ||
module load cray-python | ||
|
||
export LIBRARY_PATH=/opt/cray/pe/fftw/3.3.10.6/x86_genoa/lib | ||
export CFLAGS="-I/opt/cray/pe/fftw/3.3.10.6/x86_genoa/include" | ||
|
||
. ~/venv-fluidsim/bin/activate | ||
|
||
# --no-build-isolation because of the Meson bug | ||
|
||
# because of --no-build-isolation | ||
pip install meson-python ninja fluidfft-builder cython | ||
cd ~/dev | ||
hg clone https://github.com/paugier/meson.git | ||
cd ~/dev/meson | ||
hg up mpi-detection | ||
pip install -e . | ||
cd | ||
# | ||
|
||
pip install fluidfft-fftwmpi --no-binary fluidfft-fftwmpi --no-build-isolation --force-reinstall --no-cache-dir --no-deps -v | ||
``` | ||
|
||
## Install Fluidsim from source | ||
|
||
```sh | ||
module purge | ||
module load cpe/23.12 | ||
module load craype-x86-genoa | ||
module load PrgEnv-gnu | ||
module load gcc/13.2.0 | ||
module load cray-hdf5-parallel cray-fftw | ||
module load cray-python | ||
|
||
. ~/venv-fluidsim/bin/activate | ||
|
||
cd ~/dev/fluidsim | ||
# update to the wanted commit | ||
pip install . -v -C setup-args=-Dnative=true | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
#!/usr/bin/env bash | ||
set -e | ||
|
||
module purge | ||
module load cpe/23.12 | ||
module load craype-x86-genoa | ||
module load PrgEnv-gnu | ||
module load gcc/13.2.0 | ||
module load cray-hdf5-parallel cray-fftw | ||
module load cray-python | ||
|
||
cd $HOME | ||
python -m venv venv-fluidsim | ||
. ~/venv-fluidsim/bin/activate | ||
pip install --upgrade pip | ||
|
||
# install fluidsim and all dependencies from wheels! | ||
pip install "fluidsim[fft,test]" | ||
|
||
# fix/improve few packages (force recompilation) | ||
pip install fluidfft --no-binary fluidfft -C setup-args=-Dnative=true --force-reinstall --no-cache-dir --no-deps -v | ||
|
||
CC=mpicc pip install mpi4py --no-binary mpi4py --force-reinstall --no-cache-dir --no-deps -v | ||
CC="mpicc" HDF5_MPI="ON" pip install h5py --no-binary=h5py --force-reinstall --no-cache-dir --no-deps -v | ||
|
||
export LIBRARY_PATH=/opt/cray/pe/fftw/3.3.10.6/x86_genoa/lib | ||
export CFLAGS="-I/opt/cray/pe/fftw/3.3.10.6/x86_genoa/include" | ||
export PYFFTW_LIB_DIR="/opt/cray/pe/fftw/3.3.10.6/x86_genoa/lib" | ||
|
||
pip install pyfftw --no-binary pyfftw --force-reinstall --no-cache-dir --no-deps -v | ||
|
||
# install fluidfft pluggins | ||
pip install fluidfft-fftw --no-binary fluidfft-fftw --force-reinstall --no-cache-dir --no-deps -v |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -115,6 +115,7 @@ install | |
tutorials | ||
examples | ||
build-from-source | ||
install-clusters | ||
faq | ||
``` | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Fluidsim on clusters | ||
|
||
Computing clusters are sets of computers used for HPC. Installing on such machines in | ||
order to run very large simulations is particular since | ||
|
||
- Performance is key. With very large simulations, differences of few percents in | ||
performance can lead to important differences of electricity consumption and CO₂ | ||
production. | ||
|
||
With large simulations, a large proportion of elapsed time is spent in crushing numbers | ||
(concentrated in few functions) and MPI communications. For pseudo-spectral simulations | ||
based on Fourier transform, the FFT functions and few other numerical kernels have to | ||
be very efficient. This is achieved by using advanced FFT libraries and by compiling | ||
with special options like `-march=native` and `-Ofast`. | ||
|
||
- Parallelism is done trough MPI with advanced hardware so it's important to use the | ||
right MPI implementation compiled with the right options. | ||
|
||
- The software environment is usually quite different than on more standard machines, | ||
with quite old operative systems and particular systems to use other software (modules, | ||
Guix, Spack, ...). | ||
|
||
- Computations are launched through a schedulers (like Slurm, OAR, ...) with a launching | ||
script. In the Fluiddyn project, we tend to avoid writting manually the launching | ||
scripts (which is IMHO error prone and slow) and prefer to use the `fluiddyn.clusters` | ||
API, which allows users to launch simulations with simple Python scripts. | ||
|
||
We present here few examples of installation methods and launching scripts on different | ||
kinds of clusters: | ||
|
||
```{toctree} | ||
--- | ||
caption: Examples | ||
maxdepth: 1 | ||
--- | ||
./examples/clusters/adastra/README.md | ||
./examples/clusters/gricad/README.md | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters