← Back to team overview

dolfin team mailing list archive

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