CCSD optimization fails with memory error on native Windows nightly build

I recently started using Psi4, but am running into issues trying to use the native Windows build. I’m using the nightly build, because I had the same issue as others where a DLL was not loading correctly on the stable release (I have a Ryzen 3900x, which seemed to be fairly common with people who have this issue).
The nightly build has been running fine, but I was trying to optimize a molecule and could give it more and more memory, and it would still fail.
This is my input:

from psi4 import *
import os

cwd = os.getcwd()
scr = 'scr'
scr = os.path.join(cwd, scr)
try:
	os.mkdir(scr)
except FileExistsError:
	pass
	
psi4_io.set_default_path(scr)

core.clean()

set_output_file('Be5_neutral_CCSD.out')
set_num_threads(1)
set_memory('14GiB')
set_options({'scf_type':'direct'})

neutral = core.Molecule.from_string(open('Be5_neutral.xyz').read())

optimize('CCSD/aug-cc-pVDZ', molecule=neutral)

neutral.save_xyz_file('Be5_neutral_opt.xyz')

And the relevant output:

	DPD File4 Cache Listing:

Cache Label            DPD File symm  pq  rs  use acc clean    pri lock size(kB)
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Total cached:      0.0 kB; MRU =      0; LRU =      1
#LRU deletions =      0; #Low-priority deletions =      0
Core max size:  18446744071562068.0 kB
Core used:            0.0 kB
Core available: 18446744071562068.0 kB
Core cached:          0.0 kB
Locked cached:        0.0 kB
Most recent entry  = 0
Least recent entry = 1
dpd_block_matrix: n = -20123  m = 6670
Error in: dpd_block_matrix: No memory left.

It’s important to note that if I run this through WSL2, the optimization runs without error, so the job itself isn’t flawed, and I am giving it more than enough resources to do the job, however I would prefer to be able to do this with the Windows installation.

Any help is appreciated!

Very odd. Can you provide an output file?

Also, the above is a crazy amount of memory. Perhaps check output for signs that your 14 GiB is correctly set.

Is the trouble in the first or subsequent optimization passes? can switch to gradient() to get only one.

For the record, type conversion is responsible for at least some of the screwy output. For example, that “crazy amount of memory” is printed as a float, despite that the crazy amount of memory is stored as a long int. I can believe that Windows is sensitive to this when Mac/Linux aren’t.

1 Like

So it fails at later stages, not right off the bat. I suspect @jmisiewicz is right with the type conversion. If I change the value of memory I get different crazy numbers. The amount of memory it computes when it first starts is sometimes negative as well. So I don’t believe this is actually contributing to the error, unless internally the conversions are telling the program there really is no memory available. I’ve attached the full output file.Be5_neutral_CCSD.txt (12.9 KB)