Dr. Guyer, your table is fascinating -- thanks!
It looks like you guys figured out what was
going on.

Here are a few observations from playing around
with LinearPCGSolver.  Looking at cProfile's
output for the 1000x1000 case

               total  solve
               time   time   t-s   s/t
pysparse       175     37    138   0.21
tril Default   459    327    132   0.71
tril PCG       247    116    131   0.47

Pysparse is certainly efficient.

Some timing results for different size
meshes:
                 500x500   1000x1000
pysparse           36         175
tril Default      101         459
tril PCG           57         238
tril PCG -n 2      30         137
tril PCG -n 4      21.5       115

In this particular problem, looking only at
the PCG case, the improvement from adding
the first processor is much bigger than
adding 2 more.  On the 500x500 mesh, "-n 2"
makes the calculation go a whopping 47%
faster; which seems too good to be true,
but I've done this sequence a few times.
Using "-n 4" only gives you an additional
28%.  At 1000x1000, the values are 42% and
16%.

I haven't made any attempt to verify con-
sistent results across the various solvers.
That's probably a good idea.  Dr Guyer --
did you happen to notice?

Of course the very obvious question is:
how does one choose the right solver and
preconditioner?  Perhaps it just requires
a bit of empirical probing...

Reply via email to