For MKL, the i8 toolchainoption selects the ilp64 variants of the libraries [1, 2]
We can easily make OpenBLAS also build a library with 8 byte integers with e.g. buildopts = ['', 'INTERFACE64=1'] in the easyconfigs, and a small change in the easyblock to pass this option to testopts and installopts, and eventually rename and check libraries.
(FlexiBLAS also supports this, with INTEGER8=ON, and in that case adds the 64 suffix to the command and library names)
There is also the option of adding a suffix to the symbol names (e.g., SYMBOLSUFFIX=64_ in OpenBLAS), but in that case the behaviour would be different to MKL and the application would need to be aware of that (e.g. [3, 4])
I think this will also be useful in order to build Julia from source, at least with the same defaults as upstream
But we do need to choose a convention for the library names and eventually symbol suffixes and stick to it
thoughts?
[1] https://github.com/easybuilders/easybuild-framework/blob/712f9d293235d19f34d0aeb109a0837ae03129dd/easybuild/toolchains/linalg/intelmkl.py#L136
[2] https://github.com/easybuilders/easybuild-framework/blob/b64c4969b28bd11c29bfabed82ee1a1a4b22d327/easybuild/toolchains/fft/intelfftw.py#L58)
[3] https://numpy.org/devdocs/user/building.html#bit-blas-and-lapack
[4] https://scipy.github.io/devdocs/building/#reference-for-build-options
For MKL, the
i8toolchainoption selects theilp64variants of the libraries [1, 2]We can easily make OpenBLAS also build a library with 8 byte integers with e.g.
buildopts = ['', 'INTERFACE64=1']in the easyconfigs, and a small change in the easyblock to pass this option totestoptsandinstallopts, and eventually rename and check libraries.(FlexiBLAS also supports this, with
INTEGER8=ON, and in that case adds the64suffix to the command and library names)There is also the option of adding a suffix to the symbol names (e.g.,
SYMBOLSUFFIX=64_in OpenBLAS), but in that case the behaviour would be different to MKL and the application would need to be aware of that (e.g. [3, 4])I think this will also be useful in order to build Julia from source, at least with the same defaults as upstream
But we do need to choose a convention for the library names and eventually symbol suffixes and stick to it
thoughts?
[1] https://github.com/easybuilders/easybuild-framework/blob/712f9d293235d19f34d0aeb109a0837ae03129dd/easybuild/toolchains/linalg/intelmkl.py#L136
[2] https://github.com/easybuilders/easybuild-framework/blob/b64c4969b28bd11c29bfabed82ee1a1a4b22d327/easybuild/toolchains/fft/intelfftw.py#L58)
[3] https://numpy.org/devdocs/user/building.html#bit-blas-and-lapack
[4] https://scipy.github.io/devdocs/building/#reference-for-build-options