This release is a pre-release and may not be stable for production use.
DiscoPoP - Discovery of Potential Parallelism
DiscoPoP is an open-source tool that helps software developers parallelize their programs with threads. It is a joint project of the High-Performance Computing Lab @ TU Darmstadt and the Software Analytics and Pervasive Parallelism Lab at Iowa State University.
In a nutshell, DiscoPoP performs the following steps:
- detect parts of the code (computational units or CUs) with little to no internal parallelization potential,
- find data dependences among them,
- identify parallel patterns that can be used to parallelize a code region,
- and finally, suggest corresponding OpenMP parallelization constructs and clauses to programmers.
A more comprehensive overview of DiscoPoP can be found on our project website.
Prerequisites
You need Python 3.11 or newer, LLVM/clang 19-22 with development files, CMake 3.28 or newer, a C++20 compiler, the Boost headers, and Tk with a display for the GUI. The profiler is built during the installation.
On Debian and Ubuntu:
sudo apt install python3 python3-pip python3-venv python3-tk build-essential cmake git llvm-19-dev clang-19 clang-tools-19 libomp-19-dev libboost-dev
Replace 19 with 20, 21, or 22 for a newer LLVM release. Ubuntu 24.04 packages LLVM 19 and 20, Debian 13 packages 19 and 22; other versions are available from apt.llvm.org.
For Arch-based distributions (pacman) and macOS (Homebrew), see the installation page. These routes are not tested in CI.
Installation
python3 -m venv venv
source venv/bin/activate
pip install discopop
To install from a checkout of this repository, see the installation page.
Starting the GUI
Your project has to build with the compilers and flags given in $CC/$CXX and $CFLAGS/$CXXFLAGS. Start the GUI in the project directory:
cd <your project>
discopop_gui
On the first start, a wizard asks for your compile script and an execution script, and creates the first configuration. See Getting started for the details.
What the GUI can do
Detect parallel patterns: the Execute tab manages the profiling and the Pattern Detection tab analyzes the profiling data of your program in order to identify and present parallelization suggestions in the form of OpenMP constructs and corresponding patches.
Find the combination that pays off: the Autotuning tab measures combinations of the suggestions on your program and shows the speedup of each.
Documentation
- Getting started: install DiscoPoP and work through the GUI.
- Manual: installation options, examples, all tools and the data they produce.
- MCP server: lets AI assistants run DiscoPoP.
- VS Code extension: an extension to the GUI for browsing suggestions in the editor.
Contact
In case any issues arise, please contact us via GitHub messages or by mail to discopop-support@lists.parallel.informatik.tu-darmstadt.de.
License
© DiscoPoP is available under the terms of the BSD-3-Clause license, as specified in the LICENSE file.
Metadata
Release files for discopop 5.0.3a2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| discopop-5.0.3a2.tar.gz | 6.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| discopop-5.0.3a2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.4 kB
Release files / discopop-5.0.3a2.tar.gz
| Download URL | discopop-5.0.3a2.tar.gz |
|---|---|
| Size | 6.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
65ceb08977ab88635a2ebe38edb69b558801ac9208f49b2290ba5d2b13c9d27c
|
|
BLAKE2b-256 checksum How to use checksums |
12a2f32a5b4bb28c3ee9023d5808f21efd697b242ed957c04e485669356497a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency logRelease files / discopop-5.0.3a2-py3-none-any.whl
| Download URL | discopop-5.0.3a2-py3-none-any.whl |
|---|---|
| Size | 5.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
82d9aba9353f4102a23f8501dd2f303e0d06fdaffc672362918b946b0b858f4e
|
|
BLAKE2b-256 checksum How to use checksums |
4ef4ed2567087ad20d751c7b9762896350f567b725dde1ffbcdc5ed4524c0727
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 16, 2026.
Transparency log