-
GPAW
GPAW
GPAW on tiheysfunktionaaliteorian (DFT) ja sitä laajempien laskentojen ohjelmisto, joka perustuu projektiolla täydennetyn aallon (PAW) menetelmään ja Atomic Simulation Environmentiin (ASE). Aaltofunktiot voidaan kuvata tasoaalloilla, yhtenäisillä reaaliavaruuden hilaesityksillä ja atomikeskisillä kantafunktioilla.
Ohjelmiston ominaisuuksia ovat muun muassa:
- kokonaisenergialaskut
- rakenneoptimoinnit
- erilaiset reunaehdot (äärellinen, lanka, laatta, bulkki)
- tehokas rinnakkaistaminen
- virittyneiden tilojen ominaisuudet aikariippuvan tiheysfunktionaaliteorian puitteissa
Saatavuus
Roihu
- Roihu-CPU: 25.7.0
- Tarkista kaikki saatavilla olevat versiot (ja oletusversio) komennolla
module avail gpaw - Asennus sisältää seuraavat kirjastot: MPI, OpenMP, ScaLAPACK, ELPA, FFTW, libxc, libvdwxc, DFT-D3, DFT-D4
- Katso GPAW-dokumentaatiosta rinnakkaisajoista ohjeet siihen, miten suorituskykyiset kirjastot otetaan käyttöön syöteskriptissä
- PAW-asetukset on asennettu
gpaw_data-paketin kautta - Käytä komentoa
gpaw infosaadaksesi tarkat versiotiedot
Puhti ja Mahti
- Puhti: 20.10.0, 21.1.0, 21.6.0, 22.1.0, 22.8.0, 24.6.0
- Mahti: 20.10.0, 21.1.0, 21.6.0, 22.1.0, 22.8.0, 23.9.1, 24.1.0, 24.6.0, 25.1.0, 25.7.0
- Tarkista kaikki saatavilla olevat versiot (ja oletusversio)
komennolla
module avail gpaw - Moduuleissa, joiden nimi päättyy merkintään
-omp, valinnainen OpenMP-rinnakkaistaminen on käytössä. Katso lisätietoja GPAW-dokumentaatiosta rinnakkaisajoista. - Kaikissa ennen versiota 24.1.0 tehdyissä asennuksissa käytetään GPAW:n PAW Setups -paketin versiota 0.9.20000.
Lisenssi
GPAW on vapaata ohjelmistoa, joka on saatavilla GPL-lisenssillä, versio 3+.
Käyttö
Koska oletusversio, joka on saatavilla komennolla module load gpaw, voi muuttua uusien versioiden asennuksen yhteydessä, suosittelemme lataamaan aina tietyn GPAW-version:
Huomautus
GPAW-laskennat suoritetaan komennoilla gpaw-python Puhdissa ja Mahdissa sekä komennolla gpaw python Roihussa.
Eräajokomentosarjojen esimerkkejä
#!/bin/bash
#SBATCH --job-name=gpaw
#SBATCH --account=<project>
#SBATCH --partition=small
#SBATCH --time=00:30:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=2
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=1000M
# Set the number of threads based on cpus-per-task
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK:-1}
# Place and bind threads to single cores
# Comment the following lines if binding is not desired
export OMP_PLACES=cores
export OMP_PROC_BIND=spread
# Run GPAW
srun gpaw python input.py
#!/bin/bash
#SBATCH --job-name=gpaw
#SBATCH --account=<project>
#SBATCH --partition=medium
##SBATCH --partition=large # uncomment if using 6 or more nodes
#SBATCH --time=00:30:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=192 --cpus-per-task=2 # The product should be 384
# Test different values of
# --ntasks-per-node and --cpus-per-task above
# for your use case and use the values that give the best performance
# Set the number of threads based on cpus-per-task
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK:-1}
# Place and bind threads to single cores
# Comment the following lines if binding is not desired
export OMP_PLACES=cores
export OMP_PROC_BIND=spread
# Run GPAW
srun gpaw python input.py
#!/bin/bash -l
#SBATCH --time=00:30:00
#SBATCH --partition=large
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=40
#SBATCH --mem-per-cpu=2GB
#SBATCH --account=<project>
##SBATCH --mail-type=END #uncomment to get mail
# this script runs a 80 core (2 full nodes) gpaw job, requesting
# 30 minutes time and 2 GB of memory for each core
module load gpaw/21.1.0
srun gpaw-python input.py
#!/bin/bash -l
#SBATCH --time=00:30:00
#SBATCH --partition=medium
#SBATCH --nodes=10
#SBATCH --ntasks-per-node=32
#SBATCH --cpus-per-task=4
#SBATCH --account=<project>
##SBATCH --mail-type=END #uncomment to get mail
# this script runs a 1280 core (10 full nodes) gpaw job, using hybrid
# MPI/OpenMP parallelization with 4 OpenMP threads per node,
# requesting 30 minutes time.
# Please experiment with optimum MPI task / OpenMP thread ratio with
# your particular input
# Note: only the modules with "-omp" ending supports OpenMP
# (default version in Mahti is OpenMP enabled)
module load gpaw/21.1.0-omp
export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
srun gpaw-python input.py
#!/bin/bash -l
#SBATCH --time=00:30:00
#SBATCH --partition=medium
#SBATCH --nodes=10
#SBATCH --ntasks-per-node=128
#SBATCH --account=<project>
##SBATCH --mail-type=END #uncomment to get mail
# this script runs a 1280 core (10 full nodes) gpaw job, using pure
# MPI parallelization requesting 30 minutes time.
module load gpaw/21.1.0
export OMP_NUM_THREADS=1
srun gpaw-python input.py