Hello Rossi,
                   It seems it is the projection functions that are
computationally expensive. Would it be possible for you to run with the
PatchRecovery estimator, and see if that results in a similar performance ?

Thanks.


> On Apr 27, 2017, at 12:14, Vikram Garg <[email protected]> wrote:
>
> Rossi, yes compiling with perflog should give you all the details as in
> the example.
>
>
>
>
>
> On Thu, Apr 27, 2017 at 10:54 AM, Rossi, Simone <[email protected]>
> wrote:
>
>> Dear Vikram,
>> as in the examples, I am using the libmesh::KellyErrorEstimator.
>>
>> I’m  compiling libmesh with the  --enable-perflog option. Does it
>> automatically give all the details you have listed in the example?
>>
>> For the time being, I am attaching two perfLogs I had saved with only
>> “coarse scale” data for 2 levels of refinements.
>> It looks like that most of the time is spent in the AMR step, probably in
>> the call to reinit().
>>
>> Thanks,
>> Simone
>>
>> NO AMR:
>>
>>  -----------------------------------------------------------
>> -------------------------------------------------
>> | perf_log Performance: Alive time=18.0494, Active time=18.0426
>>                                    |
>>  -----------------------------------------------------------
>> -------------------------------------------------
>> | Event                         nCalls     Total Time  Avg Time    Total
>> Time  Avg Time    % of Active Time  |
>> |                                          w/o Sub     w/o Sub     With
>> Sub    With Sub    w/o S    With S   |
>> |-----------------------------------------------------------
>> -------------------------------------------------|
>> | no amr matrix assembly               1          0.1545      0.154465
>>  0.1545      0.154465    0.86     0.86     |
>> | no amr linear solve                     101        4.8069      0.047593
>>    4.8069      0.047593    26.64    26.64    |
>> | no amr rhs  assembly                 101        12.0348     0.119156
>>  12.0348     0.119156    66.70    66.70    |
>> | time loop                                         1          1.0464
>>  1.046422    17.8884     17.888405   5.80     99.15    |
>>  -----------------------------------------------------------
>> -------------------------------------------------
>> | Totals:                                            204        18.0426
>>                                       100.00            |
>>  -----------------------------------------------------------
>> -------------------------------------------------
>>
>>
>> AMR:
>>
>> ------------------------------------------------------------
>> ------------------------------------------------
>> | perf_log Performance: Alive time=209.305, Active time=209.298
>>                                    |
>>  -----------------------------------------------------------
>> -------------------------------------------------
>> | Event                         nCalls     Total Time  Avg Time    Total
>> Time  Avg Time    % of Active Time  |
>> |                                          w/o Sub     w/o Sub     With
>> Sub    With Sub    w/o S    With S   |
>> |-----------------------------------------------------------
>> -------------------------------------------------|
>> |
>>                                    |
>> | amr                               303        195.1102    0.643928
>>  195.1102    0.643928    93.22    93.22    |
>> | amr solve                     303        13.9907      0.046174
>>  13.9907      0.046174    6.68     6.68     |
>> | time loop                         1          0.1974       0.197370
>>  209.2990    209.299042  0.09     100.00   |
>>  -----------------------------------------------------------
>> -------------------------------------------------
>> | Totals:                       607        209.2983
>>                  100.00            |
>>  -----------------------------------------------------------
>> -------------------------------------------------​
>>
>>
>> On Apr 27, 2017, at 11:02, Vikram Garg <[email protected]> wrote:
>>
>> Hello Rossi,
>>                    Two questions:
>>
>> 1) Which error estimator/indicator are you using to mark elements for
>> refinement ?
>>
>> 2) Can you send the perfLog output from libMesh ? You might need to
>> recompile libMesh with the option --enable-perflog.
>>
>> Looks something like this:
>>
>>  -----------------------------------------------------------
>> ------------------------------------------------------
>> | libMesh Performance: Alive time=0.013423, Active time=0.007095
>>                                          |
>>  -----------------------------------------------------------
>> ------------------------------------------------------
>> | Event                              nCalls     Total Time  Avg Time
>>  Total Time  Avg Time    % of Active Time  |
>> |                                               w/o Sub     w/o Sub
>> With Sub    With Sub    w/o S    With S   |
>> |-----------------------------------------------------------
>> ------------------------------------------------------|
>> |
>>                                         |
>> |
>>                                         |
>> | DofMap
>>                                          |
>> |   add_neighbors_to_send_list()     6          0.0001      0.000012
>>  0.0001      0.000012    1.01     1.01     |
>> |   build_sparsity()                 6          0.0002      0.000033
>>  0.0011      0.000187    2.78     15.84    |
>> |   create_dof_constraints()         6          0.0000      0.000001
>>  0.0000      0.000001    0.07     0.07     |
>> |   distribute_dofs()                6          0.0001      0.000025
>>  0.0004      0.000066    2.09     5.57     |
>> |   dof_indices()                    688        0.0010      0.000001
>>  0.0010      0.000001    14.36    14.36    |
>> |   old_dof_indices()                300        0.0001      0.000000
>>  0.0001      0.000000    0.96     0.96     |
>> |   prepare_send_list()              7          0.0000      0.000000
>>  0.0000      0.000000    0.01     0.01     |
>> |   reinit()                         6          0.0002      0.000041
>>  0.0002      0.000041    3.48     3.48     |
>> |
>>                                         |
>> | EquationSystems
>>                                         |
>> |   build_solution_vector()          1          0.0001      0.000056
>>  0.0001      0.000064    0.79     0.90     |
>>
>>
>> Thanks.
>>
>> On Wed, Apr 26, 2017 at 10:09 PM, Rossi, Simone <[email protected]>
>> wrote:
>>
>>> Dear Roy, dear Paul, dear all,
>>> I am testing AMR in libmesh using simple linear elements.
>>> My test case is a propagating front described by a reaction-diffusion
>>> equation with a cubic bistable reaction term.
>>> I followed the adaptivity examples to create this test case.
>>>
>>> The run times for 100 timesteps using AMR can be more than 10 times
>>> slower than when using a fine uniform grid.
>>> For example, with a 16 x 16 x 16 uniform grid, 100 iterations take about
>>> 18 seconds with a single processor.
>>> With AMR, using a 2 x 2 x 2 grid and 3 levels of refinement, 100
>>> iterations take about 800 seconds.
>>>
>>> I’m attaching the code I’m using.
>>> Without AMR, I build the matrix ( mass + dt * stiffness ) once and I
>>> update the rhs at every timestep.
>>> Conversely, with AMR I am building the matrix and the rhs at every
>>> timestep for all the refinement levels.
>>> Do you have any suggestions?
>>>
>>> Thanks a lot for your help,
>>> All the best,
>>> Simone
>>>
>>>
>>> ------------------------------------------------------------
>>> ------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org <http://slashdot.org/>! http://sd
>>> m.link/slashdot
>>> _______________________________________________
>>> Libmesh-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>>>
>>>
>>
>>
>> --
>> Vikram Garg
>> Postdoctoral Associate
>> The University of Texas at Austin
>>
>> http://vikramvgarg.wordpress.com/
>> http://www.runforindia.org/runners/vikramg
>>
>>
>>
>
>
> --
> Vikram Garg
> Postdoctoral Associate
> The University of Texas at Austin
>
> http://vikramvgarg.wordpress.com/
> http://www.runforindia.org/runners/vikramg
>
>
>


-- 
Vikram Garg
Postdoctoral Associate
The University of Texas at Austin

http://vikramvgarg.wordpress.com/
http://www.runforindia.org/runners/vikramg
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to