On Thu, Jul 17, 2008 at 11:19:09PM +0100, Garth N. Wells wrote:
It's now easy to play with the sandbox programs in
sandbox/mtl4/poisson_bench
sandbox/mtl4/nse_bench
All you need to do is set the environment variable MTL4_DIR to point to
the MTL4 source, and then run scons in the relevant directory.
Works fine here.
What's clear is that we should take a look at the efficiency of the
sparsity computation. In particular, there are some virtual functions
calls which can possibly be avoided, or at least minimised. Even when
using MTL4 for general problems it will be necessary to compute some
form of a sparsity pattern to estimate the number of nonzeros per row.
It would be useful to use the same assembler for MTL4 as is used for
other linear algebra backends to see what influence that has.
I think it would be good to move the MTL4 interface into dolfin/la as
soon as possible. The missing functions can return an error until they
have been fixed.
Then we should include MTL4 in the main assembly benchmark which is
bench/fem/assembly/
If possible, we should figure out a way to run this benchmark
regularly (like we do with the buildbot) so we can check for
regressions.
The results for uninitialised MTL4 matrices are indeed impressive, as is
the re-assembly time for Navier-Stokes.
uBLAS and PETSc deliver almost identical performance for all tests.
Here's what I get on my laptop (for n = 32). Do you get similar
results?
Summary: MTL4 uBLAS
First matrix assembly 2.95 7.99
Matrix re-assembly 2.51 3.58
Vector assembly 2.38 2.49