Hi Michael, That would indeed be great. Let us keep in touch, so we don’t do it both :-)
Jakob > On 11 Jan 2019, at 16:19, Micael Oliveira <micael.olive...@mpsd.mpg.de> wrote: > > Hi, > > I'm planning on writing a custom easyblock for ELPA precisely to tackle this > problem, so I guess I'm the person mentioned in Alan's email, although I'm > still not sure I can attend the EasyBuild user meeting. > > My idea was precisely to use the FFTW easyblock as a starting point. > > Best regards, > > Micael > > On 1/11/19 3:34 PM, Kenneth Hoste wrote: >> Dear Jakob, >> I'm not sure there's much EasyBuild can do about this, unless I'm missing >> something. >> You can build using different sets of configuration options in a single >> installation, but I don't think that's of much use here. >> The best solution indeed seems to be to write an easyblock for ELPA that >> checks which CPU capabilities are supported, and then builds ELPA with the >> appropriate configure options. >> We have some of that already in custom easyblocks, see for example the FFTW >> easyblock: >> https://github.com/easybuilders/easybuild-easyblocks/blob/master/easybuild/easyblocks/f/fftw.py#L124 >> . >> This really is beyond what's possible in an easyconfig file, you need custom >> code to deal with this... >> regards, >> Kenneth >> On 11/01/2019 12:48, Jakob Schiøtz wrote: >>> Dear all, >>> >>> I did not get any response to this before Christmas. Does anybody have any >>> ideas that might help me? >>> >>> Best regards >>> >>> Jakob >>> >>>> On 18 Dec 2018, at 15:00, Jakob Schiøtz <schi...@fysik.dtu.dk> wrote: >>>> >>>> Hi, >>>> >>>> I am trying to build the newest version of ELPA (Eigenvalue SoLvers for >>>> Petaflop-Applications, https://elpa.mpcdf.mpg.de/). It looks like ELPA >>>> builds a number of “kernels” that are chosen at runtime depending on the >>>> capabilities of the CPU, for example SSE, AVX, AVX2 or AVX512. >>>> >>>> Unfortunately, with the foss toolchain the compiler refuses to build these >>>> kernels if the CPU does not support them (the Intel toolchain happily >>>> builds them). This means that I have to configure ELPA with >>>> --disable-avx2 or --disable-avx if the CPU does not support these >>>> instructions, and --enable-avx512 if the CPU does support that. >>>> >>>> Is there some way to do this easily in an easyconfig? Maybe a compiler >>>> flag that allows using “AVX2 gcc intrinsics” in the code, without >>>> otherwise turning on AVX2 instructions (as that would cause the rest of >>>> the code to fail if AVX2 is not supported). >>>> >>>> Or do I have to write some complicated stuff into an easyblock? And if I >>>> do the latter, do you know how to portably detect the capabilities of the >>>> CPU? >>>> >>>> It seems somewhat silly that the ELPA configure script tests if these >>>> instructions are supported and fails if one does not manually disable the >>>> unsupported versions instead of just doing the right thing. But that is >>>> beyond my control. >>>> >>>> Best regards >>>> >>>> Jakob >>>> >>>> -- >>>> Jakob Schiøtz, professor, Ph.D. >>>> Department of Physics >>>> Technical University of Denmark >>>> DK-2800 Kongens Lyngby, Denmark >>>> http://www.fysik.dtu.dk/~schiotz/ >>>> >>>> >>>> >>> >>> -- >>> Jakob Schiøtz, professor, Ph.D. >>> Department of Physics >>> Technical University of Denmark >>> DK-2800 Kongens Lyngby, Denmark >>> http://www.fysik.dtu.dk/~schiotz/ >>> >>> >>> -- Jakob Schiøtz, professor, Ph.D. Department of Physics Technical University of Denmark DK-2800 Kongens Lyngby, Denmark http://www.fysik.dtu.dk/~schiotz/