dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #07949
Re: profiling an assembly
On Sun, May 18, 2008 at 09:07:08PM +0200, Dag Lindbo wrote:
> >
> > Dag: A test suite/benchmark would be very good to have. We need to
> > have something in bench/fem/assembly that we can trust and run
> > regularly to make sure we don't have regressions.
> >
>
> Here is a suite of performance tests for the dolfin assembler:
> http://www.csc.kth.se/~dag/dolfin/dolfin_assembler_bench.tar.gz
>
> It does seven tests. Assembly and reassembly of the following (bilinear)
> forms:
> Elasticity (3d), Incompressible NS Momentum (3d), Laplace on linear (2d),
> Laplace on quadratic (2d), Laplace on cubic (2d), Stokes TH (2d), Stokes
> stabilized (2d). This seems to me to be a blend of different types of
> forms.
>
> The design of these tests is as modular as possible, so one can easily add
> more tests. The top-level SConstruct builds the whole thing. Run with
> run_tests.py
>
> The output as produced by by workstation (2.4GHz Core2Duo, 2gb ddr2, 32bit
> os) using the uBlas backend:
> http://www.csc.kth.se/~dag/dolfin/results_uBlas_opt
> There clearly is a spread in assembler performance for different forms.
>
> I suspect that you want to tweak the assembly_tester function to make it
> backend-invariant.
>
> Enjoy!
> /Dag
Nice. Have you used anything backend-specific? Otherwise it would be
nice to present the results for all backends. This should be fairly
simple to do using the newly added option to specify the backend
dynamically:
dolfin_set("linear algebra backend", "PETSc");
// Run code, using Vector and Matrix
dolfin_set("linear algebra backend", "uBLAS");
// Run code, using Vector and Matrix
dolfin_set("linear algebra backend", "Epetra");
// Run code, using Vector and Matrix
--
Anders
Follow ups
References