← Back to team overview

dolfin team mailing list archive

Re: [Bug 424159] Re: Reaction demo fails when GMP is enabled

 

On Fri, Sep 04, 2009 at 02:26:39PM +0200, Benjamin Kehlet wrote:
> I'd be very surprised if this doesn't affect all platforms. The problem is
> that the precision in GMP isn't set correctly which leads to different
> real variables having different precision. This should be solved when
> Anders have merged.
>
> Anders: I just commit'ed a small update which change a call til error() to
> warning() so the demoes are allowed to run even without calling
> dolfin_set_precision(). This changeset should also be pushed to dolfin.

ok.

> Sorry, I'm don't know Launchpad very well. Should a reply like this be
> posted to dolfin-dev or (in this case) 424159@xxxxxxxxxxxxxxxxxx?

To launchpad, and then it should be redirected again to dolfin-dev.

--
Anders


> Benjamin
>
> > I can confirm that this affects 32-bit systems.
> >
> >
> > Status in DOLFIN: Confirmed
> >
> > Bug description:
> > [ Testing Launchpad's email interface [0]. ]
> >
> > Hi,
> >
> > There is a problem with demo/ode/reaction/cpp when GMP is enabled. I have
> > the latest from HG of all FEniCS packages and this is the output I get
> > when I run the demo:
> >
> > $ ./demo
> > Reaction ODE demo needs to be fixed.
> > Using 128 bits per digit, eps = 4.701977e-39
> > Creating ODE of size 3191.
> > Solving ODE over the time interval [0.0, 0.01]
> >   Solving primal problem
> >     *** Warning: PythonFile: Precision lost. Values will be saved with
> > double precision
> >     Initializing continuous Galerkin method cG(1).
> >     Using multi-adaptive fixed-point solver.
> >     Using discrete tolerance tol = 1e-06....
> >     Computing transpose (inverse) of dependency pattern.
> >     Time-stepping over the time interval [0, 0.01]
> >       *** Warning: Time slab system did not converge.
> >       Direct fixed-point iteration does not converge.
> >       Trying diagonally damped fixed-point iteration.
> >       Rejecting time slab K = 1.000e-05, trying again.
> >       Rejecting time slab K = 8.205e-06, trying again.
> >       Rejecting time slab K = 6.317e-06, trying again.
> >       Rejecting time slab K = 4.628e-06, trying again.
> > demo: dolfin/ode/MultiAdaptiveTimeSlab.cpp:939: void
> > dolfin::MultiAdaptiveTimeSlab::cg_feval(dolfin::real*, dolfin::uint,
> > dolfin::uint, dolfin::uint, dolfin::real, dolfin::real, dolfin::real):
> > Assertion `e1 != -1' failed.
> > [simula-x61:25117] *** Process received signal ***
> > [simula-x61:25117] Signal: Aborted (6)
> > [simula-x61:25117] Signal code:  (-6)
> > [simula-x61:25117] [ 0] [0xb7f8b440]
> > [simula-x61:25117] [ 1] /lib/tls/i686/cmov/libc.so.6(abort+0x101)
> > [0xb5b82a01]
> > [simula-x61:25117] [ 2] /lib/tls/i686/cmov/libc.so.6(__assert_fail+0xee)
> > [0xb5b7a10e]
> > [simula-x61:25117] [ 3]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin21MultiAdaptiveTimeSlab8cg_fevalEP10__gmp_exprIA1_12__mpf_structS3_EjjjS4_S4_S4_+0x133a)
> > [0xb7e9216a]
> > [simula-x61:25117] [ 4]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin29MultiAdaptiveFixedPointSolver9iterationE10__gmp_exprIA1_12__mpf_structS3_EjS4_S4_+0xded)
> > [0xb7eb3b8d]
> > [simula-x61:25117] [ 5]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin14TimeSlabSolver5solveEj+0x17b)
> > [0xb7e896bb]
> > [simula-x61:25117] [ 6]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin14TimeSlabSolver5solveEv+0x42)
> > [0xb7e89eb2]
> > [simula-x61:25117] [ 7]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin21MultiAdaptiveTimeSlab5solveEv+0x117)
> > [0xb7e8f057]
> > [simula-x61:25117] [ 8]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin11TimeStepper4stepERNS_11ODESolutionE10__gmp_exprIA1_12__mpf_structS5_ES6_+0x204)
> > [0xb7ea70c4]
> > [simula-x61:25117] [ 9]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin11TimeStepper4stepERNS_11ODESolutionE+0x84)
> > [0xb7ea75c4]
> > [simula-x61:25117] [10]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin11TimeStepper5solveERNS_11ODESolutionE10__gmp_exprIA1_12__mpf_structS5_ES6_+0x149)
> > [0xb7ea80d9]
> > [simula-x61:25117] [11]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin11TimeStepper5solveERNS_11ODESolutionE+0x66)
> > [0xb7ea8426]
> > [simula-x61:25117] [12]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin9ODESolver12solve_primalERNS_11ODESolutionE+0x72)
> > [0xb7ea54e2]
> > [simula-x61:25117] [13]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin9ODESolver5solveERNS_11ODESolutionE+0x95)
> > [0xb7ea5635]
> > [simula-x61:25117] [14]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin9ODESolver5solveEv+0x4b)
> > [0xb7ea5a1b]
> > [simula-x61:25117] [15]
> > /home/johannr/src/hg/dolfin/local/lib/libdolfin.so.0(_ZN6dolfin3ODE5solveEv+0x3e)
> > [0xb7e9a51e]
> > [simula-x61:25117] [16] ./demo(main+0x454) [0x805a314]
> > [simula-x61:25117] [17]
> > /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe0) [0xb5b6c450]
> > [simula-x61:25117] [18]
> > ./demo(_ZN6dolfin3ODE2JTEPK10__gmp_exprIA1_12__mpf_structS3_EPS4_S6_S4_+0x101)
> > [0x8059d71]
> > [simula-x61:25117] *** End of error message ***
> > Aborted
> >
> >
> > Using gdb I get this:
> >
> > Program received signal SIGABRT, Aborted.
> > [Switching to Thread 0xb57c36c0 (LWP 25525)]
> > 0xb7f57410 in __kernel_vsyscall ()
> > (gdb) where
> > #0  0xb7f57410 in __kernel_vsyscall ()
> > #1  0xb5b4d085 in raise () from /lib/tls/i686/cmov/libc.so.6
> > #2  0xb5b4ea01 in abort () from /lib/tls/i686/cmov/libc.so.6
> > #3  0xb5b4610e in __assert_fail () from /lib/tls/i686/cmov/libc.so.6
> > #4  0xb7e5e16a in dolfin::MultiAdaptiveTimeSlab::cg_feval (this=0x8385ef8,
> > f=0x841f344, s0=0, e0=3188, i0=3188,
> >     a0=@0xbf84d074, b0=@0xbf84d064, k0=@0xbf84d054) at
> > dolfin/ode/MultiAdaptiveTimeSlab.cpp:939
> > #5  0xb7e7fb8d in dolfin::MultiAdaptiveFixedPointSolver::iteration
> > (this=0x841f368, tol=@0xbf84d22c, iter=0,
> >     d0=@0xbf84d21c, d1=@0xbf84d20c) at
> > dolfin/ode/MultiAdaptiveFixedPointSolver.cpp:151
> > #6  0xb7e556bb in dolfin::TimeSlabSolver::solve (this=0x841f368,
> > attempt=0) at dolfin/ode/TimeSlabSolver.cpp:71
> > #7  0xb7e55eb2 in dolfin::TimeSlabSolver::solve (this=0x841f368) at
> > dolfin/ode/TimeSlabSolver.cpp:51
> > #8  0xb7e5b057 in dolfin::MultiAdaptiveTimeSlab::solve (this=0x8385ef8) at
> > dolfin/ode/MultiAdaptiveTimeSlab.cpp:118
> > #9  0xb7e730c4 in dolfin::TimeStepper::step (this=0xbf84d5cc,
> > u=@0xbf84d6d0, t0=@0xbf84d44c, t1=@0xbf84d45c)
> >     at dolfin/ode/TimeStepper.cpp:96
> > #10 0xb7e735c4 in dolfin::TimeStepper::step (this=0xbf84d5cc,
> > u=@0xbf84d6d0) at dolfin/ode/TimeStepper.cpp:78
> > #11 0xb7e740d9 in dolfin::TimeStepper::solve (this=0xbf84d5cc,
> > u=@0xbf84d6d0, t0=@0xbf84d57c, t1=@0xbf84d58c)
> >     at dolfin/ode/TimeStepper.cpp:67
> > #12 0xb7e74426 in dolfin::TimeStepper::solve (this=0xbf84d5cc,
> > u=@0xbf84d6d0) at dolfin/ode/TimeStepper.cpp:54
> > #13 0xb7e714e2 in dolfin::ODESolver::solve_primal (this=0xbf84d868,
> > u=@0xbf84d6d0) at dolfin/ode/ODESolver.cpp:64
> > #14 0xb7e71635 in dolfin::ODESolver::solve (this=0xbf84d868,
> > u=@0xbf84d6d0) at dolfin/ode/ODESolver.cpp:44
> > #15 0xb7e71a1b in dolfin::ODESolver::solve (this=0xbf84d868) at
> > dolfin/ode/ODESolver.cpp:33
> > #16 0xb7e6651e in dolfin::ODE::solve (this=0xbf84d8a8) at
> > dolfin/ode/ODE.cpp:230
> > #17 0x0805a314 in main () at main.cpp:106
> > (gdb)
> >
> >
> > If I reduce the size of the variable N from 5000 to 3190, the demo runs
> > fine.
> >
> > diff -r 717eaa11d058 demo/ode/reaction/cpp/main.cpp
> > --- a/demo/ode/reaction/cpp/main.cpp	Thu Sep 03 11:10:26 2009 +0200
> > +++ b/demo/ode/reaction/cpp/main.cpp	Thu Sep 03 14:34:57 2009 +0200
> > @@ -89,7 +89,7 @@
> >    const real epsilon = 0.01;
> >    const real gamma = 1000.0;
> >    const real L = 1.0;
> > -  const unsigned int N = 5000;
> > +  const unsigned int N = 3190;
> >
> >    // Create ODE
> >    Reaction ode(N, T, L, epsilon, gamma);
> >
> > It only seems to affect 32 bits systems since both hardy-i386 [1] and
> > mac-osx [2] buildbot slaves has this problem while the demo runs fine on
> > jaunty-amd64 and linux64-exp.
> >
> > The demo also runs fine when GMP is disabled.
> >
> > [0] https://help.launchpad.net/Bugs/EmailInterface
> > [1]
> > http://fenics.org:8080/builders/dolfin-hardy-i386/builds/770/steps/dolfin%20check/logs/demo.log
> > [2]
> > http://fenics.org:8080/builders/dolfin-mac-osx/builds/719/steps/dolfin%20check/logs/demo.log
> >
> >  affects dolfin
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/mailman/listinfo/dolfin-dev
> >
>
>
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev

Attachment: signature.asc
Description: Digital signature


References