This repo contains Singularity container recipes intended for building FHI-aims, an efficient, accurate all-electron, full-potential electronic structure code package for computational molecular and materials science. For more information about FHI-aims and Singularity containers, please visit:
- The Singularity website at https://www.sylabs.io/singularity/
- The FHI-aims website at https://aimsclub.fhi-berlin.mpg.de/
To build a container, change directory into the directory corresponding to the desired base image (i.e. OS and version of the base container) and execute the following command (when using Singularity 2.6):
sudo singularity build fhi-aims.simg Singularity
Note that building Singularity containers requires superusers privileges on the local machine; please see the Singularity documentation for more information.
Because FHI-aims is a proprietary code, you will be required to specify your
user name and an access token to clone the FHI-aims git repo while the
container is being built. To generate the access token, log into the
git repo, visit Access
Tokens,
select api
under Scopes and generate the token. This step occurs
near the beginning of the container build process, and after this step
the build process will continue automatically until completion.
When the build process is finished, an fhi-aims.simg
file containing a
Singularity container with an up-to-date FHI-aims version will be present in the
current working directory.
The generated container should be be callable in a fashion similar to a normal FHI-aims executable, i.e.
mpirun -n 4 fhi-aims.simg
should work. That being said, your computing environment may vary. For more information about running the created Singularity container, please contact the Singularity documentation and your system admins.
Singularity 2.6.0 was used to test these Singularity recipes.
Libraries and software packages which are important for optimization and parallel efficiency (compiler, math libraries, MPI libraries) are generally either built from source or pulled from vendor-specific repos.
Using the GNU Fortran compiler incurs a significant performance penalty (on the order of 2x) relative to vendor-specific compilers (Intel, Cray, IBM XL,...) We are still assessing if it is possible to incorporate vendor-specific compilers into Singularity containers, but for now, it is recommended that you do not use the containers generated by these recipes for production calculations!
When using a Singularity container built with Open MPI, the version of Open MPI in the container and on the target platform must match exactly. If this is not the case, you will need to change the version of Open MPI in the container recipe.
We highly recommend that all FHI-aims users and developers join our Slack channel at https://fhi-aims.slack.com . The Slack channel is the fastest way to get in contact with other FHI-aims users and developers. Please refer to the FHI-aims documentation for more information.