The lightweight monitoring module LWM2 is a low overhead profiler developed during the course of the HOPSA project. It can profile applications without any modification by a user. The lightweight measurement module uses a hybrid approach to profile an application. It samples the profiled application at regular intervals to keep track of application activity. To keep the overhead low, LWM2 avoids stack unwinding at each application sample. Instead, it utilizes direct instrumentation to earmark regions of interest in an application. When an application is sampled, the earmarks are checked to identify the region of application execution. As a result, LWM2 is able to profile application with reasonable knowledge of application activity while maintaining low overhead. This hybrid approach also allows LWM2 to keep track of the time spent by an application in different regions of execution without directly measuring the time in these regions. The hybrid profiling approach is also used to collect additional dat a of interest for some specific application activities. This includes the MPI communication calls and the amount of data transfer, the POSIX file I/O calls and associated data transfers, etc.
LWM2 profiles MPI using the PMPI interface provided for profiling while it profiles POSIX file I/O by dynamic function interposing. It also measures the performance of multithreading in an application by estimating the effective thread count. Finally, CUDA applications are profiled through the CUPTI interface while the system hardware counters are profiled to collect the sequential performance information about the application.
Open source: New BSD
German Research School for Simulation Sciences