[aspect-devel] performance
Wolfgang Bangerth
bangerth at math.tamu.edu
Thu Feb 28 12:10:14 PST 2013
Hi Cedric,
let me take this to the mailing list.
> I have been carrying out a few tests yesterday. I took standard cookbook input
> files and
> used 16x16 , 32x32 … 512x512, … and 16x16x16, 32x32x32, etc … grids in 2D and
> 3D respectively
> and looked at the time needed to carry out /one/ solve (only one core, no
> parallelism).
> I attach my measurements. Does this look reasonable to you ?
In parts. I think the scaling graph looks reasonable. In fact, the fact that
you get almost linear scaling with the # of DoFs is pretty good (exclude the
last 2d points and you'll get an exponent close to one).
> Also, I attach the standard output of the 64x64x64 case.
> The solve times look very reasonable (on 1 core) but I fail to understand
> why the code spends 9190s on 'Setup dof systems' and about an hour
> for the assembly of each matrix. Is that normal for such a regular grid ?
That one is the part I don't understand. This measures the time spent in the
Simulator::setup_dofs function, in source/simulator/core.cc, lines 560 and
following. Can you try to find out which part of the function is the problem?
One way to do that is to put a block of the kind
computing_timer.exit_section();
computing_timer.enter_section("test");
into the middle and depending whether the time is spent in the old or new
section, move this piece of the code up or down till you identify which part
it is. Alternatively, since you're on a single processor, you can also just
enter debug output every few lines with printf of the code and watch the
output while it runs which line takes a long time to show up. You'll probably
want to do it with a smaller size than 64^3 :-)
Thanks for helping to figure these things out!
Best
W.
--
------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth at math.tamu.edu
www: http://www.math.tamu.edu/~bangerth/
More information about the Aspect-devel
mailing list