DIRAC

Z MetaCentrum
Skočit na navigaci Skočit na vyhledávání

Description

The DIRAC program computes molecular properties using relativistic quantum chemical methods. It is named after P.A.M. Dirac, the father of relativistic electronic structure theory.

Notice: This application supports parallel computing (MPI, OpenMP) which can have weird consequences. For more details about parallel computing visit the page Parallelization.

Availability

Available versions:

  • DIRAC21.0 dirac/dirac-21.0-intel-19.0.4-ycozknk - compiled in the same way like module dirac-17-tuned1_mkl-parallel_int64
  • DIRAC19 (June 2020), modulefile dirac-19 - compiled in the same way like module dirac-17-tuned1_mkl-parallel_int64
  • DIRAC18 (January 2019), modulefile dirac-18 - compiled in the same way like module dirac-17-tuned1_mkl-parallel_int64
module add cmake-3.6.1 openmpi-2.1.1-intel-i8
./setup --mpi --int64 --mkl=parallel --extra-cxx-flags=-mcmodel=medium --extra-cc-flags=-mcmodel=medium --extra-fc-flags=-mcmodel=medium --prefix=/software/dirac/18
  • DIRAC17 (February 2018), modulefile dirac-17 - compiled with Intel CDK 17
  • DIRAC17 (February 2018), modulefile dirac-17-tuned1, with the exactly same compile-time parameters changed as in dirac-16-newest (see #Difference between the versions of DIRAC16)
  • DIRAC17 (February 2018), modulefile dirac-17-tuned1_mkl-parallel_int64 with the exactly same changes as dirac-17-tuned1, but compiled with parallel Intel MKL library and 64-bit integers
  • DIRAC16 (December 2016), modulefile dirac-16 - OpenMPI version compiled with Intel CDK 17
  • DIRAC16 (January 2018), modulefile dirac-16-newest, with some compile-time parameters tweaked, compiled with Intel CDK 17

All versions of both DIRAC16 and DIRAC17 have been compiled with OpenMPI 2.1.1, using the Intel Parallel Studio 2017's C/C++/Fortran compiler.

Difference between the versions of DIRAC16

The version from December 2016 (modulefile dirac-16) represents standard version of DIRAC16 - sources were unpacked, compiled and that's it.

The version from January 2018 (modulefile dirac-16-newest) got some compile-time parameter values changed before it was compiled. Specifically, these values in the source code have been changed:

  • src/prp/dcbexp.h: Variable MAXEXP changed from 350 to 800
  • src/include/aovec.h: Variable MXCONT changed from 30 to 3000
  • src/include/mxcent.h: Variable MXCENT changed from 300 to 10000
  • src/x2c/x2c_cfg.F90: Variable x2c_mxcent changed from 300 to 10000
  • src/prp/dcbxpp.h: Variable MAXLPP changed from 40 to 400

After setting these values in the source files, the program was compiled using these parameters:

./setup --mpi --extra-cxx-flags=-mcmodel=medium --extra-cc-flags=-mcmodel=medium --extra-fc-flags=-mcmodel=medium --prefix=/software/dirac/16-newest
cd build && make depend && make -j && make install

DIRAC17 with parallel Intel MKL library, 64-bit integers and tweaked compile-time parameters

The version dirac-17-tuned1_mkl-parallel_int64 has been configured for compilation with the following commands:

module load cmake-3.6.1
module load openmpi-2.1.1-intel

./setup --mpi \
        --int64 \
        --mkl=parallel \
        --extra-cxx-flags=-mcmodel=medium \
        --extra-cc-flags=-mcmodel=medium \
        --extra-fc-flags=-mcmodel=medium \
        --prefix=/software/dirac/17-tuned1_mkl-parallel_int64

Currently, this is the only version which is compiled with 64-bit integers.

Before compilation, several source code integral constants have been changed to different values to accomodate needs of one of our users. To find out which integral constants were changed and how, see #Difference between the versions of DIRAC16.

License

Warning.gif WARNING: If you want to be able to use DIRAC in MetaCentrum, you have to read and accept it's license agreement. Please note that academic license of DIRAC prohibits some behaviour, such as commercial computations.

Read and accept DIRAC's license agreement here!

If you'll want to review the exact wording of the license at any time, you can find it at these places:

  • DIRAC18 - license is available in TXT file /software/dirac/18/license.txt
  • DIRAC17 - license is available in PDF file /software/dirac/17/license.pdf
  • DIRAC16 - license is available in TXT file /software/dirac/16/license.txt

They are also available here at wiki; you can view or download the PDF files at following links:

Usage

Upcoming modulesystem change alert!

Due to large number of applications and their versions it is not practical to keep them explicitly listed at our wiki pages. Therefore an upgrade of modulefiles is underway. A feature of this upgrade will be the existence of default module for every application. This default choice does not need version number and it will load some (usually latest) version.

You can test the new version now by adding a line

source /cvmfs/software.metacentrum.cz/modulefiles/5.1.0/loadmodules

to your script before loading a module. Then, you can list all versions of dirac and load default version of dirac as

module avail dirac/ # list available modules
module load dirac   # load (default) module


If you wish to keep up to the current system, it is still possible. Simply list all modules by

module avail dirac

and choose explicit version you want to use.

Preparing environment

dirac-18

 module load dirac-18
 pam-dirac -h

dirac-17

 module load dirac-17
 pam-dirac -h

dirac-17-tuned1

module load dirac-17-tuned1
pam-dirac -h

dirac-16

First, prepare environment using

module load dirac-16

Now you can run DIRAC by invoking the wrapper script pam-dirac, i. e. to print help:

pam-dirac -h

Our installation of DIRAC is compiled with OpenMPI. Because it has been compiled with Intel compilers, it also uses MKL (Math Kernel Library) from Intel. Both OpenMPI and MKL are multithreading-enabled libraries - you should think about limiting the number of concurrent MKL threads by setting the MKL_NUM_THREADS environmental variable. We recommend to read the official documentation thoroughly to get the most performance out of your DIRAC jobs.

dirac-16-newest

If you are using the DIRAC16 version with tweaked compile-time parameters, you need to use

module load dirac-16-newest

to prepare the environment. Then, proceed as usual.

Documentation

You can find documentation at the official website:

Official website

http://diracprogram.org/doku.php