-
Notifications
You must be signed in to change notification settings - Fork 3
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
⬆️ UPDATE: Siesta MaX-1.1 #12
Conversation
Update for building MaX-1.1 version.
Changes to support ubuntu-20.04: * Add 'make' package * Clarify that blacs are not explicitly needed for major_version > 16. * Improve siesta tests logic (do not use 'creates')
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot @albgar, I can see this was quite a lot of work!
Just out of curiosity, since we were discussing this previously - have there been any developments on the spack/easybuild/conda front for siesta builds?
For now it's perfectly fine to install packages from source here in the ansible role, but of course this all needs to be maintained, i.e. when the next version of siesta is released, it likely won't be as easy as just increasing the siesta version in the default.yaml
;-)
@chrisjsewell Feel free to merge this or to review as well |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks @albgar, just some nitpicks
@albgar on a related matter that you may be able to help with, I've actually this week created a role for building abinit. |
Newer versions of scalapack have the blacs "built-in". So you just need to install the scalapack-dev (I forgot the exact name) package. |
thanks! ok I'll try that |
Also one last thing, similar to what @ltalirz asked, with the changes to this role, what versions does it now support; only MaX-1.1 or is it e.g. back-compatible to v4.1, and what will potentially be involved to "upgrade" to the next version of siesta. Also in terms of aiida-siesta, I assume the current version of that supports this version of siesta (and since what aiida-siesta version). Perhaps some information like this could be added to the README.md, and also your comment about not supporting the ELSI library etc |
We have currently a number of features in development waiting to be merged, and at the same time we are in the middle of a re-design of the building system for Siesta, so things are in flux. Hopefully, with the new building system in place and a more sedate version evolution, the role can inherit a bit more stability. I have added a few more comments to README.md. |
Thanks again @albgar but one last thing 😬 So when adding the new Abinit role to Quantum Mobile, I found that all the libxc tests were failing when using the apt installed Given that Siesta also uses libxc; edit: we could even consider moving |
This is strange... in the virtual machine I build on focal with my current role the version of libxc-dev is 4.3.4-1 (also stated in https://packages.ubuntu.com/search?keywords=libxc-dev&searchon=names&suite=focal§ion=all), and not 4.0.0 as you seem to imply. Nevertheless, the idea to install libxc explicitly is good, as we would have full control over it. |
Yep that was the idea; to keep it modular. I note the link you provide only shows Ubuntu 20.04, perhaps for Ubuntu 18.04 (i.e. as currently used by QM) it is not as up-to-date? |
Yep indeed it's a different version for 18.04: https://packages.ubuntu.com/search?keywords=libxc-dev&searchon=names§ion=all I do want to move QM to 20.04 eventually, but not quite there with all codes just yet! |
Modifications to take advantage of the new libxc role.
I have implemented a mechanism to use the libxc role if the distribution's libxc-dev package is not up to standard. So in this sense I am using the libxc role as a "subroutine". However, a few things would need to be improved to make this more robust (some probably reflect my limited ansible skills):
Regarding the installation path, I see it as a welcome development that you are using sub-directories in /usr/local. Could everybody else do so? It would be good to have things in /usr/local/siesta-x.y.z, for example, in case we want to install different versions. Actually, support for modules (of the lmod kind) might be good too. |
The CI checks fail because the libxc role cannot be found. How do I fix this? |
If you have a look on the abinit role's molecule folder, you can see ho I do it there: look at the molecule.yml and requirements.yml |
Yes I must admit, I'm not an expert in the use of shared libraries.
Obviously the drawback is that the executables will not then be in the But yes I could see lmod as useful for the more general use of these roles. Perhaps using something like https://github.com/idiv-biodiversity/ansible-role-lmod (this only supports redhat though) |
This avoids the manual preparation of a 'pre-configured' tarball, but an extra step of 'autoreconf -i' is needed before building.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for all the work!
The updated role builds and deploys version 'MaX-1.1' of Siesta (with support for pseudopotentials in PSML format, and for Lua scripting, among other improvements). It does not build support for the ELSI library as this is more of a performance feature.
siesta_executables
variable.