Valgrind Utility

Memory Benchmarking

If you are unaware of the memory needs of a job, you might want to reserve an entire node to do what is called memory benchmarking (getting sense of how an application behaves to different constraints). For many simulation kinds, there is a direct correlation between the sample size and memory (for ex. memory allocation could be linear with the size of a 1D grid). If time is an issue, section "memory forecasting" below could be an alternative. Below are the steps to profiling memory usage (taking memory snapshots at certain intervals in time) of a particular process:

Forecasting Memory Resource Requirement (linear interpolation)

Memory estimation runs could be time-consuming in cases that have enormous sample sizes. "Fortune telling" could be of some help in cases where linear interpolation thrives. Even in chaotic, and non-linear cases, choice of an appropriate basis could be of some help. A variable 1D grid of various sample sizes, and memory consumption follows :

5,255.9

10,258.7

15,263.1

20,266.8

25,269.7

30,est

35,est

40,est

Here are some values the last three of which are compared to actual memory usage: