On Tue, Mar 18, 2008 at 10:05:04AM +0100, Dag Lindbo wrote: > As per request, I ran some 2d tests of evaluation of a P1-function > (Laplace demo C++, UnitSquare mesh) at a set of random points (cost of > randomization small fraction of runtime). > > Almost only initialization: > Elapsed time: 0.010000 Points: 1 Mesh 64 x 64 > Elapsed time: 0.070000 Points: 1 Mesh 128 x 128 > Elapsed time: 0.340000 Points: 1 Mesh 256 x 256 > Elapsed time: 1.460000 Points: 1 Mesh 512 x 512 > > The first 10000 evaluations are almost free: > Elapsed time: 0.040000 Points: 10000 Mesh 64 x 64 > Elapsed time: 0.110000 Points: 10000 Mesh 128 x 128 > Elapsed time: 0.400000 Points: 10000 Mesh 256 x 256 > Elapsed time: 1.540000 Points: 10000 Mesh 512 x 512 > > Here the cost of initialization is reasonably amortized: > Elapsed time: 2.850000 Points: 1000000 Mesh 64 x 64 > Elapsed time: 3.610000 Points: 1000000 Mesh 128 x 128 > Elapsed time: 4.780000 Points: 1000000 Mesh 256 x 256 > Elapsed time: 6.610000 Points: 1000000 Mesh 512 x 512 > > From 1e6 to 4e6 evaulation the scaling is linear: > Elapsed time: 11.77000 Points: 4000000 Mesh 64 x 64 > Elapsed time: 14.21000 Points: 4000000 Mesh 128 x 128 > Elapsed time: 18.21000 Points: 4000000 Mesh 256 x 256 > Elapsed time: 22.17000 Points: 4000000 Mesh 512 x 512
Nice! > Another conclusion: > Initialization does not scale so well with mesh size (as expected). > Finding some points, however, does scale well with bigger meshes. > > /Dag > PS. And some valgrinding confirms that there is no memory leaking. > (Use G_SLICE=always-malloc to supress "errors" from GLib). Good to know. Do you know if there's a way to put this into some configuration file for valgrind so one doesn't need to remember writing it? -- Anders _______________________________________________ DOLFIN-dev mailing list [email protected] http://www.fenics.org/mailman/listinfo/dolfin-dev
