New semidirect MP2 properties/gradient code was developed to speed up MP2 gradient and related
jobs, to seriously reduce memory demands and to allow efficient parallel
execution. It is based on FASTINTS code and runs in parallel using P2P
interface. It has very modest memory demands, namely, asymptotically they are
proportional to Nocc ∙( Nocc + Ncore) ∙Nvir,
where Nocc is the number of active (not counting frozen core) occupied
orbitals, Ncore is the number of frozen core occupied orbitals, and Nvir
is the number of virtual orbitals. Intrinsically, it is very fast and has very
good parallel scalability, with most of the memory demands reducing linearly
with the number of used computing nodes. At present, it is limited to RMP2 case only, but will be extended for ZAPT2 in the future.
New MP2 gradient code uses disk I/O and (large) temporary files to store half-transformed 2-electron integrals (file DASORT) and non-separable part of MP2 2-particle density matrix (DM2, stored in file DAFL30 by gradient runs only) and thus can be disk I/O intensive. When running in parallel, the contents of these files is evenly distributed across all nodes. If one is running this code in parallel on SMP or multicore system, it is recommended to assign a separate physical disk to each of the parallel PC GAMESS/Firefly processes.
Note, the exact amount of disk space required to store files DASORT and DAFL30 cannot be predicted exactly because of two reasons. First, the PC GAMESS/Firefly uses sparsity of half-transformed integrals and DM2 to save disk space by storing only non-zero values. Second, half-transformed integrals, DM2 elements as well as their labels are further packed, and it is impossible to predict the exact packing ratio. However, it is possible to provide upper bounds on the overall maximum sizes of DASORT and DAFL30. Note, these bounds usually seriously overestimate the real size of these files!
Namely, the overall size of all DASORT files is less or equal than:
Similarly, the overall size of all DAFL30 files is less or equal than:
Here, Nocc is the number of active occupied orbitals (i.e., excluding frozen core orbitals), Nvirt is the number of virtual orbitals, and Nao is the number of Cartesian atomic orbitals.
The new code is controlled by two keywords of the $MP2 group and by several additional keywords of $MP2GRD
group. New code is triggered on by the presence of METHOD=1 keyword in $MP2
group and its behavior is further controlled by either
The fine tuning of the new
properties/gradient module is possible via the following keywords of the
Below is the recommended part of the input file to be used with the new MP2 gradient code:
$contrl inttyp=hondo $end $p2p p2p=.t. dlb=.t. xdlb=.t. $end $smp csmtx=.t. $end $mp2 method=1 $end
Depending on your Operating System (e.g., under some Windows systems), the use of the following addition options:
$system splitf=.t./.f. $end (large file splitting enabled/disabled)
$system ioflgs(30)=1 $end (activate file cache write through mode for unit # 30 which contains DM2 elements)
may have serious positive or negative impact on the overall performance as well.
The following set of parameters of the new MP2 gradient code seems to be optimal in
the case you are running large problems in parallel on Linux-based SMP or multicore system
which do not have a separate physical disks for each instance of the parallel PC GAMESS/Firefly
processes (as recommended above).
$system splitf=.f. $end $system ioflgs(30)=0 $end $mp2grd dblbf=0 fused=0 asysnc=1 $end
Firefly v. 7.1.E and above specific I/O options.
The following set of additional I/O parameters of the new MP2 gradient code seems to be optimal for large-scale jobs running under Windows Vista and Windows Server 2008 R1.
$mp2 ioflgs(1)=65536,65536 ioflgs(3)=65536,65536 $end
Basically, these settings turn on direct unbuffered disk I/O for files DASORT and DICTNRY and disable standard buffered disk reads and writes.
The following set of additional parameters (one can use even tighter values)
is a MUST in the case of the partial linear dependence of the AO basis set.
$contrl icut=11 inttyp=hondo $end $scf nconv=7 $end $mp2grd tol1=1d-12 tol2=1d-12 $end
See also description of CPTOL and MXCPIT options in documentation on older PC GAMESS versions.
Last updated: March 18, 2009