Containers¶
Docker¶
Dockerfile recipes are available at the repository https://github.com/nwchemgit/nwchem-dockerfiles
Docker images of the 7.2.0 release are hosted at https://ghcr.io at the link https://github.com/nwchemgit/nwchem-dockerfiles/pkgs/container/nwchem-720 and can be used with the following command
docker run --shm-size 256m -u `id -u` --rm -v [host_system_dir]:/data ghcr.io/nwchemgit/nwchem-dev input.nw
For example, the following command can be used when starting from the /tmp
directory:
docker run --shm-size 256m -u `id -u` --rm -v /tmp:/data ghcr.io/nwchemgit/nwchem-dev /data/input.nw
where the input file input.nw
is located in the /tmp
directory.
The following docker command will run NWChem in parallel using three processes
docker run --shm-size 256m -u `id -u` --rm --entrypoint='mpirun' -v /tmp:/data ghcr.io/nwchemgit/nwchem-dev -np 2 nwchem /data/xvdw.nw
This example uses the input file xvdw.nw
available on the host directory /tmp
The associated Dockerfile is available at
https://github.com/nwchemgit/nwchem-dockerfiles/blob/master/nwchem-dev/Dockerfile
Singularity/Apptainer¶
Singularity/Apptainer recipes for NWChem are available at.
https://github.com/edoapra/nwchem-singularity
Singularity images are available at
ghcr.io/edoapra/nwchem-singularity/nwchem-dev.ompi41x
and
ghcr.io/edoapra/nwchem-singularity/nwchem-dev.mpich3.4.2
Instruction for running on EMSL Tahoma¶
Slurm script for running NWChem Singularity/Apptainer images on EMSL tahoma
#!/bin/bash
#SBATCH -N 2
#SBATCH -t 00:29:00
#SBATCH -A allocation_name
#SBATCH --ntasks-per-node 36
#SBATCH -o singularity_library.output.%j
#SBATCH -e ./singularity_library.err.%j
#SBATCH -J singularity_library
#SBATCH --export ALL
source /etc/profile.d/modules.sh
export https_proxy=http://proxy.emsl.pnl.gov:3128
module purge
module load gcc/9.3.0
module load openmpi/4.1.4
SCRATCH=/big_scratch
# pull new image to the current directory
singularity pull -F --name ./nwchems_`id -u`.img oras://ghcr.io/edoapra/nwchem-singularity/nwchem-dev.ompi41x:latest
# copy image from current directory to local /big_scratch/ on compute nodes
srun -N $SLURM_NNODES -n $SLURM_NNODES cp ./nwchems_`id -u`.img $SCRATCH/nwchems.img
# basis library files
export SINGULARITYENV_NWCHEM_BASIS_LIBRARY=/cluster/apps/nwchem/nwchem/src/basis/libraries/
# use /big_scratch as scratch_dir
export SINGULARITYENV_SCRATCH_DIR=$SCRATCH
# bind local file system
MYFS=$(findmnt -r -T . | tail -1 |cut -d ' ' -f 1)
# run
srun --mpi=pmi2 -N $SLURM_NNODES -n $SLURM_NPROCS singularity exec --bind $SCRATCH,$MYFS $SCRATCH/nwchems.img nwchem "file name"
Instruction for running on OLCF Frontier¶
Slurm script for running NWChem Singularity/Apptainer images on OLCF Frontier
#!/bin/bash
#SBATCH -t 00:29:00
#SBATCH -A ABCXYZ123
#SBATCH -N 4
#SBATCH --tasks-per-node 56
#SBATCH --cpus-per-task 1
#SBATCH -J siosi6
#SBATCH -o siosi6.err.%j
module swap libfabric libfabric/1.15.2.0
module load cray-mpich-abi
export APPTAINERENV_LD_LIBRARY_PATH="$CRAY_MPICH_DIR/lib-abi-mpich:$CRAY_MPICH_ROOTDIR/gtl/lib:/opt/rocm/lib:/opt/rocm/lib64:$CRAY_LD_LIBRARY_PATH:$LD_LIBRARY_PATH:/opt/cray/pe/lib64:$HIP_LIB_PATH:/opt/cray/pe/gcc/11.2.0/snos/lib64:/opt/cray/xpmem/default/lib64"
export APPTAINER_CONTAINLIBS="/usr/lib64/libcxi.so.1,/usr/lib64/libjson-c.so.3,/lib64/libtinfo.so.6,/usr/lib64/libnl-3.so.200,/usr/lib64/libgfortran.so.5,/usr/lib64/libjansson.so.4"
MYFS=$(findmnt -r -T . | tail -1 |cut -d ' ' -f 1)
export http_proxy=http://proxy.ccs.ornl.gov:3128/
export https_proxy=http://proxy.ccs.ornl.gov:3128/
export no_proxy='localhost,127.0.0.0/8,*.ccs.ornl.gov'
export PERMANENT_DIR=$MEMBERWORK/$SLURM_JOB_ACCOUNT
export BINDS=/usr/share/libdrm,/var/spool/slurmd,/opt/cray,${MYFS},${PERMANENT_DIR}
export FI_CXI_RX_MATCH_MODE=hybrid
export COMEX_EAGER_THRESHOLD=32768
export MPICH_SMP_SINGLE_COPY_MODE=NONE
export OMP_NUM_THREADS=1
MYIMG=oras://ghcr.io/edoapra/nwchem-singularity/nwchem-dev.mpich3.4.2:
export APPTAINER_CACHEDIR=$MEMBERWORK/$SLURM_JOB_ACCOUNT/cache
mkdir -p $APPTAINER_CACHEDIR
srun -N $SLURM_NNODES -l apptainer exec --bind $BINDS --workdir `pwd` $MYIMG nwchem siosi6.nw >& siosi6.out.$SLURM_JOBID
Shifter¶
Instructions for running the NWChem Shifter images are available at https://docs.nersc.gov/applications/nwchem
Podman¶
Docker images could be run using podman commands
podman run --rm --shm-size 256m --volume /tmp:/data -i -t ghcr.io/nwchemgit/nwchem-dev/amd64 xvdw.nw