What needs to be done is to use the DofMap to initialise the sparse
matrix pattern (at least for uBLAS). What happens now is that everything
is assembled into a uBLAS vector-of-compressed-vectors (fast assembly),
which is then copied to a CSR matrix (for fast matrix vector mult or for
passing to UMFPACK). Using DofMap, the CSR matrix could be initialised.
This should make things faster and use less memory
Also, which problem are you assembling? Scalar Poisson equation can be
misleading as it tends to fill sparse matrices quite fast even if they
are not well initialised. This tends to show up with vector equations.
Garth
Anders Logg wrote:
There is a benchmark for assembly in src/bench/fem/assembly/.
We should use this to track the speed of assembly during the
planned changes to the Assembly and DofMap classes.
The assembly is now 59% slower than it was before the DofMap (and
maybe other changes).
0.63-dev (changeset 1d485299d95)
CPU time: 87.8056
0.6.4 (changeset 49bf8f3ca3d9)
CPU time: 139.686
Note that the benchmarks are run with --enable-optimization.
Let's try to get back to the speed we had before or at least find out
exactly what takes time. It might be that computing the nonzero
pattern is what takes more time, but that this is necessary to reduce
the memory usage.
/Anders
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev
_______________________________________________
DOLFIN-dev mailing list
DOLFIN-dev@xxxxxxxxxx
http://www.fenics.org/mailman/listinfo/dolfin-dev