lo2s - Lightweight Node-level Performance Monitoring
lo2s is available as open source at https://github.com/tud-zih-energy/lo2s
lo2s creates parallel OTF2 traces with a focus on both application and system view. The traces can contain any of the following information:
- From running threads
- Calling context samples based on instruction overflows
- The calling context samples are annotated with the disassembled assembler instruction string
- The framepointer-based call-path for each calling context sample
- Per-thread performance counter readings
- Which thread was scheduled on which CPU at what time
- From the system
- Metrics from tracepoints (e.g. the selected C-state or P-state)
- The node-level system tree (cpus (HW-threads), cores, packages)
- CPU power measurements (x86_energy)
- Microarchitecture specific metrics (x86_adapt, per package or per core)
- Arbitrary metrics through plugins (Score-P compatible)
lo2s operates either in process monitoring or system monitoring mode.
With process monitoring, all information is grouped by each thread of a monitored process group - it shows you on which CPU is each monitored thread running.
lo2s either acts as a prefix command to run the process (and also tracks its children), or
lo2s attaches to a running process.
In the system monitoring mode, information is grouped by logical CPU - it shows you which thread was running on a given CPU. Metrics are also shown per CPU.
In both modes, system-level metrics (e.g. tracepoints), are always grouped by their respective system hardware component.