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://
>> sdm.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
------------------------------------------------------------------------------
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