[Dune] restart and factory

Marco Cisternino marco.cisternino at optimad.it
Thu Aug 27 18:21:41 CEST 2015


Thanks Andreas,
I use top for memory measuring.
I'll try to isolate grid restart from the rest of the code to see if restarting only the grid causes the same phenomenon.
If yes, I'll write you attaching a toy code to try it.
Otherwise, I'll search a memory leak in my code.
Just another question: I use persistent containers; after an adaptation these persistent container are resized, changing their sizes, but what about their capacity and their memory footprint?

Thanks again,

Marco

________________________________________
Da: Andreas Dedner <a.s.dedner at warwick.ac.uk>
Inviato: giovedì 27 agosto 2015 18.12
A: dune at dune-project.org; Marco Cisternino
Oggetto: Re: [Dune] restart and factory

Hi.
Could you tell me how you measured the memory consumption of each
process -  did you use some C tool for doing this or used one of the
columns provided by top? It is clear that during the actual restoring of
the grid process zero needs quite a large chunk of memory to load the
full grid but after load balance this memory should be freed up again -
otherwise there is a memory leak which I haven't seen so far with alugrid.

> probably it keeps
> some information in memory (the factory??).
There is no factory involved in this case, since the backup/restore is
based on alugrid internal structures and doesn't go through any grid
factory.

Best
Andreas

On 27/08/15 16:37, Marco Cisternino wrote:
> Good morning,
>
> I'm facing a problem I would like to share with you.
>
> I'm talking about restart.
>
> I'm using Dune 2.3 and ALUGrid 1.52.
>
> Let me say that I launched my code using 1 process and I stopped it,
> exiting with a backup of the grid obtained by writeGrid<Dune::xdr>.
>
> Then, I want to launch a new run on 4 processes starting from the grid
> of the previous run.
>
> I  do it using readGrid<Dune::xdr> and then I call a load balance to
> distribute the grid to the other 3 processes.
>
> Everything works fine, but...
>
> If, at runtime after a successful load balance, I check the memory usage
> of every process, process 0 uses more memory than the other processes.
>
> It loaded the grid before my call to load balance and probably it keeps
> some information in memory (the factory??).
>
> Is there a way to free this amount of memory? Or this information must
> live in the 0 process memory?
>
> For large grid, this behaviour can make one node to swap, drastically
> lowering the code performances.
>
>
> Any hint is really appreciated.
>
> Thanks for your attention.
>
>
> Bests,
>
> Marco
>
>
>
> _______________________________________________
> Dune mailing list
> Dune at dune-project.org
> http://lists.dune-project.org/mailman/listinfo/dune
>




More information about the Dune mailing list