ADC(2) fails with libvmm::bad_vm_state

i’m having some troubles running ADC(2) on a mid-size system (33 atoms) with a small basis (def2-svp, 309 functions)

The calculation fails at Davidson stage

--------------------------------------------------------------------------------
  Starting Davidson for excited states of irrep A ...
--------------------------------------------------------------------------------
   It NVec Conv  Avg. Norm  Max. Norm  Conv. states           Remark
--------------------------------------------------------------------------------
        20    0  1.356e-01  6.846e-01  0.2862 n n n n n n n n Guess.
    1   40    0  5.366e-02  5.367e-01  0.1336 n n n n n n n n
    2   60    0  1.929e-02  2.419e-01  0.1242 n n n n n n n n

with the following error:

terminate called after throwing an instance of 'libvmm::bad_vm_state'
  what():  libvmm::fsm_event_handler<STATE_LOCKED_CLEAN>::handle(), /scratch/somepath/qc541/qchem/libvmm/libvmm/evmm/fsm/h_locked.h (17), bad_vm_state
unhandled_event
/vast/anotherpath/Q-Chem/5.4-openmp/bin/qchem: line 126: 3861598 Aborted                 (core dumped) ${QCPROG_S} ${inp} ${scr}
Error in Q-Chem run part 1 
Error in the Q-Chem run

here’s my rem:

$rem
    JOBTYPE            sp
    METHOD             adc(2)
    BASIS              def2-svp
    UNRESTRICTED       True
    SYMMETRY           False
    SYM_IGNORE         True
    SCF_ALGORITHM      diis
    SCF_MAX_CYCLES     1000
    SCF_CONVERGENCE    8
    THRESH             14
    MEM_TOTAL          64000
    SOLVENT_METHOD     SMD
    EE_STATES          20
    STATE_ANALYSIS     True
    ADC_PROP_TPA       True
$end


$solvent
 solvent water
$end

libvmm seems to be an internal library of qchem (or at least the googlable libvmm doesn’t seem to be related), so I can only guess that the system doesn’t like something about some of the virtual states? I’m new to ADC, so if there’s something I should pay attention to, please let me know.

or if VM stands for virtual memory, does it mean it needs more mem_static or mem_total?

Could you please post your full input file here using preformatted text option (</>) or send both the input and output to Q-Chem Support, so we can have a look? Thank you.

Please provide a complete input file, including $molecule. Often this kind of error indicates inadequate memory. (For a very small molecule, this input file runs fine.)

sent over the email

With Q-Chem v. 6.2.2 and memory settings

mem_static 8000
mem_total 210000

this job runs to completion on 26 cores, in 780 s.

wow, thanks!

did you just do trial & error or do you have some heuristic on how much memory should be given?

I just gave it a lot, but also reduced the number of threads as the memory required probably scales with no. of threads.

do you mind sharing how many threads did you assign? I tried w/ 1 thread per core and got OOM

26 threads. In SLURM,

#SBATCH --nodes=1
#SBATCH --ntasks-per-node=26

and then

qchem -nt 26 $JOBNAME.in $JOBNAME.out

This is on a node with 104 processors and 640 Gb memory.

is there a reason why 6.2.2 would be way more efficient at this than 5.4.1? (release notes don’t mention speedups in adc man)

I submitted with the same memory (210G total, 8 G static) and 26 threads for just 5 states and it’s been running for 52 minutes at this point (which is 4x your runtime).

I’m running a single H2O for my $molecule because you never provided yours.

sorry, i assumed you had access to the qchem support email. it makes much more sense then, I’ll just keep this running for awhile. thanks for the prompt responses!