Failed tests when compiling with openmp
jalvesz opened this issue · 7 comments
Description
I tested building and running the tests, including OpenMP support, by including the flag:
cmake -B build -G Ninja -DBUILD_TESTING=on -DCMAKE_Fortran_FLAGS=-fopenmp -DCMAKE_MAXIMUM_RANK:String=4 -DCMAKE_BUILD_TYPE=Release -DCMAKE_Fortran_COMPILER=gfortran
cmake --build build
ctest --test-dir build/test
several of the tests failed:
86% tests passed, 11 tests failed out of 77
Label Time Summary:
quadruple_precision = 0.17 sec*proc (2 tests)
Total Test time (real) = 12.68 sec
The following tests FAILED:
12 - chaining_maps (SEGFAULT)
13 - open_maps (SEGFAULT)
14 - maps (SEGFAULT)
15 - intrinsics (Failed)
30 - linalg_pseudoinverse (Failed)
38 - blas_lapack (Failed)
43 - sorting (Exit code 0xc0000374
)
47 - mean (Failed)
59 - string_intrinsic (Failed)
64 - string_to_number (Failed)
69 - simps (Failed)
64 - string_to_number (Failed)
69 - simps (Failed)
64 - string_to_number (Failed)
69 - simps (Failed)
64 - string_to_number (Failed)
69 - simps (Failed)
I wonder if one of the CI jobs should include OpenMP in order to catch such behaviours early ?
Expected Behaviour
Should pass
Version of stdlib
master
Platform and Architecture
Windows / gfortran 14.2.0
Additional Information
No response
Strange that it failed on some procedures like blas_lapack or sorting. I agree that we should include OpenMP in at least one of the CI jobs.
I was looking at the intrinsics test and saw that they fail for sum and dot_product for xdp. I saw that there is a tolerance issue, for instance, if I print the tolerance and relative errors here
adding a print *, '${t}$ dot err:', tolerance, err(1:3)
I get without openmp:
real(xdp) dot err: 1.08420217248550443401E-0017 3.25260651745651330202E-0019 0.00000000000000000000 0.00000000000000000000
With openmp:
real(xdp) dot err: 1.08420217248550443401E-0017 2.22044604925031308085E-0016 0.00000000000000000000 5.55111512312578270212E-0016
For the latter, the errors seems to be funnily close to epsilon(0.d0) = 2.220446049250313E-016 ... I'm intrigued here, I wonder if the other tests might be suffering from something similar.