Open q-posev opened 1 year ago
Thanks for the informative report. I hope to have a chance to look into it soon. There's some checking that the program harnesses follow task_config, but you're right that probably no one has checked opt procedures. fwiw, I'm more concerned if psi4 isn't using the 8 threads than if the optimizers aren't. Thanks again.
Thanks for looking into this. I can help too, but might need some initial pointers to the possible sources of errors as I am not yet familiar with the QCEngine code base.
fwiw, I'm more concerned if psi4 isn't using the 8 threads than if the optimizers aren't. Thanks again.
I can confirm that the issue with the wrong number of threads is propagated to Psi4. It can be seen by monitoring the CPU usage (e.g. with htop
) during the execution of the code that I provided. But I first discovered it by printing the Psi4 output via stdout
field.
OK, a brief update on my side:
optking
: I had to add add extras={"psiapi": True}
to QCInputSpecification
object. This looks hacky and I assume that the optking
harness can be fixed to avoid that.berny
: I had to modify the source code. BernyProcedure.compute
method receives config
as an argument but never uses it internally. I will submit a PR.Thanks for the berny fix. I've solved the optking more generally (see linked PR 87), but that undoes some deliberate settings, so that's a longer-running issue. Thanks again for bringing up this issue -- we'll have to make it into a test case.
Cool, thank you too!
Describe the bug
I noticed a discrepancy in the number of threads used by the QChem code (Psi4) during geometry optimization with 3 optimizers:
pyberny
,geometric
,optking
initiated viacompute_procedure
.geometric
correctly picks up the number of threads (8 in the example below) specified viatask_config
(ncores
key) argument ofcompute_procedure
(same hold for thememory
key)berny
assigns 6 threads in this example (a wild guess: I have 12 cores on my machine, so 6=12/2 makes sense..)optking
goes for the serial executionFor example, running the code from the next section, the output can be the following:
To Reproduce
Expected behavior
I expect the
nthreads
field of theprovenance
to be 8 for all aforementoned cases.Additional context
psi4
channelpsi4
channelpsi4
channelpsi4
channel