Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failing tests for ppc64le (and aarch64???) #10329

Closed
hmaarrfk opened this issue Jun 19, 2019 · 2 comments
Closed

Failing tests for ppc64le (and aarch64???) #10329

hmaarrfk opened this issue Jun 19, 2019 · 2 comments
Labels
defect A clear bug or issue that prevents SciPy from being installed or used as expected

Comments

@hmaarrfk
Copy link
Contributor

In building scipy for conda-forge on different architectures, I noticed that there were a few failures, mainly with very high precision tests for ppc64le.

Results of the builds can be found here
conda-forge/scipy-feedstock#101

I had to apply the following 3 patches:

diff --git a/scipy/special/tests/test_data.py b/scipy/special/tests/test_data.py
index 151b6abad..a879a0648 100644
--- a/scipy/special/tests/test_data.py
+++ b/scipy/special/tests/test_data.py
@@ -213,9 +213,9 @@ BOOST_TESTS = [
         data(assoc_legendre_p_boost_, 'assoc_legendre_p_ipp-assoc_legendre_p', (0,1,2), 3, rtol=1e-11),
 
         data(legendre_p_via_assoc_, 'legendre_p_ipp-legendre_p', (0,1), 2, rtol=1e-11),
-        data(legendre_p_via_assoc_, 'legendre_p_large_ipp-legendre_p_large', (0,1), 2, rtol=7e-14),
+        # data(legendre_p_via_assoc_, 'legendre_p_large_ipp-legendre_p_large', (0,1), 2, rtol=7e-14),
         data(legendre_p_via_lpmn, 'legendre_p_ipp-legendre_p', (0,1), 2, rtol=5e-14, vectorized=False),
-        data(legendre_p_via_lpmn, 'legendre_p_large_ipp-legendre_p_large', (0,1), 2, rtol=7e-14, vectorized=False),
+        # data(legendre_p_via_lpmn, 'legendre_p_large_ipp-legendre_p_large', (0,1), 2, rtol=7e-14, vectorized=False),
         data(lpn_, 'legendre_p_ipp-legendre_p', (0,1), 2, rtol=5e-14, vectorized=False),
         data(lpn_, 'legendre_p_large_ipp-legendre_p_large', (0,1), 2, rtol=3e-13, vectorized=False),
         data(eval_legendre_ld, 'legendre_p_ipp-legendre_p', (0,1), 2, rtol=6e-14),
diff --git a/scipy/special/tests/test_orthogonal.py b/scipy/special/tests/test_orthogonal.py
index 61fb2d8aa..40beafb5e 100644
--- a/scipy/special/tests/test_orthogonal.py
+++ b/scipy/special/tests/test_orthogonal.py
@@ -331,7 +331,7 @@ def test_roots_jacobi():
     vgq(rf(0.9, 2), ef(0.9, 2), wf(0.9, 2), -1., 1., 100, atol=3e-13)
 
     vgq(rf(18.24, 27.3), ef(18.24, 27.3), wf(18.24, 27.3), -1., 1., 5)
-    vgq(rf(18.24, 27.3), ef(18.24, 27.3), wf(18.24, 27.3), -1., 1., 25)
+    # vgq(rf(18.24, 27.3), ef(18.24, 27.3), wf(18.24, 27.3), -1., 1., 25)
     vgq(rf(18.24, 27.3), ef(18.24, 27.3), wf(18.24, 27.3), -1., 1.,
         100, atol=1e-13)
 
@@ -724,15 +724,15 @@ def test_roots_genlaguerre():
 
     vgq(rootf(0.1), evalf(0.1), weightf(0.1), 0., np.inf, 5)
     vgq(rootf(0.1), evalf(0.1), weightf(0.1), 0., np.inf, 25, atol=1e-13)
-    vgq(rootf(0.1), evalf(0.1), weightf(0.1), 0., np.inf, 100, atol=1e-13)
+    # vgq(rootf(0.1), evalf(0.1), weightf(0.1), 0., np.inf, 100, atol=1e-13)
 
     vgq(rootf(1), evalf(1), weightf(1), 0., np.inf, 5)
     vgq(rootf(1), evalf(1), weightf(1), 0., np.inf, 25, atol=1e-13)
-    vgq(rootf(1), evalf(1), weightf(1), 0., np.inf, 100, atol=1e-13)
+    # vgq(rootf(1), evalf(1), weightf(1), 0., np.inf, 100, atol=1e-13)
 
     vgq(rootf(10), evalf(10), weightf(10), 0., np.inf, 5)
     vgq(rootf(10), evalf(10), weightf(10), 0., np.inf, 25, atol=1e-13)
-    vgq(rootf(10), evalf(10), weightf(10), 0., np.inf, 100, atol=1e-12)
+    # vgq(rootf(10), evalf(10), weightf(10), 0., np.inf, 100, atol=1e-12)
 
     vgq(rootf(50), evalf(50), weightf(50), 0., np.inf, 5)
     vgq(rootf(50), evalf(50), weightf(50), 0., np.inf, 25, atol=1e-13)
diff --git a/scipy/ndimage/tests/test_ndimage.py b/scipy/ndimage/tests/test_ndimage.py
index 904793ede..b3fe4b4d4 100644
--- a/scipy/ndimage/tests/test_ndimage.py
+++ b/scipy/ndimage/tests/test_ndimage.py
@@ -4511,6 +4511,7 @@ class TestNdimage:
                                       structure=structure)
         assert_array_almost_equal(expected, output)
 
+    @pytest.mark.skip(reason="Known failure")
     def test_white_tophat03(self):
         array = numpy.array([[1, 0, 0, 0, 0, 0, 0],
                              [0, 1, 1, 1, 1, 1, 0],

These are in addition to the segfault outlined in #10256

These tests may also be failing on aarch64, but I am hesitatnt to claim that since aarch64 is running in qemu under an x64 host.

Scipy/Numpy/Python version information:

Build:

## Package Plan ##

  environment location: /home/conda/feedstock_root/build_artifacts/scipy_1560909766256/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_place


The following NEW packages will be INSTALLED:

    bzip2:           1.0.6-h14c3975_1002     conda-forge
    ca-certificates: 2019.6.16-hecc5488_0    conda-forge
    certifi:         2019.3.9-py37_0         conda-forge
    cython:          0.29.10-py37hb209c28_0  conda-forge
    libblas:         3.8.0-5_h3875876_netlib conda-forge
    libcblas:        3.8.0-5_h3875876_netlib conda-forge
    libffi:          3.2.1-hb209c28_1006     conda-forge
    libgcc-ng:       8.2.0-h822a55f_1        defaults   
    libgfortran-ng:  8.2.0-h822a55f_1        defaults   
    liblapack:       3.8.0-5_h3875876_netlib conda-forge
    libstdcxx-ng:    8.2.0-h822a55f_1        defaults   
    ncurses:         6.1-hf484d3e_1002       conda-forge
    numpy:           1.16.4-py37hcee8f07_0   conda-forge
    openssl:         1.1.1b-h6eb9509_2       conda-forge
    pip:             19.1.1-py37_0           conda-forge
    python:          3.7.3-hd55099a_0        conda-forge
    readline:        7.0-hf8c457e_1001       conda-forge
    setuptools:      41.0.1-py37_0           conda-forge
    sqlite:          3.28.0-ha210b8d_0       conda-forge
    tk:              8.6.9-h151fe60_1002     conda-forge
    wheel:           0.33.4-py37_0           conda-forge
    xz:              5.2.4-h14c3975_1001     conda-forge
    zlib:            1.2.11-h14c3975_1004    conda-forge

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
Collecting package metadata: ...working... done
Solving environment: ...working... done
Collecting package metadata: ...working... done
Solving environment: ...working... done

## Package Plan ##

  environment location: /home/conda/feedstock_root/build_artifacts/scipy_1560909766256/_build_env


The following NEW packages will be INSTALLED:

    binutils_impl_linux-ppc64le: 2.31.1-he53550c_1 defaults
    binutils_linux-ppc64le:      2.31.1-he53550c_3 defaults
    gcc_impl_linux-ppc64le:      8.2.0-he01c8ba_1  defaults
    gcc_linux-ppc64le:           8.2.0-h9f3bcec_3  defaults
    gfortran_impl_linux-ppc64le: 8.2.0-h822a55f_1  defaults
    gfortran_linux-ppc64le:      8.2.0-h9f3bcec_3  defaults
    gxx_impl_linux-ppc64le:      8.2.0-h822a55f_1  defaults
    gxx_linux-ppc64le:           8.2.0-h9f3bcec_3  defaults
    libgcc-ng:                   8.2.0-h822a55f_1  defaults
    libgfortran-ng:              8.2.0-h822a55f_1  defaults
    libstdcxx-ng:                8.2.0-h822a55f_1  defaults

Test

## Package Plan ##

  environment location: /home/conda/feedstock_root/build_artifacts/scipy_1560909766256/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_


The following NEW packages will be INSTALLED:

    atomicwrites:       1.3.0-py_0            conda-forge
    attrs:              19.1.0-py_0           conda-forge
    bzip2:              1.0.6-h14c3975_1002   conda-forge
    ca-certificates:    2019.6.16-hecc5488_0  conda-forge
    certifi:            2019.3.9-py37_0       conda-forge
    importlib_metadata: 0.18-py37_0           conda-forge
    libblas:            3.8.0-7_openblas      conda-forge
    libcblas:           3.8.0-7_openblas      conda-forge
    libffi:             3.2.1-hb209c28_1006   conda-forge
    libgcc-ng:          8.2.0-h822a55f_1      defaults   
    libgfortran-ng:     8.2.0-h822a55f_1      defaults   
    liblapack:          3.8.0-7_openblas      conda-forge
    libstdcxx-ng:       8.2.0-h822a55f_1      defaults   
    more-itertools:     4.3.0-py37_1000       conda-forge
    mpmath:             1.1.0-py_0            conda-forge
    ncurses:            6.1-hf484d3e_1002     conda-forge
    numpy:              1.16.4-py37hcee8f07_0 conda-forge
    openblas:           0.3.5-h9ac9557_1001   conda-forge
    openssl:            1.1.1b-h6eb9509_2     conda-forge
    packaging:          19.0-py_0             conda-forge
    pip:                19.1.1-py37_0         conda-forge
    pluggy:             0.12.0-py_0           conda-forge
    py:                 1.8.0-py_0            conda-forge
    pyparsing:          2.4.0-py_0            conda-forge
    pytest:             4.6.3-py37_0          conda-forge
    python:             3.7.3-hd55099a_0      conda-forge
    readline:           7.0-hf8c457e_1001     conda-forge
    scipy:              1.3.0-py37h807e534_0  local      
    setuptools:         41.0.1-py37_0         conda-forge
    six:                1.12.0-py37_1000      conda-forge
    sqlite:             3.28.0-ha210b8d_0     conda-forge
    tk:                 8.6.9-h151fe60_1002   conda-forge
    wcwidth:            0.1.7-py_1            conda-forge
    wheel:              0.33.4-py37_0         conda-forge
    xz:                 5.2.4-h14c3975_1001   conda-forge
    zipp:               0.5.1-py_0            conda-forge
    zlib:               1.2.11-h14c3975_1004  conda-forge

Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
export PREFIX=/home/conda/feedstock_root/build_artifacts/scipy_1560909766256/_test_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_
export SRC_DIR=/home/conda/feedstock_root/build_artifacts/scipy_1560909766256/test_tmp
===== testing package: scipy-1.3.0-py37h807e534_0 =====
running run_test.py
@hrw
Copy link

hrw commented Dec 4, 2019

Consider trying with "-ffp-context=off" added to gcc. This disables FMA use to make it more on par with poor x86 boxes.

Not a solution but an option to check.

@rgommers rgommers added the defect A clear bug or issue that prevents SciPy from being installed or used as expected label Mar 27, 2020
@rgommers
Copy link
Member

For the test_data.py ones, those tolerances were bumped in commit d717a7c.

The test_orthogonal.py lines have not changed since 2015. However, it's passing in the ppc64l and aarch64 CI we have now. Those tests are also failing on s390x though, see gh-6338.

test_white_tophat03 should have been fixed by gh-9515.

So basically: one issue left, which is covered by CI on the platform reported here, and covered in gh-6338 for another platform. So I'll close this. Thanks for reporting @hmaarrfk.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
defect A clear bug or issue that prevents SciPy from being installed or used as expected
Projects
None yet
Development

No branches or pull requests

3 participants