-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
6c5f42a
commit 99fec6b
Showing
1 changed file
with
28 additions
and
29 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -26,32 +26,31 @@ For a brief introduction into the command line tools, please refer to the [tools | |
|
||
For detailed information on the gathered and stored data as well as the tools themselves, please refer to [data](data/data.md) and the pages of the individual tools in the [tools overview](tools/tools.md). | ||
|
||
The simplest option to install and use DiscoPoP is provided by the [graphical user interface](Tutorials/Configuration_Wizard.md). | ||
For convenience, it provides the option to use a docker container to execute the profiling. | ||
As a result, no setup of the environment apart from installing `docker` is required. | ||
Please refer to the [Quickstart Guide - GUI](Quickstart.md) for further information. | ||
|
||
For detailed instructions regarding the manual setup and installation, please refer to the [manual setup](Manual_Quickstart/Manual_Setup.md) page. | ||
|
||
## Running DiscoPoP | ||
After completing the setup, an instrumented Version of your code needs to be executed in order to gather the necessary information. | ||
The included analyses and generated data are described [here](Profiling/Profiling.md). | ||
The instrumentation and execution can be done [manually](Tutorials/Manual.md). | ||
However, to simplify the process we suggest to use one of the provided tools (GUI: [Configuration Wizard](Tutorials/Configuration_Wizard.md), Script: [Execution Wizard](Tutorials/Execution_Wizard.md)), if your project fulfills the following criteria: | ||
* Build system: Make | ||
* Makefile allows to set the compiler using CC, CXX | ||
* Build does not create shared libraries | ||
|
||
## Pattern identfication | ||
Once you have all the results generated by the DiscoPoP Profiler, you can use them to identify possible parallel design patterns. | ||
To learn more, please read the [pattern detection](Pattern_Detection/DiscoPoP_Explorer.md) page, which explains how to start the pattern identification in detail. | ||
|
||
## Pattern interpretation | ||
After parallel patterns have been identified in the sequential source code, they need to be interpreted and implemented. | ||
A detailed explanation how to interpret and implement the identified parallel patterns can be found [here](Pattern_Detection/Patterns/Patterns.md). | ||
The previously mentioned pattern identification as well as the pattern interpretation can be simplified by using the [graphical wizard](Tutorials/Configuration_Wizard.md). | ||
|
||
## Walk-through example | ||
As a starting point, we have included a simple sample program which you can use to familiarize yourself with the system. | ||
In the [manual Quickstart example](Manual_Quickstart/Manual_Example.md) you can find instructions how to execute every necessary step to obtain parallelization suggestions for the sample program, and how to interpret and implement them. | ||
In contrast, the GUI [quickstart example](Quickstart.md) provides an overview of the simplest way to set up and utilize DiscoPoP on the basis of the same example code. | ||
## TL;DR | ||
This example installs DiscoPoP, instruments and builds the provided example, analyzes the results and prints the identified parallelization suggestions to the console. | ||
In case any issues arise during the process, please refer to the detailed [setup instructions](setup/setup.md), or contact us via GitHub messages or by mail to [[email protected]](mailto:[email protected]). | ||
``` | ||
# setup DiscoPoP | ||
git clone [email protected]:discopop-project/discopop.git | ||
cd discopop | ||
git checkout release/3.1.0 | ||
mkdir build && cd build | ||
DP_BUILD=$(pwd) | ||
cmake .. && make | ||
# instrument example code | ||
cd ../example | ||
mkdir build && cd build && cmake -DCMAKE_CXX_COMPILER=${DP_BUILD}/scripts/CXX_wrapper.sh .. && make | ||
# execute instrumented code | ||
./cmake_example | ||
# identify parallel patterns | ||
cd .discopop | ||
discopop_explorer | ||
# create applicable patches from patterns | ||
discopop_patch_generator | ||
# print patches to the console | ||
for f in $(find patch_generator -maxdepth 1 -type d); do | ||
echo "SUGGESTION: $f" | ||
cat $f/1.patch | ||
echo "" | ||
done | ||
``` |