Updated 2021-05-17

Run Abinit on the Cluster

Overview

  • This guide will focus on running Abinit - a software suite that calculates the optical, mechanical, vibrational, and other observable properties of materials.
  • The example used in this guide comes from this link.

Tips

  • There are many dependencies for this module including intel/15.0, openmpi/1.8, hdf5/1.8.14, netcdf/4.3.3, mk1/11.2, fftw/3.3.4. Make sure to load them all before trying to load abinit/8.4.2 in the order presented.
  • Here is a link to the Abinit new user help file.
  • View a list of tutorials for using Abinit at this link. Note that these tutorials are expected to take up to two hours each.

Summary

  • As an example, we will use abinit on an input file to create an output file that reports the point symmetry group and Bravais lattice and expected memory needs for each dataset.

Walkthrough: Run Abinit on the Cluster

  • This walkthrough will use abinit on an input file containing a reference to the 01h.pspgth pseutopotential to create an output file that reports the point symmetry group and Bravais lattice and expected memory needs.
  • The tutorial directory used in this example can be found here
  • PBS script can be found here
  • You can transfer the files to your account on the cluster to follow along. The file transfer guide may be helpful.

Part 1: The PBS Script

#PBS -N testAbinit
#PBS -A [Account] 
#PBS -l nodes=1:ppn=2
#PBS -l pmem=2gb
#PBS -l walltime=3:00
#PBS -q inferno
#PBS -j oe
#PBS -o testAbinit.out

cd $PBS_O_WORKDIR
module load intel/15.0
module load openmpi/1.8
module load hdf5/1.8.14
module load netcdf/4.3.3
module load mkl/11.2
module load fftw/3.3.4
module load abinit/8.4.2

abinit < tbase1_x.files

  • The #PBS directives are standard, requesting just 3 minutes of walltime and 1 node with 2 cores. More on #PBS directives can be found in the PBS guide
  • $PBS_O_WORKDIR is a variable that represents the directory you submit the PBS script from. Make sure the files you want to use (in this case, the abinit_tutorial directory) are in the same directory you put the PBS script in.
  • Output Files will also show up in this dir as well
  • module load abinit/8.4.2 loads the 8.4.2 version of Abinit. To see what Abinit versions are available, run module avail abinit, and load the one you want. The other module are dependencies that must be loaded before Abinit is loaded.
  • abinit < tbase1_x.files makes files according to what is written in tbase1_x.files. The tbase1_1.in input file and 01h.pspgth pseudopotential are used by tbase1_x.files to create the tbase1_1.out file. Other files are also generated but they are not useful for the purposes of this tutorial.

Part 2: Submit Job and Check Status

  • Make sure you're in the dir that contains the PBS Script as well as the abinit program
  • Submit as normal, with qsub <pbs script name>. In this case qsub testAbinit.pbs
  • Check job status with qstat -t 22182721, replacing the number with the job id returned after running qsub
  • You can delete the job with qdel 22182721 , again replacing the number with the jobid returned after running qsub

Part 3: Collecting Results

  • In the directory where you submitted the PBS script, you should see a testAbinit.out file, which contains the results of the job, a tbase1_1.out file which contains the report of the point symmetry group and Bravais lattice and expected memory needs, and other output files useful for tasks not covered in this tutorial.
  • Here is what a part of testAbinit.out looks like:
---------------------------------------
Begin PBS Prologue Mon Jun 24 15:53:59 EDT 2019
Job ID:     26165101.shared-sched.pace.gatech.edu
User ID:    svemuri8
Job name:   testAbinit
Queue:      inferno
End PBS Prologue Mon Jun 24 15:53:59 EDT 2019
---------------------------------------
  ABINIT 8.4.2

  Give name for formatted input file:
tbase1_1.in
  Give name for formatted output file:
tbase1_1.out
  Give root name for generic input files:
tbase1_xi
  Give root name for generic output files:
tbase1_xo
  Give root name for generic temporary files:
tbase1_x

.Version 8.4.2 of ABINIT
.(MPI version, prepared for a x86_64_linux_intel15.0 computer)

.Copyright (C) 1998-2017 ABINIT group .
 ABINIT comes with ABSOLUTELY NO WARRANTY.
 It is free software, and you are welcome to redistribute it
 under certain conditions (GNU General Public License,
 see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt).

 ABINIT is a project of the Universite Catholique de Louvain,
 Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt .
 Please read ~abinit/doc/users/acknowledgments.html for suggested
 acknowledgments of the ABINIT effort.
 For more information, see http://www.abinit.org .

.Starting date : Mon 24 Jun 2019.
- ( at 15h54 )


 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

 === Build Information ===
  Version       : 8.4.2
  Build target  : x86_64_linux_intel15.0
  Build date    : 20180329

 === Compiler Suite ===
  C compiler       : intel15.0
  C++ compiler     : intel15.0
  Fortran compiler : intel15.0
  CFLAGS           : -O2 -Wno-missing-declarations
  CXXFLAGS         : -O2 -Wno-missing-declarations
  FCFLAGS          :  -g -extend-source -noaltparam -nofpscomp
  FC_LDFLAGS       :    -static-intel -static-libgcc

 === Optimizations ===
  Debug level        : basic
  Optimization level : standard
  Architecture       : intel_xeon

 === Multicore ===
  Parallel build : yes
  Parallel I/O   : yes
  openMP support : no
  GPU support    : no

 === Connectors / Fallbacks ===
  Connectors on : yes
  Fallbacks on  : yes
  DFT flavor    : none
  FFT flavor    : fftw3
  LINALG flavor : mkl
  MATH flavor   : none
  TIMER flavor  : abinit
  TRIO flavor   : none
  • Here is what a part of tbase1_1.out looks like:
.Version 8.4.2 of ABINIT
.(MPI version, prepared for a x86_64_linux_intel15.0 computer)

.Copyright (C) 1998-2017 ABINIT group .
 ABINIT comes with ABSOLUTELY NO WARRANTY.
 It is free software, and you are welcome to redistribute it
 under certain conditions (GNU General Public License,
 see ~abinit/COPYING or http://www.gnu.org/copyleft/gpl.txt).

 ABINIT is a project of the Universite Catholique de Louvain,
 Corning Inc. and other collaborators, see ~abinit/doc/developers/contributors.txt .
 Please read ~abinit/doc/users/acknowledgments.html for suggested
 acknowledgments of the ABINIT effort.
 For more information, see http://www.abinit.org .

.Starting date : Mon 24 Jun 2019.
- ( at 15h54 )

- input  file    -> tbase1_1.in
- output file    -> tbase1_1.out
- root for input  files -> tbase1_xi
- root for output files -> tbase1_xo


 Symmetries : space group P4/m m m (#123); Bravais tP (primitive tetrag.)
================================================================================
 Values of the parameters that define the memory need of the present run
     intxc =       0    ionmov =       0      iscf =       7    lmnmax =       1
     lnmax =       1     mgfft =      30  mpssoang =       1    mqgrid =    3001
     natom =       2  nloc_mem =       1    nspden =       1   nspinor =       1
    nsppol =       1      nsym =      16    n1xccc =       0    ntypat =       1
    occopt =       1   xclevel =       1
-    mband =           2        mffmem =           1         mkmem =           1
       mpw =         752          nfft =       27000          nkpt =           1
================================================================================
P This job should need less than                       7.808 Mbytes of memory.
  Rough estimation (10% accuracy) of disk space for files :
_ WF disk file :      0.025 Mbytes ; DEN or POT disk file :      0.208 Mbytes.
================================================================================

--------------------------------------------------------------------------------
------------- Echo of variables that govern the present computation ------------
--------------------------------------------------------------------------------
-
- outvars: echo of selected default values
-   iomode0 =  0 , fftalg0 =312 , wfoptalg0 =  0
-
- outvars: echo of global parameters not present in the input file
-  max_nthreads =    0
-
 -outvars: echo values of preprocessed input variables --------
            acell      1.0000000000E+01  1.0000000000E+01  1.0000000000E+01 Bohr
              amu      1.00794000E+00
           diemac      2.00000000E+00
             ecut      1.00000000E+01 Hartree
-          fftalg         312
           istwfk        2
           kptopt           0
P           mkmem           1
            natom           2
            nband           2
            ngfft          30      30      30
             nkpt           1
            nstep          10
             nsym          16
           ntypat           1
              occ      2.000000  0.000000
          spgroup         123
           symrel      1  0  0   0  1  0   0  0  1      -1  0  0   0 -1  0   0  0 -1
                      -1  0  0   0  1  0   0  0 -1       1  0  0   0 -1  0   0  0  1
                      -1  0  0   0 -1  0   0  0  1       1  0  0   0  1  0   0  0 -1
                       1  0  0   0 -1  0   0  0 -1      -1  0  0   0  1  0   0  0  1
                       1  0  0   0  0  1   0  1  0      -1  0  0   0  0 -1   0 -1  0
                      -1  0  0   0  0  1   0 -1  0       1  0  0   0  0 -1   0  1  0
                      -1  0  0   0  0 -1   0  1  0       1  0  0   0  0  1   0 -1  0
                       1  0  0   0  0 -1   0 -1  0      -1  0  0   0  0  1   0  1  0
           toldfe      1.00000000E-06 Hartree
            typat      1  1
           xangst     -3.7042404601E-01  0.0000000000E+00  0.0000000000E+00
  • After the result files are produced, you can move the files off the cluster, refer to the file transfer guide for help.
  • Congratulations! You successfully ran Abinit on the cluster.