Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

separable benchmarking capability #12

Open
solomonik opened this issue Jan 11, 2016 · 7 comments
Open

separable benchmarking capability #12

solomonik opened this issue Jan 11, 2016 · 7 comments

Comments

@solomonik
Copy link
Collaborator

It would be convenient and would save many cpu hours to have unit benchmarks for integrals, SCF, and CCSD/T/Q.

@devinamatthews
Copy link
Owner

For CC at least, I just added the fakemoints task:

fakemoints
{
    noa = ...,
    nob = ..., #optional, defaults to noa
    nva = ...,
    nvb = ... #optional, defaults to nva
},
ccsd ...

@solomonik
Copy link
Collaborator Author

Thanks, should noa and nva be set to #electrons and #orbitals generally?

Also, just in case anyone uses this for reference, I think it should be

fakemoints
{
noa ...,
nob ..., #optional, defaults to noa
nva ...,
nvb ... #optional, defaults to nva
},

Would be great to have something similar for 1e/2eints.

@devinamatthews
Copy link
Owner

{nelec, mult, norb} would also work as a specification; the conversion is noa = (nelec+mult)/2, nob = (nelec-mult+1)/2, nva = norb-noa, nvb = norb-nob (but nelec and mult have to have the same parity). And yes I should not have put the "=" in there...

The problem with the 1e/2e ints is the sparsity. Real molecules have a very inhomogeneous sparsity, and also the coulomb operator is positive semi-definite which is taken into account in many algorithms. Since these things affect timings they have to be handled carefully.

@solomonik
Copy link
Collaborator Author

Ok, I see. I started changing the test/water_clusters/make_input.py script to have an option to use fakemoints, but I've realized I don't know how to determine norb there, to do it generally it seems one needs to parse the basis file. Also, what is mult? Would it be possible to automate this determination? Seems like it would be easier to figure out n{o,v}{a,b} once AQ is running and has parsed the basis.

@devinamatthews
Copy link
Owner

mult = multiplicity: 1 = singlet (noa=nob), 2 = doublet (noa=nob+1), 3 = triplet, etc. For norb, you can either hard-code how many basis functions for H, O, etc. in a few basis sets, or I could just make fakemoints optionally read from a molecule task.

@solomonik
Copy link
Collaborator Author

I would prefer not to hardcode anything if it is not too hard to do
generally. Seems perfectly plausible that it would at some point be
desirable to benchmark without aomoints a non-pure-water system or a large
range of basis sets. Let me know if you can augment fakemoints or if I
should hack the water generator script, which I think would also take some
time to get right.

Thanks,
Edgar

On Mon, Jul 4, 2016 at 5:06 PM, Devin Matthews [email protected]
wrote:

mult = multiplicity: 1 = singlet (noa=nob), 2 = doublet (noa=nob+1), 3 =
triplet, etc. For norb, you can either hard-code how many basis functions
for H, O, etc. in a few basis sets, or I could just make fakemoints
optionally read from a molecule task.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#12 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/ACPc9n2Tj_8RT_8VAM_9p3IlYHVHFFczks5qSSFqgaJpZM4HCagV
.

@devinamatthews
Copy link
Owner

I'll augment fakemoints.

On 7/4/16 10:18 AM, Edgar Solomonik wrote:

I would prefer not to hardcode anything if it is not too hard to do
generally. Seems perfectly plausible that it would at some point be
desirable to benchmark without aomoints a non-pure-water system or a large
range of basis sets. Let me know if you can augment fakemoints or if I
should hack the water generator script, which I think would also take some
time to get right.

Thanks,
Edgar

On Mon, Jul 4, 2016 at 5:06 PM, Devin Matthews [email protected]
wrote:

mult = multiplicity: 1 = singlet (noa=nob), 2 = doublet (noa=nob+1), 3 =
triplet, etc. For norb, you can either hard-code how many basis
functions
for H, O, etc. in a few basis sets, or I could just make fakemoints
optionally read from a molecule task.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub

#12 (comment),
or mute the thread

https://github.com/notifications/unsubscribe/ACPc9n2Tj_8RT_8VAM_9p3IlYHVHFFczks5qSSFqgaJpZM4HCagV
.


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
#12 (comment),
or mute the thread
https://github.com/notifications/unsubscribe/AFAMoUEf7MtKCksaaRcm6BpkrDiAHZGSks5qSSRJgaJpZM4HCagV.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants