[Updated on 20.04.2022, 15.04.2023, 10.06.2023, 03.10.2023, 04.06.2024]
In short, in a clean environment, everything should work with just five lines:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
Initialize conda. If it is in the .bashch, source it. If not, source “PATHTOCONDA/miniconda3/etc/profile.d/conda.sh”.
conda create --name gpaw -c conda-forge python=3.12
conda activate gpaw
conda install -c conda-forge openmpi ucx
conda install -c conda-forge gpaw=24.1.0=*openmpi*
For details, see the description below.
1. Install conda – software and environment management system.
Here is the official instruction: docs.conda.io/projects/conda/en/latest/user-guide/install/linux.html
On June 2024, run these:
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh
If you wish to autostart conda, allow it to write to your .bashrc.
P.S. Here are good intros to conda:
N.B! If the locale is not set, add it to your .bashrc export
LC_ALL=en_US.UTF-8
Without it python might give a segmentation fault (core dumped) error.
2. Create a conda virtual environment:
conda create --name gpaw -c conda-forge python=3.12
If needed, remove the environment as:
conda remove --name gpaw --all
You can check the available environments as:
conda env list
3. Activate the virtual environment.
conda activate gpaw
4. Install gpaw:
Ensure that no interfering modules and environments are loaded.
Purge modules by executing:
module purge
To check whether some code (like mpirun) has an alternative path, try:
which codename
or
codename --version
There should be no mpirun, ase, libxc, numpy, scipy, etc. Otherwise, the installation with conda will most probably fail due to conflicting paths.
4.1. It is safer to install using gpaw*.yml file from vliv/conda directory on FEND:
conda env create -f gpaw.yml
Note that there are many yml files with different versions of GPAW.
4.2. Pure installation is simple but might not work:
conda install -c conda-forge openmpi
conda install -c conda-forge gpaw=*=*openmpi*
In 2022, there were problems with openmpi. Downgrading to version 4.1.2 helped:
conda install -c conda-forge openmpi=4.1.2
You might wish to install ucx but be aware that there are many problems with it, e. g. depending on mlx version:
conda install -c conda-forge ucx
If you get an error about GLIBCXX, try upgrading gcc:
conda install -c conda-forge gcc=12.1.0
4.3. To quickly check the installation, run “gpaw -P 2 test” or “gpaw info”.
The installation might fail. In case you succeed, save the yml file as:
conda env export | grep -v "^prefix: " > gpaw.yml
Now you can use it to install gpaw as:
conda env create -f gpaw.yml
To properly test the installation install pytest and follow wiki.fysik.dtu.dk/gpaw/devel/testing.html. That might take hours.
conda install -c conda-forge pytest pytest-xdist
5. If needed, install extra packages within your specific conda environment (gpaw).
To apply D4 dispersion correction:
conda install -c conda-forge dftd4 dftd4-python
To analyze trajectories:
conda install -c conda-forge mdanalysis
To analyze electronic density (some might not work):
pip install git+https://github.com/funkymunkycool/Cube-Toolz.git
pip install git+https://github.com/theochem/grid.git
pip install git+https://github.com/theochem/denspart.git
pip install pybader
pip install cpmd-cube-tools
conda install -c conda-forge chargemol
To use catlearn:
pip install catlearn
To work with crystal symmetries:
conda install -c conda-forge spglib
Extra for visualization (matplotlib comes with ASE):
conda install -c conda-forge pandas seaborn bokeh jmol
To use notebooks (you might need to install firefox as well):
conda install -c conda-forge jupyterlab nodejs jupyter_contrib_nbextensions
6. Run calculations by adding these lines to the submission script:
Note1: Check the path and change the USERNAME
Note2: Turn off ucx.
Note3: You may play with the number of openmp threads.
module purge
source "/groups/kemi/USERNAME/miniconda3/etc/profile.d/conda.sh"
conda activate gpaw
export OMP_NUM_THREADS=1
export OMPI_MCA_pml="^ucx"
export OMPI_MCA_osc="^ucx"
mpirun gpaw python script.py
Note4: Check an example in vliv/conda/sub directory.
7. Speeding-up calculations.
Add the “parallel” keyword to GPAW calculator:
parallel = {'augment_grids':True,'sl_auto':True},
For more options see wiki.fysik.dtu.dk/gpaw/documentation/parallel_runs/parallel_runs.html#manual-parallel. For LCAO mode, try ELPA. See wiki.fysik.dtu.dk/gpaw/documentation/lcao/lcao.html#notes-on-performance.
parallel = {'augment_grids':True,'sl_auto':True,'use_elpa':True},
For calculations with vdW-functionals, use libvdwxc:
xc = {'name':'BEEF-vdW', 'backend':'libvdwxc'},
8. If needed, add fixes.
To do Bayesian error estimation (BEE) see doublelayer.eu/vilab/2022/03/30/bayesian-error-estimation-for-rpbe/.
To use MLMin/NEB apply corrections from github.com/SUNCAT-Center/CatLearn/pulls
9. Something worth trying:
Atomic Simulation Recipes:
asr.readthedocs.io/en/latest/
gpaw-tools:
github.com/lrgresearch/gpaw-tools/
www.sciencedirect.com/science/article/pii/S0927025622000155
ase-notebook (won’t install at FEND because of glibc 2.17):
github.com/chrisjsewell/ase-notebook
ase-notebook.readthedocs.io/en/latest/
Optimizers:
gitlab.com/gpatom/ase-gpatom
gitlab.com/egarijo/bondmin/
gpaw benchmarking:
github.com/OleHolmNielsen/GPAW-benchmark-2021
github.com/mlouhivu/gpaw-benchmarks
members.cecam.org/storage/presentation/Ask_Hjorth_Larsen-1622631504.pdf
d4 parameters fitting:
github.com/dftd4/dftd4-fit
k-point grid choosing:
gitlab.com/muellergroup/kplib