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...