How to run a calculation in separate steps
From Diracwiki
Most of the time there are no problems in executing the three steps in a coupled-cluster calculation with RELCCSD (1. the Hartree-Fock calculation; 2. the transformation from AOs to MOs performed by MOLTRA; 3. the Coupled-Cluster calculations itself).
However, in some cases it is not advantageous to perform all these in one go. This is especially true for calculations that use a lot of memory in the Coupled-Cluster part (say, if the system has little or no symmetry or, in Fock-Space calculations, if the active space is large) but are more economical in the previous steps.
In such cases, it is possible to do one step, save the results necessary for the next calculation, and then run the next step. This can considerably shorten the total wall time spent on a parallel calculation, since a larger number of MPI processes can be started for the SCF (and/or Moltra) step(s) with the same amount of memory per compute node.
Contents |
Overview
Step 1: SCF
From the SCF part, one has to save the DFCOEF file after a successful calculation. If using the 2-component formalism (.IOTC), one can also save the files BSSMAT and DFTMAT (and possibly AOPROPER), in order to skip the generation of the 4-component to 2-component transformation matrices. If your system supports it, may be to keep the same scratch directory and then avoid the copying back and forth of these files.
Currently Dirac's execution script (pam) automatically retrieves these files and places them in a gzipped tar archive, so it is probably not necessary to retrieve the files individually if this archive is kept.
Step 2: MOLTRA
MOLTRA will need the DFCOEF file, and also the one-electron Fock matrix (if the 2-component methods are used and also in the case of an FDE calculation, this will have to be re-generated, so that's why it is not a bad idea to keep the BSSMAT and DFTMAT files around...
The outcome of MOLTRA will be a set of files that start with MDC (MDCINT etc). For SCHEME 4 these files can be considered as 'independent' of the number of processes used in the parallel run (because only one, created by the master, will have information used by other modules like RELCCSD - like number of spinors transformed etc), so it doesn't really matter how the calculation from which they were obtained was performed.
The same is not true for SCHEME 6, because there the information needed by other modules, and then one has to be careful to use the same number of mpi processes in the MOLTRA step and beyond.
Step 3: RELCCSD
RELCCSD will need the MDC* files generated by MOLTRA. One must be careful in the input, however; the keyword .NO4INDEX has to be specified, and the **MOLTRA section must not be present in the input. Again, one must be careful to have the same number of mpi processes as were used for MOLTRA if SCHEME 6 is being used.
A note on Fock-Space Calculations
In the case of Fock-Space calculations, an additional trick can be used: if previous/lower sectors are converged, RELCCSD can be restarted and be made skip them. In order to do that one has to, apart from the actions outined so far, do the following: (a) instead of MAXIT=n, use MAXITk=n (where k denotes the sector: 00, 10, 01, 11, 02, 20) and set to zero all the MAXITab for converged sectors to zero. (b) restart exactly the same calculation as before (in terms of number of nodes etc). It is important to have the intermediate files for RELCCSD present in the scratch directory in this case. The easiest way to do so is to keep the scratch directory from the previous run.
Walk-thru
(hopefully) coming soon!
