MolSSI / QCEngine

Quantum chemistry program executor and IO standardizer (QCSchema).
https://molssi.github.io/QCEngine/
BSD 3-Clause "New" or "Revised" License
163 stars 79 forks source link

Add in restart capability to NWChem #330

Closed WardLT closed 2 years ago

WardLT commented 2 years ago

Description

Adds the ability for NWChem computations to be restartable.

If NWChem terminates due to walltime it leaves the scratch directory. This commit gives each computation a repeatably-named output directory, so that the QCEngine will restart from that directory if it still exists.

Changelog description

NWChem can restart if QCEngine is killed

Status

codecov[bot] commented 2 years ago

Codecov Report

Merging #330 (3729e38) into master (dc438bb) will increase coverage by 0.10%. The diff coverage is 92.30%.

loriab commented 2 years ago

Any chance that restart requires a known, small set of files, binary or text, short of the full scratch directory? I fended off (from myself) a plan to record the scratch name in provenance in favor of pulling back useful native files into the AtomicResult. The circumstance you're planning for is qcng dies and there is no AtomicResult?

WardLT commented 2 years ago

I think there is only one file - the NWChem DB - that must be preserved. I'll check on the file sizes to see if it is small enough that we should grab it anyway.

However, the target for here is when an AtomicResult is not returned. The specific use case for these changes is when my HPC allocation is terminated and I just want to start from where I left off. No need to shuttle files between systems. Just letting the compute function end up in the same directory as last time so NWChem can do its magic.