Installation on Perlmutter (NERSC) ================================== `Perlmutter `__ is a high-performance cluster at `NERSC `__. Its compute nodes are equipped with 4 A100 NVIDIA GPUs. Installation of FBPIC --------------------- Setting up Anaconda ~~~~~~~~~~~~~~~~~~~ - Type the following lines to prepare your environment. :: module load PrgEnv-gnu cpe-cuda cudatoolkit python - Create a new conda environment and activate it. :: conda create -n fbpic conda activate fbpic - Deactivate that conda self-activates its ``base`` environment. This `avoids interference with the system and other package managers `__. .. code-block:: bash conda config --set auto_activate_base false Installation of FBPIC and its dependencies ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Install the dependencies of ``fbpic`` :: conda install -c conda-forge python numba scipy h5py mkl cudatoolkit=11.7 cupy MPICC="cc -shared -target-accel=nvidia80" python3 -m pip install --force --no-cache-dir --no-binary=mpi4py mpi4py - Install ``fbpic`` :: python3 -m pip install fbpic Running simulations ------------------- Interactive jobs ~~~~~~~~~~~~~~~~ In order to request a node with a GPU: :: salloc -t 00:30:00 -N 1 -C gpu --ntasks-per-node=4 --gpus-per-task=1 -A Then ``cd`` to the directory where you prepared your input script and type :: module load python cudatoolkit source activate fbpic python Batch job ~~~~~~~~~ Create a new file named ``submission_file`` in the same directory as your input script (typically this directory is a subdirectory of ``/global/scratch/``). Within this new file, copy the following text (and replace the bracketed text by the proper values). :: #!/bin/bash #SBATCH -J my_job #SBATCH -A #SBATCH -C gpu #SBATCH --time #SBATCH --ntasks #SBATCH --ntasks-per-node=4 #SBATCH --gpus-per-task=1 module load python cudatoolkit source activate fbpic export MPICH_GPU_SUPPORT_ENABLED=0 export FBPIC_ENABLE_GPUDIRECT=0 srun -n python fbpic_script.py Then run: :: sbatch submission_file