#2354: consider using malloc_trim after regrid to return memory to the OS
| Reporter: | Roland Haas |
| Status: | new |
| Milestone: | |
| Version: | |
| Type: | enhancement |
| Priority: | minor |
| Component: | Carpet |
Memory usage in an AMR run can be quite uneven between MPI ranks and also tends to peak during a regrid. See #2194 for a case study. The growth in RSS can eventually lead to OOM situations as memory is not returned to the OS for use by other processes. Using the (GNU extension) malloc_trim can help make the malloc code return memory to the OS. Since this somewhat slows down future malloc calls, since a new allocation will require a round trip to the kernel, this should not done after every single free call but likely only after a regrid which entails a temporary spike in memory usage. Possible also after IO if the memory used to send data to rank 0 for writing becomes an issue (see #1853).
Similar effects to calling malloc_trim can be achieved by setting env variables as mentioned in #2194.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2354/consider-using-malloc_trim-after-regrid-to