Options
This section lists the available command-line options and their meanings.
Option Name | Value Type | Description | Default Value | Option Value |
---|---|---|---|---|
module | string | Function selector: "monitor" enables perf and PEBS latency sampling, "build" uses PFBuilder to analyze historical data, "esti" uses PFEstimator, "analy" uses PFAnalyser, "mater" uses PFMaterializer. To enable both sampling and analysis, use the online parameter. | empty | monitor, build, esti, analy, mater |
path | string | Select target mFlow path(s), comma-separated. Used in "monitor" to specify sampling targets, and in "build"/"esti"/"analy"/"mater" to specify analysis targets. | empty | DRd, RFO, HWPF, DWr |
pmu | string | Select target component(s), comma-separated. 'default' indicates all components. | empty | core32-SB, ..., socket1-CHA0-31 |
app | string | In "monitor" : specify the app command to run and monitor. In "build"/"esti"/"analy"/"mater" : specify the app key to fetch historical data from the database. | — | — |
savename | string | If set, uses this as the alias for storing and retrieving data in InfluxDB. | — | — |
file | string | Export counter data in chronological order to an Excel .xlsx file. | — | — |
time | number | Sampling time interval in seconds. | 5 | — |
app_exist | string | In "monitor" : monitor for already running app. In "build"/"esti"/"analy"/"mater" : specify the app key to fetch historical data from the database. | — | — |
monitor
Parameters
path
DRd
,RFO
,HWPF
,DWr
for core and CHA componentsLD
,ST
for iMC and M2PCIe PMUs
component
Defined in analyse/config.conf
- Supports multiple components via comma separation, e.g.
core32-SB, core32-L1D, core32-LFB, core32-L2, core33-LFB
- Supports aggregating counters from multiple small components, e.g.
socket1-CHA0-31
aggregates all 32 CHAs on socket1
Collector Example
Collect core and uncore counter data for mbw
and store in InfluxDB with app=mbw1024
tag:
python3.8 main.py monitor -app "mbw -t1 -n 2000 1024" -savename mbw1024
Analyse
PathFinder supports command-line parameters to specify the target app, module, mFlow path, and components.
By setting module
to PFBuilder, PFEstimator, PFAnalyser, or PFMaterializer, you can inspect different metrics of the monitored application.
Use path
to select DRd/RFO/HWPF/DWr (or LD/ST), and pmu
to specify which components to trace: SB/L1D/LFB/L2/LLC/CHA/MC.
Offline Analysis
Analyze historical app counter data stored in the InfluxDB database.
PFBuilder
python3.8 main.py build -path DRd,RFO,HWPF,DWr,LD,ST -pmu default -app 525.x264_r-memnode4
python3.8 main.py build -path DRd,RFO,HWPF,DWr,LD,ST -pmu core32-SB,core32-L1D,core32-LFB,core32-L2,core33-LFB,socket1-CHA0,socket1-CHA31,socket1-PCIe5 -app 525.x264_r-memnode4
PFEstimator
python3.8 main.py esti -path DRd,RFO,HWPF,DWr -pmu default -app 525.x264_r-memnode4
python3.8 main.py esti -path DRd,RFO,HWPF,DWr -pmu core32-SB,core32-L1D,core32-LFB,core32-L2,core33-LFB,core47-SB,core47-L1D,core47-LFB,core47-L2,socket1-CHA0,socket1-CHA31 -app 525.x264_r-memnode4
PFAnalyser
python3.8 main.py analy -path DRd,RFO,HWPF,DWr -pmu default -app workloada-10mbw
python3.8 main.py analy -path DRd,RFO,HWPF,DWr -pmu core32-SB,core32-L1D,core32-LFB,core32-L2,core32-core_LLC,core33-LFB,core47-SB,core47-L1D,core47-LFB,core47-L2,socket1-CHA0,socket1-CHA31 -app workloada-10mbw
PFMaterializer
python3.8 main.py mater -path DWr,DRd,RFO,HWPF,LD,ST -app 525.x264_r-memnode4 -pmu core32-L2 -option cluster
python3.8 main.py mater -path DWr,DRd,RFO,HWPF,LD,ST -app 525.x264_r-memnode4 -pmu core32-L2 -option trend
Online Analysis
Analyze counter data in real time as it is being collected:
python3.8 main.py monitor -app "sudo numactl --physcpubind=32 --membind=4 mbw -t1 -n 2000 1024" -online estimate -time 5
python3.8 main.py monitor -app "mbw -t1 -n 2000 1024" -online analy