Speaker
Dr
Charles Leggett
(LAWRENCE BERKELEY NATIONAL LABORATORY)
Description
Runtime memory usage in experiments has grown enormously in recent years,
especially in large experiments like Atlas. However, it is difficult
to break down total memory usage as indicated by OS-level tools, to
identify the precise users and abusers. Without a detailed knowledge
of memory footprints, monitoring memory growth as an experiment
evolves in order to control ballooning inflation, is ineffective.
We present a process that make use of Reflex to traverse the contents
of all objects in the event store. As each object is encountered, its
constituents are analysed using Reflex based introspection, to determine
their true memory footprint. Pointers to other constituent objects are
recursively followed, and their full sizes are added to the
total. Runtime configuration allows specific object types to be
ignored. Simultaneously, the values of all data members can be
printed, using either their fundamental types, or an optional user
supplied method. Address maps are kept to ensure that multiple
counting does not occur. By using these procedures, the analysis and
reconstruction software can be monitored in a historical fashion, with
statistics produced to show which objects and object containers grow
or shrink in size, and likewise can be monitored for data quality
consistency and release validation.
Summary
Using C++ based object introspection to monitor full memory footprint of
objects in an event store, for event size control, and dumping of data member
contents for data quality and release validation.
Submitted on behalf of Collaboration (ex, BaBar, ATLAS) | ATLAS |
---|
Author
Dr
Charles Leggett
(LAWRENCE BERKELEY NATIONAL LABORATORY)