Skip to main content

Tips using Fugaku

Hardware

48 cores per node in ARM64 architecture However, the login node is an Intel machine. Compilation uses Fujitsu compiler, and the target mode should be set to ARM.

Job Scheduler

Fugaku uses PJM job scheduler Equivalent command:

PBS ProPJM
qstatpjstat
qsubpjsub
qdelpjdel

Example submission script for VASP

#!/bin/sh
#PJM -L "rscgrp=small"
#PJM -g "PROJECTID"
#PJM -L node=2
#PJM -L "elapse=24:00:00"
#PJM --mpi max-proc-per-node=48
#PJM -x PJM_LLIO_GFSCACHE=/vol0004
#PJM -S
#PJM -m b
#PJM -m e
#PJM -N jobname

export OMP_NUM_THREADS=1

export LD_LIBRARY_PATH=/lib64:${LD_LIBRARY_PATH}
export vasp_std=/PATH/vasp_std
export vasp_gam=/PATH/vasp_gam
vasp_ncl=/PATH/vasp_ncl
export PATH=$PATH:/PATH

echo `date` "Starting relaxation ..." >> status.txt
if [ ! -f vasprun.xml.relaxed.gz ]
then
if [ ! -s POSCAR.orig ]
then
echo `date` "Backuping POSCAR to POSCAR.orig ....." >> status.txt
cp POSCAR POSCAR.orig
fi
if [ -s CONTCAR ]
then
echo `date` "Found CONTCAR... Copying CONTCAR to POSCAR and continuing relaxation ...." >> status.txt
cp CONTCAR POSCAR
fi
echo `date` "Running VASP" >> status.txt
mpirun -n 96 vasp_std >> vasp.out
echo `date` `tail -n -1 OSZICAR` >> status.txt

rel=`tail -1 OSZICAR | cut -c 1-4`

grep "Inconsistent Bravais lattice types found for crystalline" OUTCAR

if [ $? -eq 0 ]
then
echo "SYMPREC = 1e-08" >> INCAR
fi


while [ ${rel} -gt 10 ]; do
cp CONTCAR POSCAR
rm WAVECAR CHG*
echo `date` "Running VASP " >> status.txt
mpirun -n 96 vasp_std >> vasp.out
echo `date` `tail -n -1 OSZICAR` >> status.txt
rel=`grep -v '^$' OSZICAR| tail -1 | cut -c 1-4`
if [ ${rel} -gt 10 ]
then
echo `date` "No. of ionic steps ${rel} doesn't meet the requirement (<10), restarting ....." >> status.txt
fi
done


if [ ${rel} -le 10 ]
then
echo `date` "Relaxation finished!" >> status.txt
mv CONTCAR CONTCAR.relaxed
mv DOSCAR DOSCAR.relaxed
mv EIGENVAL EIGENVAL.relaxed
mv IBZKPT IBZKPT.relaxed
mv INCAR INCAR.relaxed
mv KPOINTS KPOINTS.relaxed
mv OSZICAR OSZICAR.relaxed
mv OUTCAR OUTCAR.relaxed
mv POSCAR POSCAR.relaxed
mv PROCAR PROCAR.relaxed
mv vasprun.xml vasprun.xml.relaxed
mv vasp.out vasp.out.relaxed
rm WAVECAR CHG*
echo `date` "Ending job ..." >> status.txt
gzip -f *
exit 0

else
echo `date` "Error or unfinished job!" >> status.txt
exit 1
fi

else
echo `date` "vasprun.xml.relaxed.gz exist, skip this calculation ....." >> status.txt
exit 0
fi

Module system

Fugaku uses spack to manage modules Add following to ~/.bashrc to load spack (need relogin)

alias loadspack=". /vol0004/apps/oss/spack/share/spack/setup-env.sh"

Some commands to use spack

  • spack list show all installed modules
  • spack find xx find installed module, e.g. spack find gcc
  • spack load xx load a module, e.g. spack load gcc@12.2.0
  • spack unload xx unload a module

Tips for running VASP

Optimal NCORE is 12 for VASP