Octopus
Description
Octopus is an ab initio program that describes electrons quantum-mechanically within density-functional theory (DFT) and in its time-dependent form (TDDFT) for problems with a time evolution. Nuclei are described classically as point particles. Electron-nucleus interaction is described within the pseudopotential approximation.
Octopus is free software, released under the GPL license.
More information about the program and its usage can be found on https://www.octopus-code.org/
Modules
Octopus is currently available only on Lise. The standard pseudopotentials deployed with Octopus are located in $OCTOPUS_ROOT/
share/octopus/pseudopotentials/PSF/
. If you need to use a different set, please refer to the manual.
Octopus version | Module files | Requirements | Optional features supported | Compute partitions | CPU/GPU |
---|---|---|---|---|---|
12.1 | octopus/12.1 |
| CentOS 7 | / | |
14.1 | octopus/14.1 |
| NetCDF | Rocky Linux 9 | / |
Example Jobscripts
Assuming that your input file inp
is located within the directory where you are submitting the job script, and that the output is written to out
, one example of job script is given below
#!/bin/bash #SBATCH --time 12:00:00 #SBATCH --partition cpu-clx #SBATCH --nodes=1 #SBATCH --ntasks-per-node=24 #SBATCH --cpus-per-task=4 #SBATCH --job-name=octopus module load impi/2021.13 module load octopus/14.1 # Set the number of OpenMP threads as given by the SLURM parameter "cpus-per-task" export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} # Adjust the maximum stack size of OpenMP threads export OMP_STACKSIZE=512m # Do not use the CPU binding provided by slurm export SLURM_CPU_BIND=none # Binding OpenMP threads export OMP_PLACES=cores export OMP_PROC_BIND=close # Binding MPI tasks export I_MPI_PIN=yes export I_MPI_PIN_DOMAIN=omp export I_MPI_PIN_CELL=core mpirun octopus
Please, check carefully for your use cases the best parallelization strategies in terms of e. g. the number of MPI processes and OpenMP threads. Note that the variables ParStates
, ParDomains
and ParKPoints
defined in the input file also impact the parallelization performance.
A similar example valid for the CPU partitions with CentOS 7 is
#!/bin/bash #SBATCH --time 12:00:00 #SBATCH --partition standard96 #SBATCH --nodes=1 #SBATCH --ntasks-per-node=24 #SBATCH --cpus-per-task=4 #SBATCH --job-name=octopus module load intel/2021.2 impi/2021.7.1 octopus/12.1 # Set the number of OpenMP threads as given by the SLURM parameter "cpus-per-task" export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK} # Adjust the maximum stack size of OpenMP threads export OMP_STACKSIZE=512m # Do not use the CPU binding provided by slurm export SLURM_CPU_BIND=none # Binding OpenMP threads export OMP_PLACES=cores export OMP_PROC_BIND=close # Binding MPI tasks export I_MPI_PIN=yes export I_MPI_PIN_DOMAIN=omp export I_MPI_PIN_CELL=core mpirun octopus