Manual

The manual is the detailed reference of DiscoPoP. It is for users who want to go beyond the graphical workflow: install DiscoPoP in a non-standard way, run single tools on the command line, interpret the output files, or contribute to DiscoPoP.

Components

DiscoPoP consists of seven Python packages, which pip install discopop installs together (the package discopop depends on all others).

Folder PyPI name Console scripts Purpose
profiler discopop-profiler discopop_cc, discopop_cxx LLVM instrumentation pass and runtime library; compiler wrappers that instrument C and C++ code
explorer discopop-explorer discopop_explorer Pattern detection on the profiling data
library discopop-library discopop_gui, discopop_project_manager, discopop (alias of discopop_project_manager), discopop_patch_generator, discopop_patch_applicator, discopop_patch_repair, discopop_auto_tuner, discopop_optimizer, discopop_config_provider, discopop_sanity_checker, discopop_preprocessor, discopop_dependency_comparator, discopop_parallel_region_merger The project manager with the GUI, the patch tools, the autotuner and the helper tools
hotspot_detection discopop-hotspot-detection discopop_hotspot_analyzer, discopop_hotspot_cc, discopop_hotspot_cxx Instrumentation that measures the hotness of code regions, and its analysis
mcp_server discopop-mcp-server (module name discopop_mcp_server) discopop_mcp_server MCP server that lets AI assistants run DiscoPoP
GUI discopop-gui none GUI components (graph visualizers); see below
. (root) discopop none Meta package that depends on all of the above

The discopop_gui command comes from discopop-library: the GUI is part of the project manager (library/discopop_library/ProjectManager/gui). The folder GUI/ holds GUI components and declares no console script. The explorer depends on discopop-library, the library on discopop-hotspot-detection.

Workflow

flowchart TD
    CC["discopop_cc / discopop_cxx<br/>instrument and build"] --> RUN["run the program"]
    RUN --> PROF[".discopop/profiler"]
    HS["hotspot detection<br/>discopop_hotspot_cc / _cxx"] --> HOT["hotspot results"]
    PROF --> EXP["discopop_explorer"]
    HOT --> EXP
    EXP --> PAT["patterns.json and patches"]
    PAT --> REP["patch repair"]
    REP --> TUN["discopop_auto_tuner"]
    PAT --> TUN
    HOT --> TUN
    TUN --> APP["apply the best combination<br/>discopop_patch_applicator"]
    PM["project manager and GUI"] -.drives.-> CC
    PM -.drives.-> EXP
    PM -.drives.-> TUN
    MCP["MCP server"] -.drives.-> PM

The project manager and the GUI run these steps for you; the MCP server lets an AI assistant do the same.

Guide to the sections

Section Content
Setup Installation, build options, environment variables, VS Code extension
Examples Command line walk-through, project manager on the command line, GUI walk-through, VS Code extension walk-through
Tools Every tool with its options, from compiler wrappers to the explorer, the patch tools, the autotuner and the MCP server
Data The files DiscoPoP writes: profiling output, explorer output, parallel patterns
How to contribute Development setup, code style, tests and the pull request process

Copyright © 2026, Technical University of Darmstadt.

This site uses Just the Docs, a documentation theme for Jekyll.