rcps-buildscripts icon indicating copy to clipboard operation
rcps-buildscripts copied to clipboard

Install Request: Octopus

Open kaibinary opened this issue 1 year ago • 1 comments

Application: Octopus 15.1

Link: https://octopus-code.org/documentation/15/

Cluster: Young

Description: A real-space finite-difference (time-dependent) density-functional theory code.

License: open source, GPL-licensed.

Special versions or variants: +cuda +libvdwxc +berkeleygw

Only up to version 6 is available on Young at the moment.

kaibinary avatar Jan 23 '25 20:01 kaibinary

Adapted from https://github.com/UCL-ARC/rcps-buildscripts/issues/584#issuecomment-2383436612

  1. Request an interactive session with 1 GPU
qrsh -pe smp 8 -l gpu=1,mem=4G,h_rt=4:00:00,tmpfs=20G -now no -P Free -A <MyProject>
  1. Set up a load_scls.sh script
echo -e '#!/bin/bash\n# Source this.\n\nUCL_SCLS="rh-python38 devtoolset-11"\n\nfor a in ${UCL_SCLS}\ndo\n   source /opt/rh/${a}/enable\ndone\nexport X_SCLS="${UCL_SCLS} ${X_SCLS}"' > $HOME/load_scls.sh
  1. Download Spack (tag: develop-2025-01-19) | Octopus 15.x is currently available in the develop branch
git clone -c feature.manyFiles=true --branch develop-2025-01-19 --single-branch --depth 1 https://github.com/spack/spack.git ~/spack
  1. Setup Spack

module purge
# Load GCC 11.2.1 and Python 3.8.18 
source ~/load_scls.sh
# Setup $SPACK_ROOT
source ~/spack/share/spack/setup-env.sh
  1. Install Octopus 15.1
# Octopus 15.x requires GCC 11.3 and above
# Install GCC 11.5.0
spack install [email protected]
# Add GCC 11.5.0 to Spack
spack compiler add $(spack location -i [email protected])
# Install Octopus 15.1 with CUDA 12.4 + BerkeleyGW + libvdwxc
spack install [email protected] +cuda +libvdwxc +berkeleygw ^[email protected] ^[email protected] +cuda fabrics=psm2,cma,ucx,ofi schedulers=sge  
  1. Load Octopus and do a test run
# source ~/load_scls.sh
# source ~/spack/share/spack/setup-env.sh 
spack load octopus
# create an inp file from https://octopus-code.org/documentation//14/tutorial/hpc/parallelization/?series=basic
cat <<EOF > inp

CalculationMode = td
UnitsOutput = eV_Angstrom
FromScratch = yes

Radius = 3.5*angstrom
Spacing = 0.18*angstrom

CH = 1.097*angstrom
%Coordinates
  "C" |           0 |          0 |           0
  "H" |  CH/sqrt(3) | CH/sqrt(3) |  CH/sqrt(3)
  "H" | -CH/sqrt(3) |-CH/sqrt(3) |  CH/sqrt(3)
  "H" |  CH/sqrt(3) |-CH/sqrt(3) | -CH/sqrt(3)
  "H" | -CH/sqrt(3) | CH/sqrt(3) | -CH/sqrt(3)
%

EOF

# Run Octopus calculation
octopus > out
  1. Create Modules (not tested, TBC...)
# Create TCL modules for all currently installed packages
spack module tcl refresh

TBC...

kaibinary avatar Jan 23 '25 20:01 kaibinary