jarvist/Quante.jl

port to julia 1.0?

mszep opened this issue · 11 comments

mszep commented

Hi!

I had recently embarked on the task of porting pyquante.jl to julia 1.0, and I had it working, except for running into the energy error bug which it looks like you managed to solve... I like what you've done with the package structure, so would you accept a PR that implements the changes needed to get the code running on Julia 1.0?

Certainly!
I did some work on taking it to 1.0, but decided to keep on a 0.6/0.7 compatible version so I could register a working package for this generation of Julia: c82fe4f
1.0 compatibility is absolutely the next priority to add, so a PR would be very much appreciated.

mszep commented

Okay cool.. It's not a lot of work but I'm not doing electronic structure full time anymore so it might be a while before I get to it next 😊

I noticed your last update was fairly recent, are you using this code in your research or is it more of a side project?

Every thing is a side project, until it suddenly finds its way into a paper!
In research I'm mainly tight-binding and path-integrating at the moment. It would be nice to have a fully Julian way of getting overlap integrals.

I found my previous work! Doesn't look like there is too much left to get it compatible.
I need to do some reading around for @distributed on 1.0 vs. the old @parallel.

OK; here's what I've done. It passes tests on a single core with Julia 1.0 and 0.7.
77f91d6

Multicore @distributed is still broken; I don't understand why.

mszep commented

Yup, from memory those are almost exactly the changes I made (except for the distributed stuff of course).

From my side, I'm interested in CI methods, so I might spend some time implementing those over the weekend.

mszep commented

All tests pass on my machine as well now, with 1.0 :-)

I guess one thing to fix before this issue can be closed is to change .travis.yml to no longer test on 0.6 (which fails now)?

Also, for the brokenness of @distributed, what should I be seeing? It seems that the function rhf calls all_1e_ints and all_2e_ints (i.e. not the *_singlecore versions) so does that not mean that @distributed is working?

@distributed:
It may just be due to the way I've instaniated the package (I'm not at all used to the new package manager...), but I find that running under julia with multiple processes (i.e. julia-1.0.0 -p auto) crashes out with LoadErrors when it hits the @distributed bits.

.travis.yml: good point!

Some CI / stochasitic-CI would be great! Julia should be very nice to write something like the Tensor Contraction Engine to do CC and MP families of methods, with the dot syntax you should be able to get some fairly efficient code quite easily.

However, real use is a bit stymied by the (relatively) slow 2e integrals.

mszep commented

Ah yes, I get the same error. I think I've read about this type of issue in the docs somewhere, but I can't remember well enough to be able to point to anything useful :-)

OK; mini correction to .travis.xml as suggested. ac444dc

If this checks out OK, I think I'll push out a 1.0 compatible release + close this issue with it, and then make the @distributed error a new issue.

Would certainly welcome issues with CI / etc. suggestions. I think it would be a good idea to think about how to clean up the code, currently it's been mainly reorganised from Rick Muller's original. A lot could be done with structs to make the signatures of the functions cleaner.

OK; tests check out, released a new version v0.1.0 https://github.com/jarvist/Quante.jl/releases/tag/v0.1.0