Add custom easyblock for ELPA#1621
Add custom easyblock for ELPA#1621boegel merged 29 commits intoeasybuilders:developfrom micaeljtoliveira:elpa
Conversation
|
@micaeljtoliveira Can you open a merge request for an easyconfig that uses this? Regarding updating existing easyconfigs, you don't necessarily have to update existing ones, you can just create a PR for the latest version with this |
…for mpi and opemnp (serial, openmp, mpi, openmp+mpi).
|
@boegel @ocaisa: As discussed last week, ideally the framework should be changed so that it is possible to iterate over a list of toolchain options just like we do for |
|
I like very much the idea of having an easyblock for ELPA. I also think it makes sense to keep those options as ELPA options, and not rely on @micaeljtoliveira what about GPU support? |
|
@damianam GPU support would be great, but I don't have the expertise nor time to implement it. But I would be very happy if some one wants to have a go at it. @boegel Any chance of having this PR accepted soon? I know it's not ideal, having the serial version of ELPA compiled with MPI toolchain option, but it's still a clear improvement over the current situation. |
|
@micaeljtoliveira A couple of issues were reporting on the mailing list with the proposed ELPA easyblock, see https://lists.ugent.be/wws/arc/easybuild/2019-04/msg00018.html and https://lists.ugent.be/wws/arc/easybuild/2019-04/msg00014.html . Can you look into those? Do shout if you need help... From @ocaisa's remark, I understand that there's no longer a need to be able to iterate over a list of |
|
@boegel I've seen the emails. Fixing the AVX issue should be trivial if indeed it only requires changing
Not quite, unfortunately. If I understood correctly, there might be a problem with some toolchains when building a serial application with the mpi compiler wrappers. This will be the case when using the |
|
We should preferably get this either merged or rejected before 3.9.1. |
|
@akesandgren I think this needs support for iterating of a list of toolchain options, so we can have On the other hand, I'm not sure that's actually needed at all... @micaeljtoliveira Can you shed some light on this? |
|
@akesandgren @boegel The original idea was to build and install all the different flavors of the library (serial, MPI, OpenMP, MPI+OpenMP) with just one easyconfig, in a somehow similar way to what is done for FFTW. Unfortunately the way how ELPA is compiled would require to iterate over toolchain options, as mentioned by @boegel, which is currently not supported. I think the best is to simplify things so that this can be merged. I will remove the iteration over |
|
@boegel :
No problem, I will add the check back. I'm still learning about the preferred/best way of doing things in EasyBuild, so you need to have a little patience ;) |
…proper linalg library depending if MPI is used or not.
|
@micaeljtoliveira One thing that confuses me a bit is that the current |
@boegel The naming convention used by ELPA is somewhat confusing: the |
| """ | ||
|
|
||
| # make all builds verbose | ||
| self.cfg.update('preconfigopts', 'autoreconf &&') |
There was a problem hiding this comment.
@micaeljtoliveira How is this related to making the build verbose exactly?
Also, should we try and avoid picking up autoreconf from the OS here (i.e. requiring that Autotools is listed as a build dep)?
There was a problem hiding this comment.
@boegel Ups, copy-paste strikes again. I'll fix it.
There was a problem hiding this comment.
@boegel This prompted me to look if the call to autoreconf was really necessary. After a couple of tests, it seems not. Maybe it was at some point in some of the older easyconfigs, but AFAICS that's not the case anymore.
boegel
left a comment
There was a problem hiding this comment.
Re-tested with easybuilders/easybuild-easyconfigs#8360, lgtm, so going in.
Thanks a lot for your work and patience on this @micaeljtoliveira!
Tested on both x86_64 and ppc, and seems to select the appropriate configuration flags depending on the type of CPU and available features. I also added a few other custom options.
The only thing I'm not really sure about is if we should compile with and without MPI and install both versions of the library, as this is supported by ELPA. This should not be very difficult to implement.
Also, once this is in the corresponding easyconfigs will have to be updated. What is the usual procedure for that?