dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #08802
Re: Assembly benchmark
On Mon, Jul 21, 2008 at 3:55 PM, Matthew Knepley <knepley@xxxxxxxxx> wrote:
> On Mon, Jul 21, 2008 at 3:50 PM, Garth N. Wells <gnw20@xxxxxxxxx> wrote:
>>
>>
>> Anders Logg wrote:
>>> On Mon, Jul 21, 2008 at 01:48:23PM +0100, Garth N. Wells wrote:
>>>>
>>>> Anders Logg wrote:
>>>>> I have updated the assembly benchmark to include also MTL4, see
>>>>>
>>>>> bench/fem/assembly/
>>>>>
>>>>> Here are the current results:
>>>>>
>>>>> Assembly benchmark | Elasticity3D PoissonP1 PoissonP2 PoissonP3 THStokes2D NSEMomentum3D StabStokes2D
>>>>> -------------------------------------------------------------------------------------------------------------
>>>>> uBLAS | 9.0789 0.45645 3.8042 8.0736 14.937 9.2507 3.8455
>>>>> PETSc | 7.7758 0.42798 3.5483 7.3898 13.945 8.1632 3.258
>>>>> Epetra | 8.9516 0.45448 3.7976 8.0679 15.404 9.2341 3.8332
>>>>> MTL4 | 8.9729 0.45554 3.7966 8.0759 14.94 9.2568 3.8658
>>>>> Assembly | 7.474 0.43673 3.7341 8.3793 14.633 7.6695 3.3878
>>>>>
>>
>>
>> I specified in MTL4Matrix maximum 30 nonzeroes per row, and the results
>> change quite a bit,
>>
>> Assembly benchmark | Elasticity3D PoissonP1 PoissonP2 PoissonP3
>> THStokes2D NSEMomentum3D StabStokes2D
>>
>> -------------------------------------------------------------------------------------------------------------
>> uBLAS | 7.1881 0.32748 2.7633 5.8311
>> 10.968 7.0735 2.8184
>> PETSc | 5.7868 0.30673 2.5489 5.2344
>> 9.8896 6.069 2.3661
>> MTL4 | 2.8641 0.18339 1.6628 2.6811
>> 2.8519 3.4843 0.85029
>> Assembly | 5.5564 0.30896 2.6858 5.9675
>> 10.622 5.7144 2.4519
>>
>>
>> MTL4 is a lot faster in all cases.
Okay, if you run KSP ex2 (Poisson 2D) and add a logging stage that
times assembly (I checked it in to petsc-dev)
then 1M unknowns takes about 1s
Matrix Object:
type=seqaij, rows=1000000, cols=1000000
total: nonzeros=4996000, allocated nonzeros=5000000
not using I-node routines
Summary of Stages: ----- Time ------ ----- Flops ----- ---
Messages --- -- Message Lengths -- -- Reductions --
Avg %Total Avg %Total counts
%Total Avg %Total counts %Total
0: Main Stage: 1.4997e+00 56.3% 3.8891e+08 100.0% 0.000e+00
0.0% 0.000e+00 0.0% 2.200e+01 51.2%
1: Assembly: 1.1648e+00 43.7% 0.0000e+00 0.0% 0.000e+00
0.0% 0.000e+00 0.0% 0.000e+00 0.0%
I just cut the solve off. Thus all thos enumber are extemely fishy.
Matt
> Now I don't believe the numbers. If you preallocate, we do not do any
> extra processing
> outside of sorting the column indices (which every format must do for
> efficient operations).
> Thus, how would you save any time? If these are all in seconds, I will
> run a 2D Poisson here
> and tell you what I get. It would help to specify sizes with this benchmark :)
>
> Matt
>
>> Garth
>>
>>
>>
>>>> How was the MTL4 matrix intialised? I don't know if it does anything
>>>> with the sparsity pattern yet. I've been intialising MTL4 matrices by
>>>> hand so far with a guess as to the max number of nonzeroes per row.
>>>> Without setting this, the performance is near idenetical to uBLAS. When
>>>> it is set, I observe at least a factor two speed up.
>>>>
>>>> Garth
>>>
>>> The same way as all other backends, which is by a precomputed
>>> sparsity pattern. It looks like this is currently ignored in the
>>> MTL4Matrix implementation:
>>>
>>> void MTL4Matrix::init(const GenericSparsityPattern& sparsity_pattern)
>>> {
>>> init(sparsity_pattern.size(0), sparsity_pattern.size(1));
>>> }
>>>
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> 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
>>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which
> their experiments lead.
> -- Norbert Wiener
>
--
What most experimenters take for granted before they begin their
experiments is infinitely more interesting than any results to which
their experiments lead.
-- Norbert Wiener
Follow ups
References