Skip to content

Commit

Permalink
Merge pull request #92 from discopop-project/develop
Browse files Browse the repository at this point in the history
Preparation for release 1.4.0

Changelog compared to release 1.3.0:
- bugfixes, stability and performance improvements
- hybrid analysis added to increase profiling performance (DPInstrumentationOmission)
- updated from LLVM 8 to 11
  • Loading branch information
lukasrothenberger authored Oct 19, 2022
2 parents 02102e2 + 42262cf commit 7bbd2e1
Show file tree
Hide file tree
Showing 48 changed files with 4,475 additions and 1,724 deletions.
123 changes: 119 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- name: "Run tests"
run: python -m unittest -v
- name: "Run MyPy Type Checker"
run: python -m mypy --warn-unused-ignores -p discopop_explorer -p discopop_profiler
run: python -m mypy -p discopop_explorer -p discopop_profiler
- name: "Check formatting of discopop_profiler"
run: python -m black -l 100 --check discopop_profiler

Expand All @@ -43,8 +43,11 @@ jobs:
uses: actions/checkout@v2
- name: "Install Dependencies"
run: |
sudo apt-get remove clang-10 clang-9 clang-11
sudo apt-get install libclang-8-dev clang-8 llvm-8
sudo apt-get remove clang-8 clang-10 clang-9 clang-12 clang-11
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main"
sudo apt-get update
sudo apt-get install libclang-11-dev clang-11 llvm-11
- name: "Build DiscoPoP Profiler"
run: |
mkdir build
Expand All @@ -56,4 +59,116 @@ jobs:
with:
python-version: 3.6
- name: "Run DiscoPoP Profiler on test/ Targets"
run: .github/workflows/discopop_profiler/test.sh
run: |
chmod +x .github/workflows/discopop_profiler/test.sh
.github/workflows/discopop_profiler/test.sh
# differential_test_llvm_8_vs_11:
# name: "Differential test: LLVM 8 vs. 11"
# runs-on: ubuntu-20.04
# steps:
# - name: "Checkout Repository"
# uses: actions/checkout@v2
# - name: "Install cmake"
# run: |
# sudo apt-get update
# sudo apt-get install -y cmake
# - name: "Install LLVM 11"
# run: |
# sudo apt-get remove clang-8 clang-10 clang-9 clang-12 clang-11
# wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
# sudo apt-add-repository "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-11 main"
# sudo apt-get update
# sudo apt-get install -y libclang-11-dev clang-11 llvm-11
# sudo ln -s /usr/bin/clang-11 /usr/bin/clang || true
# sudo ln -s /usr/bin/clang++-11 /usr/bin/clang++ || true
# sudo ln -s /usr/bin/llvm-link-11 /usr/bin/llvm-link || true
# sudo ln -s /usr/bin/opt-11 /usr/bin/opt || true
# - name: "Build DiscoPoP Profiler"
# run: |
# mkdir build
# cd build
# cmake -DCMAKE_BUILD_TYPE=Debug ..
# make -j3
# - name: "Create Filemapping"
# run: |
# cp scripts/dp-fmap test/differential_mergesort
# cd test/differential_mergesort
# ./dp-fmap
# - name: "Execute DiscoPoP using LLVM 11"
# run: |
# cd test/differential_mergesort
# ./execute_dp.sh
# - name: "Store Results: LLVM 11"
# run: |
# mkdir ../dp_output_llvm_11
# mv test/differential_mergesort/out_dep.txt ../dp_output_llvm_11
# mv test/differential_mergesort/Data.xml ../dp_output_llvm_11
# mv test/differential_mergesort/loop_counter_output.txt ../dp_output_llvm_11
# mv test/differential_mergesort/reduction.txt ../dp_output_llvm_11
# - name: "Cleanup"
# run: |
# cd test/differential_mergesort
# rm *.txt
# rm out
# - name: "Install LLVM 8"
# run: |
# sudo apt-get remove -y clang-10 clang-9 clang-12 clang-11
# sudo apt-get install -y libclang-8-dev clang-8 llvm-8
# sudo rm /usr/bin/clang
# sudo rm /usr/bin/clang++
# sudo rm /usr/bin/llvm-link
# sudo rm /usr/bin/opt
# sudo ln -s /usr/bin/clang-8 /usr/bin/clang
# sudo ln -s /usr/bin/clang++-8 /usr/bin/clang++
# sudo ln -s /usr/bin/llvm-link-8 /usr/bin/llvm-link
# sudo ln -s /usr/bin/opt-8 /usr/bin/opt
# - name: "Remove DiscoPoP build folder created using LLVM 11"
# run: rm -r build
# - name: "Checkout Repository"
# uses: actions/checkout@v2
# - name: "Checkout commit using LLVM 8"
# run: |
# git fetch
# git checkout c005800d4a44df2c39446786fb8ecb1841308e5a
# - name: "Build DiscoPoP Profiler"
# run: |
# mkdir build
# cd build
# cmake -DCMAKE_BUILD_TYPE=Debug ..
# make -j3
# - name: "Create Filemapping"
# run: |
# cp scripts/dp-fmap test/differential_mergesort
# cd test/differential_mergesort
# ./dp-fmap
# - name: "Execute DiscoPoP using LLVM 8"
# run: |
# cd test/differential_mergesort
# ./execute_dp.sh
# - name: "Store Results: LLVM 8"
# run: |
# mkdir ../dp_output_llvm_8
# mv test/differential_mergesort/out_dep.txt ../dp_output_llvm_8
# mv test/differential_mergesort/Data.xml ../dp_output_llvm_8
# mv test/differential_mergesort/loop_counter_output.txt ../dp_output_llvm_8
# mv test/differential_mergesort/reduction.txt ../dp_output_llvm_8
# - name: "Sort results for sake of comparability"
# run: |
# sort ../dp_output_llvm_11/loop_counter_output.txt >> ../dp_output_llvm_11/loop_counter_output.sorted
# sort ../dp_output_llvm_11/Data.xml >> ../dp_output_llvm_11/Data.sorted
# sort ../dp_output_llvm_11/reduction.txt >> ../dp_output_llvm_11/reduction.sorted
# sort ../dp_output_llvm_11/out_dep.txt >> ../dp_output_llvm_11/out_dep.sorted
# sort ../dp_output_llvm_8/loop_counter_output.txt >> ../dp_output_llvm_8/loop_counter_output.sorted
# sort ../dp_output_llvm_8/Data.xml >> ../dp_output_llvm_8/Data.sorted
# sort ../dp_output_llvm_8/reduction.txt >> ../dp_output_llvm_8/reduction.sorted
# sort ../dp_output_llvm_8/out_dep.txt >> ../dp_output_llvm_8/out_dep.sorted
#
# - name: "Compare results"
# run: |
# # || used for error handling
# cmp ../dp_output_llvm_11/loop_counter_output.sorted ../dp_output_llvm_8/loop_counter_output.sorted || diff ../dp_output_llvm_11/loop_counter_output.sorted ../dp_output_llvm_8/loop_counter_output.sorted
# cmp ../dp_output_llvm_11/Data.sorted ../dp_output_llvm_8/Data.sorted || diff ../dp_output_llvm_11/Data.sorted ../dp_output_llvm_8/Data.sorted
# cmp ../dp_output_llvm_11/reduction.sorted ../dp_output_llvm_8/reduction.sorted || diff ../dp_output_llvm_11/reduction.sorted ../dp_output_llvm_8/reduction.sorted
# cmp ../dp_output_llvm_11/out_dep.sorted ../dp_output_llvm_8/out_dep.sorted || diff ../dp_output_llvm_11/out_dep.sorted ../dp_output_llvm_8/out_dep.sorted
#
Empty file modified .github/workflows/discopop_profiler/test.sh
100755 → 100644
Empty file.
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ data*/
# our test data
!/test/*/data/

# discopop temporary files
discopop-tmp/*

# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
Expand All @@ -11,6 +14,9 @@ __pycache__/
# PyCharm
.idea/

# Visual Studio Code
.vscode/

# Distribution / packaging
.Python
build/
Expand Down
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
cmake_minimum_required(VERSION 3.4.3)
project(DiscoPoP)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)

set(LLVM_DIR ${LLVM_DIST_PATH}/lib/cmake/llvm)
find_package(LLVM 8.0 REQUIRED CONFIG)
find_package(LLVM 11.1 REQUIRED CONFIG)
message(STATUS "Using LLVM version ${LLVM_PACKAGE_VERSION}")
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
list(APPEND CMAKE_MODULE_PATH ${LLVM_CMAKE_DIR})
Expand All @@ -23,4 +23,5 @@ add_subdirectory(CUGeneration)
add_subdirectory(CUInstantiation)
add_subdirectory(DPInstrumentation)
add_subdirectory(DPReduction)
add_subdirectory(DPInstrumentationOmission)
add_subdirectory(rtlib)
Loading

0 comments on commit 7bbd2e1

Please sign in to comment.