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

Fix sporadic FPEs seen on the CI for two tests #57

Open
jppelteret opened this issue Apr 23, 2022 · 0 comments · May be fixed by #58
Open

Fix sporadic FPEs seen on the CI for two tests #57

jppelteret opened this issue Apr 23, 2022 · 0 comments · May be fixed by #58

Comments

@jppelteret
Copy link
Owner

jppelteret commented Apr 23, 2022

Two tests fail more often than not on the CI -- the point is that the problem is sporadic rather than consistent. The problem seems to be with vectorization, and specifically taking the sqrt of a vectorized array where all entries are (nearly?) zero. The logged data comes from a docker image.

From step-72-variant_01c.log:

dealii::VectorizedArray<double, 2ul>::get_sqrt (this=0x7f507c419600) at /usr/local/include/deal.II/base/vectorization.h:3455
3455	    res.data = _mm_sqrt_pd(data);
(gdb) info locals
res = {<dealii::VectorizedArrayBase<dealii::VectorizedArray<double, 2>, 2>> = {<No data fields>}, data = {6.9161116785120245e-310, 6.9160982038177687e-310}}
(gdb) bt full
#0  dealii::VectorizedArray<double, 2ul>::get_sqrt (this=0x7f507c419600) at /usr/local/include/deal.II/base/vectorization.h:3455
        res = {<dealii::VectorizedArrayBase<dealii::VectorizedArray<double, 2>, 2>> = {<No data fields>}, data = {6.9161116785120245e-310, 6.9160982038177687e-310}}
#1  std::sqrt<double, 2ul> (x=...) at /usr/local/include/deal.II/base/vectorization.h:5472
No locals.
#2  dealiiWeakForms::WeakForms::Operators::UnaryOp<dealiiWeakForms::WeakForms::Operators::BinaryOp<dealiiWeakForms::WeakForms::Operators::SymbolicOp<dealiiWeakForms::WeakForms::ScalarFunctor, (dealiiWeakForms::WeakForms::Operators::SymbolicOpCodes)0, double, dealiiWeakForms::WeakForms::internal::DimPack<2, 2> >, dealiiWeakForms::WeakForms::Operators::BinaryOp<dealiiWeakForms::WeakForms::Operators::SymbolicOp<dealiiWeakForms::WeakForms::SubSpaceViews::Scalar<dealiiWeakForms::WeakForms::FieldSolution<2, 2> >, (dealiiWeakForms::WeakForms::Operators::SymbolicOpCodes)1, void, dealiiWeakForms::WeakForms::internal::SolutionIndex<0u> >, dealiiWeakForms::WeakForms::Operators::SymbolicOp<dealiiWeakForms::WeakForms::SubSpaceViews::Scalar<dealiiWeakForms::WeakForms::FieldSolution<2, 2> >, (dealiiWeakForms::WeakForms::Operators::SymbolicOpCodes)1, void, dealiiWeakForms::WeakForms::internal::SolutionIndex<0u> >, (dealiiWeakForms::WeakForms::Operators::BinaryOpCodes)2, void>, (dealiiWeakForms::WeakForms::Operators::BinaryOpCodes)0, void>, (dealiiWeakForms::WeakForms::Operators::UnaryOpCodes)7, void>::operator()<double, 2ul>(dealiiWeakForms::WeakForms::numbers::VectorizedValue<decltype (((declval<double>)())+((declval<decltype (((declval<dealii::ProductType<double, dealii::Tensor<1, 2, double> >::type>)())*((declval<dealii::ProductType<double, dealii::Tensor<1, 2, double> >::type>)()))>)())), void>::type<2ul> const&) const (this=0x559ac399eb28, value=...)
    at ../include/weak_forms/unary_operators.h:1609
No locals.

From step-72-variant_01b_vec.log:

Thread 5 "step-72-variant" received signal SIGFPE, Arithmetic exception.
[Switching to Thread 0x7f5fba53e700 (LWP 569)]
dealii::VectorizedArray<double, 2ul>::get_sqrt (this=0x7f5fba534600) at /usr/local/include/deal.II/base/vectorization.h:3455
3455	    res.data = _mm_sqrt_pd(data);
(gdb) info locals
res = {<dealii::VectorizedArrayBase<dealii::VectorizedArray<double, 2>, 2>> = {<No data fields>}, data = {6.9193461215545435e-310, 6.9193309319102102e-310}}
(gdb) bt full
#0  dealii::VectorizedArray<double, 2ul>::get_sqrt (this=0x7f5fba534600) at /usr/local/include/deal.II/base/vectorization.h:3455
        res = {<dealii::VectorizedArrayBase<dealii::VectorizedArray<double, 2>, 2>> = {<No data fields>}, data = {6.9193461215545435e-310, 6.9193309319102102e-310}}
#1  std::sqrt<double, 2ul> (x=...) at /usr/local/include/deal.II/base/vectorization.h:5472
No locals.
#2  dealiiWeakForms::WeakForms::Operators::UnaryOp<dealiiWeakForms::WeakForms::Operators::BinaryOp<dealiiWeakForms::WeakForms::Operators::SymbolicOp<dealiiWeakForms::WeakForms::ScalarFunctor, (dealiiWeakForms::WeakForms::Operators::SymbolicOpCodes)0, double, dealiiWeakForms::WeakForms::internal::DimPack<2, 2> >, dealiiWeakForms::WeakForms::Operators::BinaryOp<dealiiWeakForms::WeakForms::Operators::SymbolicOp<dealiiWeakForms::WeakForms::SubSpaceViews::Scalar<dealiiWeakForms::WeakForms::FieldSolution<2, 2> >, (dealiiWeakForms::WeakForms::Operators::SymbolicOpCodes)1, void, dealiiWeakForms::WeakForms::internal::SolutionIndex<0u> >, dealiiWeakForms::WeakForms::Operators::SymbolicOp<dealiiWeakForms::WeakForms::SubSpaceViews::Scalar<dealiiWeakForms::WeakForms::FieldSolution<2, 2> >, (dealiiWeakForms::WeakForms::Operators::SymbolicOpCodes)1, void, dealiiWeakForms::WeakForms::internal::SolutionIndex<0u> >, (dealiiWeakForms::WeakForms::Operators::BinaryOpCodes)2, void>, (dealiiWeakForms::WeakForms::Operators::BinaryOpCodes)0, void>, (dealiiWeakForms::WeakForms::Operators::UnaryOpCodes)7, void>::operator()<double, 2ul>(dealiiWeakForms::WeakForms::numbers::VectorizedValue<decltype (((declval<double>)())+((declval<decltype (((declval<dealii::ProductType<double, dealii::Tensor<1, 2, double> >::type>)())*((declval<dealii::ProductType<double, dealii::Tensor<1, 2, double> >::type>)()))>)())), void>::type<2ul> const&) const (this=0x55f22ff1f7a8, value=...)
    at ../include/weak_forms/unary_operators.h:1609
No locals.
@jppelteret jppelteret linked a pull request Apr 23, 2022 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant