Skip to main content

Options

This section lists the available command-line options and their meanings.

Option NameValue TypeDescriptionDefault ValueOption Value
modulestringFunction 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.emptymonitor, build, esti, analy, mater
pathstringSelect target mFlow path(s), comma-separated. Used in "monitor" to specify sampling targets, and in "build"/"esti"/"analy"/"mater" to specify analysis targets.emptyDRd, RFO, HWPF, DWr
pmustringSelect target component(s), comma-separated. 'default' indicates all components.emptycore32-SB, ..., socket1-CHA0-31
appstringIn "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.
savenamestringIf set, uses this as the alias for storing and retrieving data in InfluxDB.
filestringExport counter data in chronological order to an Excel .xlsx file.
timenumberSampling time interval in seconds.5
app_existstringIn "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 components
  • LD, 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