Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Selecting the Correct Gaussian Module

Version

Cluster

gaussian/16.AVX2.b01

beartooth, teton

This module is compiled for AVX2 compatible nodes - which can only be used on the partition=teton nodes on Teton.

gaussian/16.AVX.b01

teton

This module is compiled for AVX compatible nodes - which can be used across all nodes on Teton.

gaussian/103

teton

This module provides access to the Gaussian 09 Chemistry software.

Read Advanced Vector Extensions for an introduction to the difference between AVX and AVX2.

...

  • The amount of memory you require is a bit of a dark-art and will depend on your input files and number of cores requested, so this does take an element of experimenting and analysis.

  • The freqmem utility takes parameters for a frequency calculation and determines the amount of memory required to complete all steps in one pass for maximum efficiency. Use this to approximate memory requirements.

  • According to the Gaussian 16 Rev. C.01 Release Notes under the Parallel Perf. tab: The memory allocation section recommends setting %mem to half the total memory you allocate for your job. Or, in other words, once you've approximated your memory needs for gaussian, then within the batch script request twice as much.

Potential Issues

galloc: could not allocate memory.: Cannot allocate memory

If you get an error of the form:

Expand
titlegalloc: could not allocate memory
Code Block
galloc:  could not allocate memory.: Cannot allocate memory
Error: segmentation violation
   rax 0000000000000000, rbx 000000000154c549, rcx 0000153fedae555b
   rdx 0000000000000000, rsp 00007ffcb75b39a8, rbp 000000000560d380
   rsi 000000000000000b, rdi 0000000000184ae6, r8  0000153fede83860
   r9  0000153fee645940, r10 0000000000000008, r11 0000000000000202
   r12 00007ffcb75b3a70, r13 00000000213a2f80, r14 0000000004612650
   r15 0000000004612650
  /lib64/libpthread.so.0(+0x12cf0) [0x153fee21bcf0]
  /lib64/libc.so.6(kill+0xb) [0x153fedae555b]
  /apps/u/opt/linux/gaussian/16-b.01/AVX2/g16/l101.exe() [0x4a4699]
  /apps/u/opt/linux/gaussian/16-b.01/AVX2/g16/l101.exe() [0x4a539a]
  /apps/u/opt/linux/gaussian/16-b.01/AVX2/g16/l101.exe() [0x4a516e]
  /apps/u/opt/linux/gaussian/16-b.01/AVX2/g16/l101.exe() [0x4e38ea]

Then you need to increase the amount of memory you are requesting.

Either increase the mem-per-cpu or mem values you are definining.

If the amount is over 120G we’d recommend moving from the teton partition to the teton-cascade which can provide up to 760G on some of the compute nodes.

Error: illegal instruction, illegal opcode - Check module and selected partition

If you get an error of the form below:

py
Code Block
language
Expand
titleError: illegal instruction, illegal opcode
Code Block
Error: illegal instruction, illegal opcode
   rax 00000000000007c1, rbx 00000000000007c9, rcx 00007ffd70e117d0
   rdx 000000000396ddc0, rsp 00007ffd70e116a0, rbp 00007ffd70e116a0
   rsi 00000000038e6100, rdi 0000000000000000, r8  00000000038cbf70
   r9  00000000038cbf70, r10 00007ffd70e117d0, r11 000000000396ddc0
   r12 00007ffd70e1d980, r13 00000000038c4e88, r14 00007ffd70e117d0
   r15 000000000396ddc0
  /lib64/libpthread.so.0(+0xf5e0) [0x2abf903875e0]
  /apps/u/opt/gaussian16-b.01/AVX2/g16/l1.exe() [0x49095f]
  /apps/u/opt/gaussian16-b.01/AVX2/g16/l1.exe() [0x490b48]
  /apps/u/opt/gaussian16-b.01/AVX2/g16/l1.exe() [0x40ef9d]
  /apps/u/opt/gaussian16-b.01/AVX2/g16/l1.exe() [0x40b6d4]
  /apps/u/opt/gaussian16-b.01/AVX2/g16/l1.exe() [0x40b137]
  /apps/u/opt/gaussian16-b.01/AVX2/g16/l1.exe() [0x40b084]
  /lib64/libc.so.6(__libc_start_main+0xf5) [0x2abf908b7c05]
  /apps/u/opt/gaussian16-b.01/AVX2/g16/l1.exe() [0x4057f9]

Then you have likely loaded the AVX2 module but have not explicitly requested to use the Teton partition.
Add #SBATCH --partition=teton or teton to -cascade to your slurm related script.

...