Skip to content

Commit

Permalink
Merge pull request #16912 from boegel/20221215150042_new_pr_SciPy-bun…
Browse files Browse the repository at this point in the history
…dle202211

{lang}[gfbf/2022b,foss/2022b] SciPy-bundle v2023.02, mpi4py v3.1.4, pybind11 v2.10.3, hypothesis v6.68.2 w/ Python 3.10.8
  • Loading branch information
branfosj committed Feb 26, 2023
2 parents 483d81f + 0de78ec commit 76dba56
Show file tree
Hide file tree
Showing 7 changed files with 234 additions and 0 deletions.
21 changes: 21 additions & 0 deletions easybuild/easyconfigs/e/Eigen/Eigen-3.4.0-GCCcore-12.2.0.eb
Original file line number Diff line number Diff line change
@@ -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'
Original file line number Diff line number Diff line change
@@ -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'
25 changes: 25 additions & 0 deletions easybuild/easyconfigs/m/mpi4py/mpi4py-3.1.4-gompi-2022b.eb
Original file line number Diff line number Diff line change
@@ -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'
23 changes: 23 additions & 0 deletions easybuild/easyconfigs/p/pybind11/pybind11-2.10.3-GCCcore-12.2.0.eb
Original file line number Diff line number Diff line change
@@ -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'
Original file line number Diff line number Diff line change
@@ -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'
Original file line number Diff line number Diff line change
@@ -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)

Original file line number Diff line number Diff line change
@@ -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(

0 comments on commit 76dba56

Please sign in to comment.