GPU-ACCELERATED BigDFT

Get Started Today with This GPU-Ready Apps Guide.

BigDFT is a density functional theory (DFT) massively parallel electronic structure code using a wavelet basis set with the capability to use a linear scaling method. Wavelets form a real-space basis set distributed on an adaptive mesh (two levels of resolution in our implementation). Goedecker-Teter-Hutter (GTH) or Hartwigsen-Goedecker-Hutter (HGH) pseudopotentials are used to remove the core electrons.

BigDFT is available in ABINIT v5.5 and higher but can also be downloaded in a standalone version from the website. The Poisson solver based on a Green function formalism, periodic systems, surfaces, and isolated systems can be simulated with explicit boundary conditions. The Poisson solver can also be downloaded and used independently and is integrated in ABINIT, Octopus, and CP2K. The code, tutorials, and documentation are available on BigDFT.

Installation

Installing applications in a high performance computing (HPC) environment can be complex. Containers let you run the application without installing it on the system, making it easy to deploy the most recent version of the application while optimizing performance.

Running a BigDFT container is very straightforward and can be set up in minutes.

Running Jobs

Once you pull the BigDFT container from NGC, there are four options to run the it.

Running it directly from the nvidia-docker run command

Running it interactively within the container

Running it with Jupyter Notebook from a web browser

Running it with MPI/OpenMP/GPU

1. Running BigDFT from the Command Line

To run the BigDFT container from the command-line interface (CLI), you need input files in your current directory on the host system. Then you can issue the following command, which runs BigDFT and makes the current working directory accessible within the container as “/results”:

nvidia-docker run -it --rm -v $(pwd):/results -w /results

nvcr.io/hpc/bigdft:cuda9-ubuntu1604-mvapich2_gdr-mkl bigdft

2. Running BigDFT Interactively

In this example, we will run BigDFT interactively and reproduce a FeHyb test included within the container.

To run the container interactively, issue the following command, which starts the container and also mounts your current directory to /results so it’s available inside the container. (See the -v options on the command below to set the mapping of your local data directory to the one inside the container.)

nvidia-docker run -it --rm -v $(pwd):/results

nvcr.io/hpc/bigdft:cuda9-ubuntu1604-mvapich2_gdr-mkl bash

After the container starts, you’ll be in the / directory. You can then change to /docker/FeHyb/GPU, where you can find input files (input.yaml, posinp.xyz, and psppar.Fe) and run the test:

cd /docker/FeHyb/GPU

bigdft

After the computation, output can be found in log.yaml file and timings in time.yaml. These files can be copied to /results so that you can save them in the current folder on the host system.

3. Running with Jupyter Notebook

The default command of the container launches a Jupyter server inside the container, which can be accessed from any web browser, and allows interactive sessions to be run with BigDFT. For this to be possible, you just need to redirect the 8888 port from the container to any port on the host system. If you then want to access this from another computer, this port must be opened to connections:

nvidia-docker run -p 8888:8888 -it --rm -v $(pwd):/results

nvcr.io/hpc/bigdft:cuda9-ubuntu1604-mvapich2_gdr-mkl

In this example, we can then launch a browser and access the server from a web browser with address localhost:8888

The password of the running Jupyter server is “bigdft.” An example of the notebook is present in /ContainerXP/H2O-Polarizability.ipynb

If multiple GPUs are available on the node, each MPI process will try to use a different one and cycle if more processes than GPUs are found (use of --ipc=host option of docker run is also recommended). As NVIDIA® CUDA™-aware MPI is needed for PBE0 computation, setting MV2_USE_CUDA to 1 can also be necessary. It’s not enabled by default, as it could slow down non-GPU runs.

RECOMMENDED SYSTEMS CONFIGURATIONS

The BigDFT container is optimised and tested for reliability to run on NVIDIA Pascal™- and NVIDIA Volta-powered systems with CUDA 9 or newer. Visual molecular dynamics (VMD) and all the HPC application containers available on NVIDIA GPU Cloud can run on the following systems: