Skip to content

Commit 850b7fd

Browse files
authored
Merge pull request #4379 from smoors/20231110135614_new_pr_bwklaNNTzT
fix `LIBBLAS_MT` for FlexiBLAS, ensure `-lpthread` is included
2 parents 7195525 + 046fe23 commit 850b7fd

File tree

21 files changed

+600
-3
lines changed

21 files changed

+600
-3
lines changed

easybuild/toolchains/linalg/flexiblas.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ class FlexiBLAS(LinAlg):
7070
"""
7171
BLAS_MODULE_NAME = ['FlexiBLAS']
7272
BLAS_LIB = ['flexiblas']
73+
BLAS_LIB_MT = ['flexiblas']
7374
BLAS_INCLUDE_DIR = [os.path.join('include', 'flexiblas')]
7475
BLAS_FAMILY = TC_CONSTANT_FLEXIBLAS
7576

test/framework/modules.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454

5555

5656
# number of modules included for testing purposes
57-
TEST_MODULES_COUNT = 92
57+
TEST_MODULES_COUNT = 110
5858

5959

6060
class ModulesTest(EnhancedTestCase):
@@ -197,12 +197,12 @@ def test_avail(self):
197197

198198
# test modules include 3 GCC modules and one GCCcore module
199199
ms = self.modtool.available('GCC')
200-
expected = ['GCC/4.6.3', 'GCC/4.6.4', 'GCC/6.4.0-2.28', 'GCC/7.3.0-2.30']
200+
expected = ['GCC/12.3.0', 'GCC/4.6.3', 'GCC/4.6.4', 'GCC/6.4.0-2.28', 'GCC/7.3.0-2.30']
201201
# Tcl-only modules tool does an exact match on module name, Lmod & Tcl/C do prefix matching
202202
# EnvironmentModules is a subclass of EnvironmentModulesTcl, but Modules 4+ behaves similarly to Tcl/C impl.,
203203
# so also append GCCcore/6.2.0 if we are an instance of EnvironmentModules
204204
if not isinstance(self.modtool, EnvironmentModulesTcl) or isinstance(self.modtool, EnvironmentModules):
205-
expected.append('GCCcore/6.2.0')
205+
expected.extend(['GCCcore/12.3.0', 'GCCcore/6.2.0'])
206206
self.assertEqual(ms, expected)
207207

208208
# test modules include one GCC/4.6.3 module
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
8+
in one or more dimensions, of arbitrary input size, and of both real and complex data.
9+
10+
11+
More information
12+
================
13+
- Homepage: https://www.fftw.org
14+
}
15+
}
16+
17+
module-whatis {Description: FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
18+
in one or more dimensions, of arbitrary input size, and of both real and complex data.}
19+
module-whatis {Homepage: https://www.fftw.org}
20+
module-whatis {URL: https://www.fftw.org}
21+
22+
set root /prefix/software/FFTW.MPI/3.3.10-gompi-2023a
23+
24+
conflict FFTW.MPI
25+
26+
if { ![ is-loaded gompi/2023a ] } {
27+
module load gompi/2023a
28+
}
29+
30+
if { ![ is-loaded FFTW/3.3.10-GCC-12.3.0 ] } {
31+
module load FFTW/3.3.10-GCC-12.3.0
32+
}
33+
34+
prepend-path CMAKE_PREFIX_PATH $root
35+
prepend-path CPATH $root/include
36+
prepend-path LD_LIBRARY_PATH $root/lib
37+
prepend-path LIBRARY_PATH $root/lib
38+
setenv EBROOTFFTWMPI "$root"
39+
setenv EBVERSIONFFTWMPI "3.3.10"
40+
setenv EBDEVELFFTWMPI "$root/easybuild/FFTW.MPI-3.3.10-gompi-2023a-easybuild-devel"
41+
42+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
8+
in one or more dimensions, of arbitrary input size, and of both real and complex data.
9+
10+
11+
More information
12+
================
13+
- Homepage: https://www.fftw.org
14+
}
15+
}
16+
17+
module-whatis {Description: FFTW is a C subroutine library for computing the discrete Fourier transform (DFT)
18+
in one or more dimensions, of arbitrary input size, and of both real and complex data.}
19+
module-whatis {Homepage: https://www.fftw.org}
20+
module-whatis {URL: https://www.fftw.org}
21+
22+
set root /prefix/software/FFTW/3.3.10-GCC-12.3.0
23+
24+
conflict FFTW
25+
26+
if { ![ is-loaded GCC/12.3.0 ] } {
27+
module load GCC/12.3.0
28+
}
29+
30+
prepend-path CMAKE_PREFIX_PATH $root
31+
prepend-path CPATH $root/include
32+
prepend-path LD_LIBRARY_PATH $root/lib
33+
prepend-path LIBRARY_PATH $root/lib
34+
prepend-path MANPATH $root/share/man
35+
prepend-path PATH $root/bin
36+
prepend-path PKG_CONFIG_PATH $root/lib/pkgconfig
37+
prepend-path XDG_DATA_DIRS $root/share
38+
39+
setenv EBROOTFFTW "$root"
40+
setenv EBVERSIONFFTW "3.3.10"
41+
setenv EBDEVELFFTW "$root/easybuild/FFTW-3.3.10-GCC-12.3.0-easybuild-devel"
42+
43+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
8+
used by a program without recompiling or relinking it.
9+
10+
11+
More information
12+
================
13+
- Homepage: https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release
14+
}
15+
}
16+
17+
module-whatis {Description: FlexiBLAS is a wrapper library that enables the exchange of the BLAS and LAPACK implementation
18+
used by a program without recompiling or relinking it.}
19+
module-whatis {Homepage: https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release}
20+
module-whatis {URL: https://gitlab.mpi-magdeburg.mpg.de/software/flexiblas-release}
21+
22+
set root /prefix/software/FlexiBLAS/3.3.1-GCC-12.3.0
23+
24+
conflict FlexiBLAS
25+
26+
if { ![ is-loaded GCC/12.3.0 ] } {
27+
module load GCC/12.3.0
28+
}
29+
30+
if { ![ is-loaded OpenBLAS/0.3.23-GCC-12.3.0 ] } {
31+
module load OpenBLAS/0.3.23-GCC-12.3.0
32+
}
33+
34+
prepend-path CMAKE_PREFIX_PATH $root
35+
prepend-path CPATH $root/include
36+
prepend-path LD_LIBRARY_PATH $root/lib
37+
prepend-path LIBRARY_PATH $root/lib
38+
prepend-path MANPATH $root/share/man
39+
prepend-path PATH $root/bin
40+
prepend-path PKG_CONFIG_PATH $root/lib/pkgconfig
41+
prepend-path XDG_DATA_DIRS $root/share
42+
43+
setenv EBROOTFLEXIBLAS "$root"
44+
setenv EBVERSIONFLEXIBLAS "3.3.1"
45+
setenv EBDEVELFLEXIBLAS "$root/easybuild/FlexiBLAS-3.3.1-GCC-12.3.0-easybuild-devel"
46+
47+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228

test/framework/modules/GCC/12.3.0

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
8+
as well as libraries for these languages (libstdc++, libgcj,...).
9+
10+
11+
More information
12+
================
13+
- Homepage: https://gcc.gnu.org/
14+
}
15+
}
16+
17+
module-whatis {Description: The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
18+
as well as libraries for these languages (libstdc++, libgcj,...).}
19+
module-whatis {Homepage: https://gcc.gnu.org/}
20+
module-whatis {URL: https://gcc.gnu.org/}
21+
22+
set root /prefix/software/GCC/12.3.0
23+
24+
conflict GCC
25+
26+
if { ![ is-loaded GCCcore/12.3.0 ] } {
27+
module load GCCcore/12.3.0
28+
}
29+
30+
if { ![ is-loaded binutils/2.40-GCCcore-12.3.0 ] } {
31+
module load binutils/2.40-GCCcore-12.3.0
32+
}
33+
34+
setenv EBROOTGCC "$root"
35+
setenv EBVERSIONGCC "12.3.0"
36+
setenv EBDEVELGCC "$root/easybuild/GCC-12.3.0-easybuild-devel"
37+
38+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
8+
as well as libraries for these languages (libstdc++, libgcj,...).
9+
10+
11+
More information
12+
================
13+
- Homepage: https://gcc.gnu.org/
14+
}
15+
}
16+
17+
module-whatis {Description: The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada,
18+
as well as libraries for these languages (libstdc++, libgcj,...).}
19+
module-whatis {Homepage: https://gcc.gnu.org/}
20+
module-whatis {URL: https://gcc.gnu.org/}
21+
22+
set root /prefix/software/GCCcore/12.3.0
23+
24+
conflict GCCcore
25+
26+
prepend-path CMAKE_LIBRARY_PATH $root/lib64
27+
prepend-path CMAKE_PREFIX_PATH $root
28+
prepend-path LD_LIBRARY_PATH $root/lib64
29+
prepend-path MANPATH $root/share/man
30+
prepend-path PATH $root/bin
31+
prepend-path XDG_DATA_DIRS $root/share
32+
33+
setenv EBROOTGCCCORE "$root"
34+
setenv EBVERSIONGCCCORE "12.3.0"
35+
setenv EBDEVELGCCCORE "$root/easybuild/GCCcore-12.3.0-easybuild-devel"
36+
37+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
8+
9+
10+
More information
11+
================
12+
- Homepage: http://www.openblas.net/
13+
}
14+
}
15+
16+
module-whatis {Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.}
17+
module-whatis {Homepage: http://www.openblas.net/}
18+
module-whatis {URL: http://www.openblas.net/}
19+
20+
set root /prefix/software/OpenBLAS/0.3.23-GCC-12.3.0
21+
22+
conflict OpenBLAS
23+
24+
if { ![ is-loaded GCC/12.3.0 ] } {
25+
module load GCC/12.3.0
26+
}
27+
28+
prepend-path CMAKE_PREFIX_PATH $root
29+
prepend-path CPATH $root/include
30+
prepend-path LD_LIBRARY_PATH $root/lib
31+
prepend-path LIBRARY_PATH $root/lib
32+
prepend-path PKG_CONFIG_PATH $root/lib/pkgconfig
33+
34+
setenv EBROOTOPENBLAS "$root"
35+
setenv EBVERSIONOPENBLAS "0.3.23"
36+
setenv EBDEVELOPENBLAS "$root/easybuild/OpenBLAS-0.3.23-GCC-12.3.0-easybuild-devel"
37+
38+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#%Module
2+
proc ModulesHelp { } {
3+
puts stderr {
4+
5+
Description
6+
===========
7+
The Open MPI Project is an open source MPI-3 implementation.
8+
9+
10+
More information
11+
================
12+
- Homepage: https://www.open-mpi.org/
13+
}
14+
}
15+
16+
module-whatis {Description: The Open MPI Project is an open source MPI-3 implementation.}
17+
module-whatis {Homepage: https://www.open-mpi.org/}
18+
module-whatis {URL: https://www.open-mpi.org/}
19+
20+
set root /scratch/brussel/vo/000/bvo00005/vsc10009/ebtest/tclmodules/software/OpenMPI/4.1.5-GCC-12.3.0
21+
22+
conflict OpenMPI
23+
24+
if { ![ is-loaded GCC/12.3.0 ] } {
25+
module load GCC/12.3.0
26+
}
27+
28+
if { ![ is-loaded zlib/1.2.13-GCCcore-12.3.0 ] } {
29+
module load zlib/1.2.13-GCCcore-12.3.0
30+
}
31+
32+
if { ![ is-loaded hwloc/2.9.1-GCCcore-12.3.0 ] } {
33+
module load hwloc/2.9.1-GCCcore-12.3.0
34+
}
35+
36+
if { ![ is-loaded libevent/2.1.12-GCCcore-12.3.0 ] } {
37+
module load libevent/2.1.12-GCCcore-12.3.0
38+
}
39+
40+
if { ![ is-loaded UCX/1.14.1-GCCcore-12.3.0 ] } {
41+
module load UCX/1.14.1-GCCcore-12.3.0
42+
}
43+
44+
if { ![ is-loaded libfabric/1.18.0-GCCcore-12.3.0 ] } {
45+
module load libfabric/1.18.0-GCCcore-12.3.0
46+
}
47+
48+
if { ![ is-loaded PMIx/4.2.4-GCCcore-12.3.0 ] } {
49+
module load PMIx/4.2.4-GCCcore-12.3.0
50+
}
51+
52+
if { ![ is-loaded UCC/1.2.0-GCCcore-12.3.0 ] } {
53+
module load UCC/1.2.0-GCCcore-12.3.0
54+
}
55+
56+
prepend-path CMAKE_PREFIX_PATH $root
57+
prepend-path CPATH $root/include
58+
prepend-path LD_LIBRARY_PATH $root/lib
59+
prepend-path LIBRARY_PATH $root/lib
60+
prepend-path MANPATH $root/share/man
61+
prepend-path PATH $root/bin
62+
prepend-path PKG_CONFIG_PATH $root/lib/pkgconfig
63+
prepend-path XDG_DATA_DIRS $root/share
64+
65+
setenv EBROOTOPENMPI "$root"
66+
setenv EBVERSIONOPENMPI "4.1.5"
67+
setenv EBDEVELOPENMPI "$root/easybuild/OpenMPI-4.1.5-GCC-12.3.0-easybuild-devel"
68+
69+
setenv SLURM_MPI_TYPE "pmix"
70+
# Built with EasyBuild version 4.9.0.dev0-rea8433dcf5e6edea3e72ad9bd9e23023ecc6b228
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#%Module

0 commit comments

Comments
 (0)