diff --git a/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-12.2.0.eb b/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-12.2.0.eb new file mode 100644 index 000000000000..4195527a89fb --- /dev/null +++ b/easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-12.2.0.eb @@ -0,0 +1,21 @@ +name = 'Eigen' +version = '3.4.0' + +homepage = 'https://eigen.tuxfamily.org' +description = """Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, + and related algorithms.""" + +# only includes header files, but requires CMake so using non-system toolchain +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://gitlab.com/libeigen/eigen/-/archive/%(version)s'] +sources = [SOURCELOWER_TAR_BZ2] +checksums = ['b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626'] + +# using CMake built with GCCcore to avoid relying on the system compiler to build it +builddependencies = [ + ('binutils', '2.39'), # to make CMake compiler health check pass on old systems + ('CMake', '3.24.3'), +] + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/h/hypothesis/hypothesis-6.68.2-GCCcore-12.2.0.eb b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.68.2-GCCcore-12.2.0.eb new file mode 100644 index 000000000000..108e338d4830 --- /dev/null +++ b/easybuild/easyconfigs/h/hypothesis/hypothesis-6.68.2-GCCcore-12.2.0.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'hypothesis' +version = '6.68.2' + +homepage = "https://github.com/HypothesisWorks/hypothesis" +description = """Hypothesis is an advanced testing library for Python. It lets you write tests which are parametrized + by a source of examples, and then generates simple and comprehensible examples that make your tests fail. This lets + you find more bugs in your code with less work.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +sources = [SOURCE_TAR_GZ] +checksums = ['a7eb2b0c9a18560d8197fe35047ceb58e7e8ab7623a3e5a82613f6a2cd71cffa'] + +builddependencies = [('binutils', '2.39')] + +dependencies = [('Python', '3.10.8')] + +use_pip = True +download_dep_fail = True +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/m/mpi4py/mpi4py-3.1.4-gompi-2022b.eb b/easybuild/easyconfigs/m/mpi4py/mpi4py-3.1.4-gompi-2022b.eb new file mode 100644 index 000000000000..3f9abaa08954 --- /dev/null +++ b/easybuild/easyconfigs/m/mpi4py/mpi4py-3.1.4-gompi-2022b.eb @@ -0,0 +1,25 @@ +easyblock = 'PythonBundle' + +name = 'mpi4py' +version = '3.1.4' + +homepage = 'https://github.com/mpi4py/mpi4py' +description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for + the Python programming language, allowing any Python program to exploit multiple processors.""" + +toolchain = {'name': 'gompi', 'version': '2022b'} + +dependencies = [ + ('Python', '3.10.8'), +] + +use_pip = True +sanity_pip_check = True + +exts_list = [ + (name, version, { + 'checksums': ['17858f2ebc623220d0120d1fa8d428d033dde749c4bc35b33d81a66ad7f93480'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3-GCCcore-12.2.0.eb new file mode 100644 index 000000000000..dc6dd0aead44 --- /dev/null +++ b/easybuild/easyconfigs/p/pybind11/pybind11-2.10.3-GCCcore-12.2.0.eb @@ -0,0 +1,23 @@ +name = 'pybind11' +version = '2.10.3' + +homepage = 'https://pybind11.readthedocs.io' +description = """pybind11 is a lightweight header-only library that exposes C++ types in Python and vice versa, + mainly to create Python bindings of existing C++ code.""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://github.com/pybind/pybind11/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['5d8c4c5dda428d3a944ba3d2a5212cb988c2fae4670d58075a5a49075a6ca315'] + +builddependencies = [ + ('binutils', '2.39'), + ('CMake', '3.24.3'), + ('Eigen', '3.4.0'), +] +dependencies = [('Python', '3.10.8')] + +configopts = "-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python" + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2023.02-gfbf-2022b.eb b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2023.02-gfbf-2022b.eb new file mode 100644 index 000000000000..f6d9d0f80459 --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/SciPy-bundle-2023.02-gfbf-2022b.eb @@ -0,0 +1,85 @@ +easyblock = 'PythonBundle' + +name = 'SciPy-bundle' +version = '2023.02' + +homepage = 'https://python.org/' +description = "Bundle of Python packages for scientific software" + +toolchain = {'name': 'gfbf', 'version': '2022b'} +toolchainopts = {'pic': True, 'lowopt': True} + +builddependencies = [ + ('hypothesis', '6.68.2'), + ('UnZip', '6.0'), + # scipy >= 1.9.0 uses Meson/Ninja + ('Meson', '0.64.0'), + ('Ninja', '1.11.1'), + ('pkgconf', '1.9.3'), # required by scipy +] + +dependencies = [ + ('Python', '3.10.8'), + ('pybind11', '2.10.3'), # required by scipy +] + +use_pip = True + +# order is important! +exts_list = [ + ('numpy', '1.24.2', { + 'patches': ['numpy-1.22.3_disable-broken-override-test.patch'], + 'checksums': [ + {'numpy-1.24.2.tar.gz': '003a9f530e880cb2cd177cba1af7220b9aa42def9c4afc2a2fc3ee6be7eb2b22'}, + {'numpy-1.22.3_disable-broken-override-test.patch': + '9c589bb073b28b25ff45eb3c63c57966aa508dd8b318d0b885b6295271e4983c'}, + ], + }), + ('ply', '3.11', { + 'checksums': ['00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3'], + }), + ('gast', '0.5.3', { + 'checksums': ['cfbea25820e653af9c7d1807f659ce0a0a9c64f2439421a7bba4f0983f532dea'], + }), + ('beniget', '0.4.1', { + 'checksums': ['75554b3b8ad0553ce2f607627dad3d95c60c441189875b98e097528f8e23ac0c'], + }), + ('pythran', '0.12.1', { + 'checksums': ['702c2701187cfb38f66c0c20cc85d04d0e156d260a8d92892da65947faa5360e'], + }), + ('scipy', '1.10.1', { + 'patches': [ + 'scipy-1.10.1_disable-tests.patch', + 'scipy-1.10.1_xfail-aarch64_test_maxiter_worsening.patch', + ], + 'checksums': [ + {'scipy-1.10.1.tar.gz': '2cf9dfb80a7b4589ba4c40ce7588986d6d5cebc5457cad2c2880f6bc2d42f3a5'}, + {'scipy-1.10.1_disable-tests.patch': '5d36d416fb7ea9297514c3988d9f506793e39dc4c0daedccf6733c3dd7e3dcc0'}, + {'scipy-1.10.1_xfail-aarch64_test_maxiter_worsening.patch': + '48177d6af51cf3e3d46aed8425807f0a65a498f7558f475032e0ad846559a23e'}, + ], + 'enable_slow_tests': True, + 'ignore_test_result': False, + }), + ('numexpr', '2.8.4', { + 'checksums': ['d5432537418d18691b9115d615d6daa17ee8275baef3edf1afbbf8bc69806147'], + }), + ('Bottleneck', '1.3.5', { + 'checksums': ['2c0d27afe45351f6f421893362621804fa7dea14fe29a78eaa52d4323f646de7'], + }), + ('pandas', '1.5.3', { + 'preinstallopts': "export PANDAS_CI=0 && ", + 'checksums': ['74a3fd7e5a7ec052f183273dc7b0acd3a863edf7520f5d3a1765c04ffdb3b0b1'], + }), + ('mpmath', '1.2.1', { + 'checksums': ['79ffb45cf9f4b101a807595bcb3e72e0396202e0b1d25d689134b48c4216a81a'], + }), + ('deap', '1.3.3', { + 'checksums': ['8772f1b0fff042d5e516b0aebac2c706243045aa7d0de8e0b8658f380181cf31'], + 'modulename': 'deap.base', + }), +] + +sanity_pip_check = True + +moduleclass = 'lang' diff --git a/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.10.1_disable-tests.patch b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.10.1_disable-tests.patch new file mode 100644 index 000000000000..46ed2e2c0f5a --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.10.1_disable-tests.patch @@ -0,0 +1,41 @@ +disable problematic tests +test_milp_timeout_16545 fails intermittently, known issue - see https://github.com/scipy/scipy/issues/17137 +test_hermitian_modes fails with order of magnitude difference +test_concatenate_int32_overflow fails if not enough memory is available +author: Kenneth Hoste (HPC-UGent) + Simon Branford (University of Birmingham) +diff -ru scipy-1.10.1.orig/scipy/optimize/tests/test_milp.py scipy-1.10.1/scipy/optimize/tests/test_milp.py +--- scipy-1.10.1.orig/scipy/optimize/tests/test_milp.py 1970-01-01 01:00:00.000000000 +0100 ++++ scipy-1.10.1/scipy/optimize/tests/test_milp.py 2023-02-25 15:43:57.780477222 +0100 +@@ -283,7 +283,7 @@ + @pytest.mark.timeout(360) + @pytest.mark.parametrize(["options", "msg"], [({"time_limit": 10}, _msg_time), + ({"node_limit": 1}, _msg_iter)]) +-def test_milp_timeout_16545(options, msg): ++def disabled_test_milp_timeout_16545(options, msg): + # Ensure solution is not thrown away if MILP solver times out + # -- see gh-16545 + rng = np.random.default_rng(5123833489170494244) +diff -ru scipy-1.10.1.orig/scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py scipy-1.10.1/scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py +--- scipy-1.10.1.orig/scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py 1970-01-01 01:00:00.000000000 +0100 ++++ scipy-1.10.1/scipy/sparse/linalg/_eigen/arpack/tests/test_arpack.py 2023-02-25 15:44:06.220493384 +0100 +@@ -418,7 +418,7 @@ + None, sigma, mattype, None, mode) + + +-def test_hermitian_modes(): ++def disabled_test_hermitian_modes(): + params = SymmetricParams() + k = 2 + symmetric = True +diff -ru scipy-1.10.1.orig/scipy/sparse/tests/test_construct.py scipy-1.10.1/scipy/sparse/tests/test_construct.py +--- scipy-1.10.1.orig/scipy/sparse/tests/test_construct.py 1970-01-01 01:00:00.000000000 +0100 ++++ scipy-1.10.1/scipy/sparse/tests/test_construct.py 2023-02-25 15:44:25.259531626 +0100 +@@ -446,7 +446,7 @@ + + @pytest.mark.slow + @pytest.mark.xfail_on_32bit("Can't create large array for test") +- def test_concatenate_int32_overflow(self): ++ def disable_test_concatenate_int32_overflow(self): + """ test for indptr overflow when concatenating matrices """ + check_free_memory(30000) + diff --git a/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.10.1_xfail-aarch64_test_maxiter_worsening.patch b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.10.1_xfail-aarch64_test_maxiter_worsening.patch new file mode 100644 index 000000000000..c2a2f234e4ee --- /dev/null +++ b/easybuild/easyconfigs/s/SciPy-bundle/scipy-1.10.1_xfail-aarch64_test_maxiter_worsening.patch @@ -0,0 +1,15 @@ +also xfail test_maxiter_worsening for Python 3.10 on aarch64 +see also https://github.com/scipy/scipy/issues/13019 + https://github.com/scipy/scipy/pull/13022 +author: Kenneth Hoste (HPC-UGent) +diff -ru scipy-1.10.1.orig/scipy/sparse/linalg/_isolve/tests/test_iterative.py scipy-1.10.1/scipy/sparse/linalg/_isolve/tests/test_iterative.py +--- scipy-1.10.1.orig/scipy/sparse/linalg/_isolve/tests/test_iterative.py 1970-01-01 00:00:00.000000000 +0000 ++++ scipy-1.10.1/scipy/sparse/linalg/_isolve/tests/test_iterative.py 2023-02-25 17:18:12.432151563 +0000 +@@ -451,7 +451,7 @@ + + @pytest.mark.parametrize("solver", [ + pytest.param(gmres, marks=pytest.mark.xfail(platform.machine() == 'aarch64' +- and sys.version_info[1] == 9, ++ and sys.version_info[1] >= 9, + reason="gh-13019")), + qmr, + pytest.param(lgmres, marks=pytest.mark.xfail(