Description
This keyword specifies the default amount of cache per processor to use with various cache-blocking algorithms (in 8-byte words). Setting this value appropriately will maximize the efficiency of relevant algorithms by matching the batch size to the available cache.
Typically, this keyword is used in Default.Route files. You can use the testrt utility to determine the default value for the Gaussian binary installed on the current system. On Linux and most other UNIX-based systems, the cachesize script can be used to determine the optimal value for this parameter (see the examples).
When Gaussian 16 binaries are built, this value is set correctly for the current version of the various CPU types, but it may need to be modified for chips released later which might use a different cache-size or inter-core cache sharing scheme. If you build Gaussian 16 from source code, this value corresponds to the hardware on the system where the compile takes place.
Examples
The following testrt command output lists the value for the Gaussian 16 binaries:
$ testrt sp Revision: EM64M-G16RevA.02 9-Aug-2016 NErtGn=1000 NextEG=955 MaxAtm=250000 MDCach=131072 Remainder of testrt output …
The value of 131,072 corresponds to 128K working precision words, or 1 MB. This Mac OS X system has a quad-core 64-bit Intel processor with 6 MB of Level 3 cache. A reasonable value for cache use is 50% of the available cache, so a value of 0.75 MB/core would be a reasonable (50% of 1.5 MB): CacheSize=98304 (value is in 8-byte words).
On Linux systems, the cache size is recorded in /proc/cpuinfo. The cachesize script in the $g16root/g16/bsd subdirectory will display the total cache size:
$ $g16root/g16/bsd/cachesize 524288 bytes
This indicates that there is 512 KB of cache on this ancient dual-core system. In this case, due to the age of this computer, the per-processor cache size is reported. Giving any parameter to this script will display the CacheSize keyword to use:
$ $g16root/g16/bsd/cachesize 1
CacheSize=32768
This will use 0.25 MB of cache per core.
This keyword specifies the default amount of cache per processor to use with various cache-blocking algorithms (in 8-byte words). Setting this value appropriately will maximize the efficiency of relevant algorithms by matching the batch size to the available cache.
Typically, this keyword is used in Default.Route files. You can use the testrt utility to determine the default value for the Gaussian binary installed on the current system. On Linux and most other UNIX-based systems, the cachesize script can be used to determine the optimal value for this parameter (see the examples).
When Gaussian 16 binaries are built, this value is set correctly for the current version of the various CPU types, but it may need to be modified for chips released later which might use a different cache-size or inter-core cache sharing scheme. If you build Gaussian 16 from source code, this value corresponds to the hardware on the system where the compile takes place.
The following testrt command output lists the value for the Gaussian 16 binaries:
$ testrt sp Revision: EM64M-G16RevA.02 9-Aug-2016 NErtGn=1000 NextEG=955 MaxAtm=250000 MDCach=131072 Remainder of testrt output …
The value of 131,072 corresponds to 128K working precision words, or 1 MB. This Mac OS X system has a quad-core 64-bit Intel processor with 6 MB of Level 3 cache. A reasonable value for cache use is 50% of the available cache, so a value of 0.75 MB/core would be a reasonable (50% of 1.5 MB): CacheSize=98304 (value is in 8-byte words).
On Linux systems, the cache size is recorded in /proc/cpuinfo. The cachesize script in the $g16root/g16/bsd subdirectory will display the total cache size:
$ $g16root/g16/bsd/cachesize 524288 bytes
This indicates that there is 512 KB of cache on this ancient dual-core system. In this case, due to the age of this computer, the per-processor cache size is reported. Giving any parameter to this script will display the CacheSize keyword to use:
$ $g16root/g16/bsd/cachesize 1
CacheSize=32768
This will use 0.25 MB of cache per core.
Last updated on: 05 January 2017. [G16 Rev. C.01]