The Gaudi Framework
v30r3 (a5ef0a68)
|
Integration of Jemalloc within Gaudi jobs. Uses the Jemalloc library from http://www.canonware.com/jemalloc/
It is possible to profile the memory used by Gaudi jobs, using the jemalloc library as documented in https://github.com/jemalloc/jemalloc/wiki
To run the profiler, it is necessary to:
gaudirun.py has been updated to set the environment accordingly (a prerequisite is however that libjemalloc.so has to be available in the library path).
A Gaudi algorithm has also been developed to perform memory heap dumps at various event, and is configured using the StartFromEventN, StopAtEventN and DumpPeriod, as described in the example below.
A Gaudi service is also available to provide the same functionality, with the advantage of being able to profile without modifying the algorithm sequence.
Simple example of using the JemallocProfile algorithm in a Gaudi configurable:
Please note the the --profilerName=jemalloc
to enbale the profiling, and the --run-info-file
that produces a file containing information useful to interpret the results (process id of the Gaudi job, and the absolute path of the executable, necessary to run the jeprof analysis tool).
Simple example of using the JemallocProfileSvc service in a Gaudi configurable:
It is also possible to trigger the profiling using incidents:
This is identical as for the algorithm version.
The jeprof analysis tool from the Google performances tools (http://goog-perftools.sourceforge.net/) is necessary to analyze the heap files.
It can be used to compare the memory in two heap files in the following way: