25.2.3 Keyword for the General Memory Specification
Most post-SCF programs (aoforce, ccsdf12, egrad, escf, evib, mpgrad, mpshift, pnoccsd, ricc2, rirpa) in TURBOMOLE read the data group
$maxcor mib per_core
to control the amount of dynamically allocated memory. The integer number (above “500”) one can (optionally) give a SI prefix (kb, mb, gb) or an IEC prefix (kib, mib, gib) to specify the unit. If no unit is specified mib (binary megabytes, i.e. \(1024^2\) bytes) are used.
In addition one can specify a reference for parallel calculations:
- per_proc
-
indicates that the memory is specified per process
- per_node
-
indicates that the memory is specified per computer node, i.e. shared by all processes of the calculation that run on the machine with the same host name
- per_core
-
indicates that the memory is specified per core, i.e. per thread
- total
-
means the specified memory should be divided by all processes and nodes
If not given the specified memory will be used per thread. Note that in release versions before V7.2 the memory was specified per process. For sequential calculations this sub-option has no effect.
If $maxcor is not given 500 MiB per thread will be used as limit for dynamically allocated memory.
Note:
$maxcordefines only the memory controled by the electronic structure code. Additional memory can be allocated by the math and MPI libraries linked into the program and by the operating and I/O systems. It is therefore recommended to set$maxcornot higher than to 75% – 85% of the physical core memory that is available for the calculation.Some programs use additional keywords (
$incore,$ricore,$ricore_slave,$rpacor) to specify limits for dynamically allocated memory for certain tasks.