diff --git a/projects/rocprofiler-systems/.cmake-format.yaml b/projects/rocprofiler-systems/.cmake-format.yaml index 6bb8efd007..108cfc7698 100644 --- a/projects/rocprofiler-systems/.cmake-format.yaml +++ b/projects/rocprofiler-systems/.cmake-format.yaml @@ -24,6 +24,8 @@ parse: TARGET: '*' MPI: '*' NUM_PROCS: '*' + REWRITE_TIMEOUT: '*' + RUNTIME_TIMEOUT: '*' REWRITE_ARGS: '*' RUNTIME_ARGS: '*' RUN_ARGS: '*' diff --git a/projects/rocprofiler-systems/.github/workflows/cancelling.yml b/projects/rocprofiler-systems/.github/workflows/cancelling.yml index e5532dbb4d..e66f407ec3 100644 --- a/projects/rocprofiler-systems/.github/workflows/cancelling.yml +++ b/projects/rocprofiler-systems/.github/workflows/cancelling.yml @@ -1,7 +1,8 @@ name: cancel-builds-on-update on: workflow_run: - workflows: ['linux-ci', 'formatting'] + # workflows: ['formatting', 'ubuntu-bionic', 'ubuntu-focal-dyninst-package', 'ubuntu-focal-external-rocm', 'ubuntu-focal-external', 'ubuntu-focal'] + workflows: ['formatting', 'ubuntu-focal-external', 'ubuntu-focal-external-rocm'] types: ['requested'] jobs: diff --git a/projects/rocprofiler-systems/.github/workflows/linux-ci.yml b/projects/rocprofiler-systems/.github/workflows/linux-ci.yml deleted file mode 100644 index 9f4da83578..0000000000 --- a/projects/rocprofiler-systems/.github/workflows/linux-ci.yml +++ /dev/null @@ -1,553 +0,0 @@ -name: linux-ci - -on: - push: - branches: [ main, develop ] - pull_request: - branches: [ main, develop ] - -env: - BUILD_TYPE: Release - ELFUTILS_DOWNLOAD_VERSION: 0.183 - OMNITRACE_DEBUG_FINALIZE: ON - OMNITRACE_VERBOSE: 1 - OMNITRACE_CI: ON - -jobs: - ubuntu-focal: - runs-on: ubuntu-20.04 - strategy: - matrix: - compiler: ['g++'] - mpi: [ '', 'libmpich-dev mpich', 'libopenmpi-dev openmpi-bin libfabric-dev' ] - - steps: - - uses: actions/checkout@v2 - - - name: Install Packages - timeout-minutes: 5 - run: - sudo apt-get update && - sudo apt-get install -y build-essential m4 autoconf libtool python3-pip libtbb-dev libboost-{atomic,system,thread,date-time,filesystem,timer}-dev clang libomp-dev ${{ matrix.compiler }} ${{ matrix.mpi }} && - python3 -m pip install --upgrade pip && - python3 -m pip install 'cmake==3.16.3' - - - name: Configure Env - run: - echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && - echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && - echo "/opt/omnitrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH && - echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - - - name: Configure CMake - timeout-minutes: 5 - run: - cmake --version && - if [ -z "${{ matrix.mpi }}" ]; then USE_MPI=OFF; else USE_MPI=ON; fi && - cmake -B ${{ github.workspace }}/build - -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') - -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} - -DCMAKE_INSTALL_PREFIX=/opt/omnitrace - -DOMNITRACE_BUILD_TESTING=ON - -DOMNITRACE_BUILD_DYNINST=ON - -DOMNITRACE_USE_MPI=${USE_MPI} - -DOMNITRACE_USE_HIP=OFF - -DDYNINST_BUILD_ELFUTILS=ON - -DDYNINST_BUILD_LIBIBERTY=ON - -DDYNINST_BUILD_SHARED_LIBS=ON - -DDYNINST_BUILD_STATIC_LIBS=OFF - - - name: Build - timeout-minutes: 45 - run: - cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1 - - - name: Install - run: - cmake --build ${{ github.workspace }}/build --target install --parallel 2 - - - name: Test - timeout-minutes: 30 - working-directory: ${{ github.workspace }}/build - run: - ctest -V --output-log ${{ github.workspace }}/build/omnitrace-ctest-ubuntu-focal.log - - - name: Test Install - timeout-minutes: 10 - run: | - set -v - export OMNITRACE_DEBUG=ON - which omnitrace-avail - ldd $(which omnitrace-avail) - omnitrace-avail --help - omnitrace-avail -a - which omnitrace-critical-trace - ldd $(which omnitrace-critical-trace) - which omnitrace - ldd $(which omnitrace) - omnitrace --help - omnitrace -e -v 1 -o ls.inst --simulate -- ls - for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -o ls.inst -- ls - ./ls.inst - omnitrace -e -v 1 --simulate -- ls - for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -- ls - - - name: CTest Artifacts - uses: actions/upload-artifact@v2 - with: - name: ctest-log - path: | - ${{ github.workspace }}/build/*.log - - - name: Data Artifacts - uses: actions/upload-artifact@v2 - with: - name: data-files - path: | - ${{ github.workspace }}/build/omnitrace-tests-output/**/*.txt - - ubuntu-bionic: - runs-on: ubuntu-18.04 - strategy: - matrix: - compiler: ['g++-7', 'g++-8'] - mpi: [ '', 'libmpich-dev mpich' ] - - steps: - - uses: actions/checkout@v2 - - - name: Install Packages - timeout-minutes: 5 - run: - sudo apt-get update && - sudo apt-get install -y build-essential m4 autoconf libtool python3-pip ${{ matrix.compiler }} ${{ matrix.mpi }} && - python3 -m pip install --upgrade pip && - python3 -m pip install 'cmake==3.16.3' - - - name: Configure Env - run: - echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && - echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && - echo "/opt/omnitrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH && - echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - - - name: Configure CMake - timeout-minutes: 5 - run: - cmake --version && - if [ -z "${{ matrix.mpi }}" ]; then USE_MPI=OFF; else USE_MPI=ON; fi && - cmake -B ${{ github.workspace }}/build - -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') - -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} - -DCMAKE_INSTALL_PREFIX=/opt/omnitrace - -DOMNITRACE_BUILD_TESTING=ON - -DOMNITRACE_BUILD_DYNINST=ON - -DOMNITRACE_USE_MPI=${USE_MPI} - -DOMNITRACE_USE_HIP=OFF - -DDYNINST_BUILD_TBB=ON - -DDYNINST_BUILD_BOOST=ON - -DDYNINST_BUILD_ELFUTILS=ON - -DDYNINST_BUILD_LIBIBERTY=ON - - - name: Build - timeout-minutes: 45 - run: - cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1 - - - name: Install - run: - cmake --build ${{ github.workspace }}/build --target install --parallel 2 - - - name: Test - timeout-minutes: 30 - working-directory: ${{ github.workspace }}/build - run: - ctest -V --output-log ${{ github.workspace }}/build/omnitrace-ctest-ubuntu-bionic.log - - - name: Test Install - timeout-minutes: 10 - run: | - set -v - export OMNITRACE_DEBUG=ON - which omnitrace-avail - ldd $(which omnitrace-avail) - omnitrace-avail --help - omnitrace-avail -a - which omnitrace-critical-trace - ldd $(which omnitrace-critical-trace) - which omnitrace - ldd $(which omnitrace) - omnitrace --help - omnitrace -e -v 1 -o ls.inst --simulate -- ls - for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -o ls.inst -- ls - ./ls.inst - omnitrace -e -v 1 --simulate -- ls - for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -- ls - - - name: CTest Artifacts - uses: actions/upload-artifact@v2 - with: - name: ctest-log - path: | - ${{ github.workspace }}/build/*.log - - - name: Data Artifacts - uses: actions/upload-artifact@v2 - with: - name: data-files - path: | - ${{ github.workspace }}/build/omnitrace-tests-output/**/*.txt - - ubuntu-focal-external: - runs-on: ubuntu-20.04 - strategy: - matrix: - compiler: ['g++-7', 'g++-8', 'g++-9', 'g++-10'] - - steps: - - uses: actions/checkout@v2 - - - name: Install Packages - timeout-minutes: 5 - run: - sudo apt-get update && - sudo apt-get install -y build-essential m4 autoconf libtool python3-pip libboost-{atomic,system,thread,date-time,filesystem,timer}-dev libtbb-dev libiberty-dev clang libomp-dev ${{ matrix.compiler }} && - sudo python3 -m pip install --upgrade pip && - python3 -m pip install 'cmake==3.16.3' - - - name: Configure Env - run: - echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && - echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && - echo "CMAKE_PREFIX_PATH=/opt/dyninst:/opt/elfutils:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV && - echo "/opt/omnitrace/bin:/opt/dyninst/bin:/opt/elfutils/bin:${HOME}/.local/bin" >> $GITHUB_PATH && - echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:/opt/dyninst/lib:/opt/elfutils/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - - - name: Install ElfUtils - timeout-minutes: 5 - run: - pushd external && - wget https://sourceware.org/elfutils/ftp/${ELFUTILS_DOWNLOAD_VERSION}/elfutils-${ELFUTILS_DOWNLOAD_VERSION}.tar.bz2 && - tar xjf elfutils-${ELFUTILS_DOWNLOAD_VERSION}.tar.bz2 && - pushd elfutils-${ELFUTILS_DOWNLOAD_VERSION} && - CFLAGS="-g -O2" ./configure --enable-install-elfh --prefix=/opt/elfutils --disable-libdebuginfod --disable-debuginfod && - make -j2 && - make install -j2 && - popd && - rm -rf elfutils* - - - name: Install Dyninst - timeout-minutes: 25 - run: - cmake --version && - git submodule update --init external/dyninst && - cd external/dyninst && - cmake -B build - -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') - -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_INSTALL_PREFIX=/opt/dyninst && - cmake --build build --target all --parallel 2 && - cmake --build build --target install --parallel 2 && - rm -rf build - - - name: Configure CMake - timeout-minutes: 5 - run: - cmake --version && - cmake -B ${{ github.workspace }}/build - -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') - -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DCMAKE_INSTALL_PREFIX=/opt/omnitrace - -DOMNITRACE_BUILD_TESTING=ON - -DOMNITRACE_USE_MPI=OFF - -DOMNITRACE_USE_HIP=OFF - - - name: Build - timeout-minutes: 45 - run: - cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1 - - - name: Install - run: - cmake --build ${{ github.workspace }}/build --target install --parallel 2 - - - name: Test - timeout-minutes: 30 - working-directory: ${{ github.workspace }}/build - run: - ldd ./omnitrace && - ./omnitrace --help && - ctest -V --output-log ${{ github.workspace }}/build/omnitrace-ctest-ubuntu-focal-external.log - - - name: Test Install - timeout-minutes: 10 - run: | - set -v - export OMNITRACE_DEBUG=ON - which omnitrace-avail - ldd $(which omnitrace-avail) - omnitrace-avail --help - omnitrace-avail -a - which omnitrace-critical-trace - ldd $(which omnitrace-critical-trace) - which omnitrace - ldd $(which omnitrace) - omnitrace --help - omnitrace -e -v 1 -o ls.inst --simulate -- ls - for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -o ls.inst -- ls - ./ls.inst - omnitrace -e -v 1 --simulate -- ls - for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -- ls - - - name: CTest Artifacts - uses: actions/upload-artifact@v2 - with: - name: ctest-log - path: | - ${{ github.workspace }}/build/*.log - - - name: Data Artifacts - uses: actions/upload-artifact@v2 - with: - name: data-files - path: | - ${{ github.workspace }}/build/omnitrace-tests-output/**/*.txt - - ubuntu-focal-dyninst-package: - runs-on: ubuntu-20.04 - strategy: - matrix: - compiler: ['g++'] - - steps: - - uses: actions/checkout@v2 - - - name: Install Packages - timeout-minutes: 5 - run: - sudo apt-get update && - sudo apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev ${{ matrix.compiler }} && - sudo python3 -m pip install --upgrade pip && - python3 -m pip install 'cmake==3.16.3' - - - name: Configure Env - run: - echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && - echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && - echo "CMAKE_PREFIX_PATH=/opt/dyninst:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV && - echo "/opt/omnitrace/bin:/opt/dyninst/bin:${HOME}/.local/bin" >> $GITHUB_PATH && - echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:/opt/dyninst/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - - - name: Install Dyninst - timeout-minutes: 25 - run: - cmake --version && - git submodule update --init external/dyninst && - cd external/dyninst && - cmake -B build - -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') - -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} - -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/external/dyninst-install - -DBUILD_TBB=ON - -DBUILD_BOOST=ON - -DBUILD_ELFUTILS=ON - -DBUILD_LIBIBERTY=ON && - cmake --build build --target package --parallel 4 && - mkdir /opt/dyninst && - ./build/Dyninst-*-Linux.sh --prefix=/opt/dyninst --exclude-subdir --skip-license && - rm -rf build - - - name: Configure CMake - timeout-minutes: 5 - run: - cmake --version && - cmake -B ${{ github.workspace }}/build - -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') - -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} - -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} - -DCMAKE_INSTALL_PREFIX=/opt/omnitrace - -DOMNITRACE_BUILD_TESTING=ON - -DOMNITRACE_USE_MPI=OFF - -DOMNITRACE_USE_HIP=OFF - - - name: Build - timeout-minutes: 45 - run: - cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1 - - - name: Install - run: - cmake --build ${{ github.workspace }}/build --target install --parallel 2 - - - name: Test - timeout-minutes: 30 - working-directory: ${{ github.workspace }}/build - run: - ldd ./omnitrace && - ./omnitrace --help && - ctest -V --output-log ${{ github.workspace }}/build/omnitrace-ctest-ubuntu-focal-dyninst-package.log - - - name: Test Install - timeout-minutes: 10 - run: | - set -v - export OMNITRACE_DEBUG=ON - which omnitrace-avail - ldd $(which omnitrace-avail) - omnitrace-avail --help - omnitrace-avail -a - which omnitrace-critical-trace - ldd $(which omnitrace-critical-trace) - which omnitrace - ldd $(which omnitrace) - omnitrace --help - omnitrace -e -v 1 -o ls.inst --simulate -- ls - for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -o ls.inst -- ls - ./ls.inst - omnitrace -e -v 1 --simulate -- ls - for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -- ls - - - name: CTest Artifacts - uses: actions/upload-artifact@v2 - with: - name: ctest-log - path: | - ${{ github.workspace }}/build/*.log - - - name: Data Artifacts - uses: actions/upload-artifact@v2 - with: - name: data-files - path: | - ${{ github.workspace }}/build/omnitrace-tests-output/**/*.txt - - ubuntu-focal-external-rocm: - runs-on: ubuntu-20.04 - strategy: - matrix: - compiler: ['g++'] - rocm_version: ['4.3', '4.3.1', '4.5'] - mpi: [ 'libmpich-dev mpich', 'libopenmpi-dev openmpi-bin libfabric-dev' ] - - steps: - - uses: actions/checkout@v2 - - - name: Install Packages - timeout-minutes: 5 - run: - echo '1' | sudo tee /proc/sys/kernel/perf_event_paranoid && - sudo apt-get update && - sudo apt-get install -y software-properties-common wget gnupg2 && - sudo wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | sudo apt-key add - && - echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/${{ matrix.rocm_version }}/ ubuntu main" | sudo tee /etc/apt/sources.list.d/rocm.list && - sudo apt-get update && - sudo apt-get install -y build-essential m4 autoconf libtool python3-pip libboost-{atomic,system,thread,date-time,filesystem,timer}-dev libtbb-dev libiberty-dev clang libomp-dev ${{ matrix.compiler }} libudev-dev libnuma-dev rocm-dev rocm-utils roctracer-dev rocprofiler-dev hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev ${{ matrix.mpi }} libpapi-dev && - sudo python3 -m pip install --upgrade pip && - python3 -m pip install 'cmake==3.16.3' - - - name: Configure Env - run: - echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && - echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && - echo "CMAKE_PREFIX_PATH=/opt/dyninst:/opt/elfutils:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV && - echo "/opt/omnitrace/bin:/opt/dyninst/bin:/opt/elfutils/bin:${HOME}/.local/bin" >> $GITHUB_PATH && - echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:/opt/dyninst/lib:/opt/elfutils/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV - - - name: Install ElfUtils - timeout-minutes: 5 - run: - pushd external && - wget https://sourceware.org/elfutils/ftp/${ELFUTILS_DOWNLOAD_VERSION}/elfutils-${ELFUTILS_DOWNLOAD_VERSION}.tar.bz2 && - tar xjf elfutils-${ELFUTILS_DOWNLOAD_VERSION}.tar.bz2 && - pushd elfutils-${ELFUTILS_DOWNLOAD_VERSION} && - CFLAGS="-O3" ./configure --enable-install-elfh --prefix=/opt/elfutils --disable-libdebuginfod --disable-debuginfod && - make -j2 && - make install -j2 && - popd && - rm -rf elfutils* - - - name: Install Dyninst - timeout-minutes: 25 - run: - cmake --version && - git submodule update --init external/dyninst && - cd external/dyninst && - cmake -B build - -DCMAKE_C_COMPILER=${CC} - -DCMAKE_CXX_COMPILER=${CXX} - -DCMAKE_BUILD_TYPE=Release - -DCMAKE_INSTALL_PREFIX=/opt/dyninst && - cmake --build build --target all --parallel 2 && - cmake --build build --target install --parallel 2 && - rm -rf build - - - name: Configure CMake - timeout-minutes: 5 - run: - cmake --version && - cmake -B ${{ github.workspace }}/build - -DCMAKE_C_COMPILER=${CC} - -DCMAKE_CXX_COMPILER=${CXX} - -DCMAKE_BUILD_TYPE=RelWithDebInfo - -DCMAKE_INSTALL_PREFIX=/opt/omnitrace - -DOMNITRACE_BUILD_TESTING=OFF - -DOMNITRACE_BUILD_DEVELOPER=ON - -DOMNITRACE_BUILD_EXTRA_OPTIMIZATIONS=OFF - -DOMNITRACE_BUILD_LTO=OFF - -DOMNITRACE_USE_MPI=OFF - -DOMNITRACE_USE_MPI_HEADERS=ON - -DOMNITRACE_USE_HIP=ON - -DOMNITRACE_MAX_THREADS=256 - -DOMNITRACE_USE_SANITIZER=OFF - -DTIMEMORY_USE_PAPI=ON - - - name: Build - timeout-minutes: 45 - run: - cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1 - - - name: Install - run: - cmake --build ${{ github.workspace }}/build --target install --parallel 2 - - - name: Test - timeout-minutes: 30 - working-directory: ${{ github.workspace }}/build - run: - ldd ./omnitrace && - ./omnitrace --help - - - name: Test Install - timeout-minutes: 10 - run: | - set -v - export OMNITRACE_DEBUG=ON - which omnitrace-avail - ldd $(which omnitrace-avail) - omnitrace-avail --help - omnitrace-avail -a - which omnitrace-critical-trace - ldd $(which omnitrace-critical-trace) - which omnitrace - ldd $(which omnitrace) - omnitrace --help - omnitrace -e -v 1 -o ls.inst --simulate -- ls - for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -o ls.inst -- ls - ./ls.inst - omnitrace -e -v 1 --simulate -- ls - for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done - omnitrace -e -v 1 -- ls diff --git a/projects/rocprofiler-systems/.github/workflows/ubuntu-bionic.yml b/projects/rocprofiler-systems/.github/workflows/ubuntu-bionic.yml new file mode 100644 index 0000000000..8c09bba4b7 --- /dev/null +++ b/projects/rocprofiler-systems/.github/workflows/ubuntu-bionic.yml @@ -0,0 +1,122 @@ +name: ubuntu-bionic + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] + +env: + BUILD_TYPE: Release + ELFUTILS_DOWNLOAD_VERSION: 0.183 + OMNITRACE_DEBUG_FINALIZE: ON + OMNITRACE_VERBOSE: 1 + OMNITRACE_CI: ON + GIT_DISCOVERY_ACROSS_FILESYSTEM: 1 + +jobs: + ubuntu-bionic: + runs-on: ubuntu-18.04 + container: + image: jrmadsen/omnitrace-ci:ubuntu-18.04 + strategy: + matrix: + compiler: ['g++-7', 'g++-8'] + mpi: [ '', 'libmpich-dev mpich' ] + + steps: + - name: Patch Git + timeout-minutes: 5 + run: | + apt-get update + apt-get install -y software-properties-common + add-apt-repository -y ppa:git-core/ppa + apt-get update + apt-get upgrade -y + apt-get install -y git + + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Install Packages + timeout-minutes: 5 + run: + apt-get update && + apt-get upgrade -y && + apt-get install -y build-essential m4 autoconf libtool python3-pip ${{ matrix.compiler }} ${{ matrix.mpi }} && + python3 -m pip install --upgrade pip && + python3 -m pip install 'cmake==3.16.3' + + - name: Configure Env + run: + echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && + echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && + echo "/opt/omnitrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH && + echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + + - name: Configure CMake + timeout-minutes: 5 + run: + cmake --version && + if [ -z "${{ matrix.mpi }}" ]; then USE_MPI=OFF; else USE_MPI=ON; fi && + cmake -B build + -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') + -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} + -DCMAKE_INSTALL_PREFIX=/opt/omnitrace + -DOMNITRACE_BUILD_TESTING=ON + -DOMNITRACE_BUILD_DYNINST=OFF + -DOMNITRACE_USE_MPI=${USE_MPI} + -DOMNITRACE_USE_HIP=OFF + + - name: Build + timeout-minutes: 45 + run: + cmake --build build --target all --parallel 2 -- VERBOSE=1 + + - name: Install + run: + cmake --build build --target install --parallel 2 + + - name: Test + timeout-minutes: 30 + run: + cd build && + ctest -V --output-log build/omnitrace-ctest-ubuntu-bionic.log + + - name: Test Install + timeout-minutes: 10 + run: | + set -v + export OMNITRACE_DEBUG=ON + which omnitrace-avail + ldd $(which omnitrace-avail) + omnitrace-avail --help + omnitrace-avail -a + which omnitrace-critical-trace + ldd $(which omnitrace-critical-trace) + which omnitrace + ldd $(which omnitrace) + omnitrace --help + omnitrace -e -v 1 -o ls.inst --simulate -- ls + for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -o ls.inst -- ls + ./ls.inst + omnitrace -e -v 1 --simulate -- ls + for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -- ls + + - name: CTest Artifacts + uses: actions/upload-artifact@v2 + with: + name: ctest-log + path: | + build/*.log + + - name: Data Artifacts + uses: actions/upload-artifact@v2 + with: + name: data-files + path: | + build/omnitrace-tests-output/**/*.txt diff --git a/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-dyninst-package.yml b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-dyninst-package.yml new file mode 100644 index 0000000000..15a0931c6c --- /dev/null +++ b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-dyninst-package.yml @@ -0,0 +1,127 @@ +name: ubuntu-focal-dyninst-package + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] + +env: + BUILD_TYPE: Release + ELFUTILS_DOWNLOAD_VERSION: 0.183 + OMNITRACE_DEBUG_FINALIZE: ON + OMNITRACE_VERBOSE: 1 + OMNITRACE_CI: ON + +jobs: + ubuntu-focal-dyninst-package: + runs-on: ubuntu-20.04 + strategy: + matrix: + compiler: ['g++'] + + steps: + - uses: actions/checkout@v2 + + - name: Install Packages + timeout-minutes: 5 + run: + sudo apt-get update && + sudo apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev libopenmpi-dev openmpi-bin libfabric-dev ${{ matrix.compiler }} && + sudo python3 -m pip install --upgrade pip && + python3 -m pip install 'cmake==3.16.3' + + - name: Configure Env + run: + echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && + echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && + echo "CMAKE_PREFIX_PATH=/opt/dyninst:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV && + echo "/opt/omnitrace/bin:/opt/dyninst/bin:${HOME}/.local/bin" >> $GITHUB_PATH && + echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:/opt/dyninst/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + + - name: Install Dyninst + timeout-minutes: 25 + run: + cmake --version && + git submodule update --init external/dyninst && + cd external/dyninst && + cmake -B build + -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') + -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} + -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/external/dyninst-install + -DBUILD_TBB=ON + -DBUILD_BOOST=ON + -DBUILD_ELFUTILS=ON + -DBUILD_LIBIBERTY=ON && + cmake --build build --target package --parallel 4 && + mkdir /opt/dyninst && + ./build/Dyninst-*-Linux.sh --prefix=/opt/dyninst --exclude-subdir --skip-license && + rm -rf build + + - name: Configure CMake + timeout-minutes: 5 + run: + cmake --version && + cmake -B ${{ github.workspace }}/build + -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') + -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} + -DCMAKE_INSTALL_PREFIX=/opt/omnitrace + -DOMNITRACE_BUILD_TESTING=ON + -DOMNITRACE_USE_MPI=OFF + -DOMNITRACE_USE_MPI_HEADERS=ON + -DOMNITRACE_USE_HIP=OFF + + - name: Build + timeout-minutes: 45 + run: + cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1 + + - name: Install + run: + cmake --build ${{ github.workspace }}/build --target install --parallel 2 + + - name: Test + timeout-minutes: 30 + working-directory: ${{ github.workspace }}/build + run: + ldd ./omnitrace && + ./omnitrace --help && + ctest -V --output-log ${{ github.workspace }}/build/omnitrace-ctest-ubuntu-focal-dyninst-package.log + + - name: Test Install + timeout-minutes: 10 + run: | + set -v + export OMNITRACE_DEBUG=ON + which omnitrace-avail + ldd $(which omnitrace-avail) + omnitrace-avail --help + omnitrace-avail -a + which omnitrace-critical-trace + ldd $(which omnitrace-critical-trace) + which omnitrace + ldd $(which omnitrace) + omnitrace --help + omnitrace -e -v 1 -o ls.inst --simulate -- ls + for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -o ls.inst -- ls + ./ls.inst + omnitrace -e -v 1 --simulate -- ls + for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -- ls + + - name: CTest Artifacts + uses: actions/upload-artifact@v2 + with: + name: ctest-log + path: | + ${{ github.workspace }}/build/*.log + + - name: Data Artifacts + uses: actions/upload-artifact@v2 + with: + name: data-files + path: | + ${{ github.workspace }}/build/omnitrace-tests-output/**/*.txt diff --git a/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-external-rocm.yml b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-external-rocm.yml new file mode 100644 index 0000000000..df81411c69 --- /dev/null +++ b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-external-rocm.yml @@ -0,0 +1,105 @@ +name: ubuntu-focal-external-rocm + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] + +env: + BUILD_TYPE: Release + ELFUTILS_DOWNLOAD_VERSION: 0.183 + OMNITRACE_DEBUG_FINALIZE: ON + OMNITRACE_VERBOSE: 1 + OMNITRACE_CI: ON + +jobs: + ubuntu-focal-external-rocm: + runs-on: ubuntu-20.04 + container: + image: jrmadsen/omnitrace-ci:ubuntu-20.04 + strategy: + matrix: + compiler: ['g++'] + rocm_version: ['4.3', '4.5', 'debian'] + + steps: + - uses: actions/checkout@v2 + + - name: Install Packages + timeout-minutes: 5 + run: + apt-get update && + apt-get install -y software-properties-common wget gnupg2 && + wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - && + echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/${{ matrix.rocm_version }}/ ubuntu main" | tee /etc/apt/sources.list.d/rocm.list && + apt-get update && + apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev ${{ matrix.compiler }} libudev-dev libnuma-dev rocm-dev rocm-utils roctracer-dev rocprofiler-dev hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev libpapi-dev libopenmpi-dev && + python3 -m pip install --upgrade pip && + python3 -m pip install 'cmake==3.16.3' + + - name: Configure Env + run: + echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && + echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && + echo "CMAKE_PREFIX_PATH=/opt/dyninst:/opt/elfutils:${CMAKE_PREFIX_PATH}" >> $GITHUB_ENV && + echo "/opt/omnitrace/bin:/opt/dyninst/bin:/opt/elfutils/bin:${HOME}/.local/bin" >> $GITHUB_PATH && + echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:/opt/dyninst/lib:/opt/elfutils/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + + - name: Configure CMake + timeout-minutes: 5 + run: + cmake --version && + cmake -B build + -DCMAKE_C_COMPILER=${CC} + -DCMAKE_CXX_COMPILER=${CXX} + -DCMAKE_BUILD_TYPE=MinSizeRel + -DCMAKE_INSTALL_PREFIX=/opt/omnitrace + -DOMNITRACE_BUILD_TESTING=OFF + -DOMNITRACE_BUILD_DEVELOPER=ON + -DOMNITRACE_BUILD_EXTRA_OPTIMIZATIONS=OFF + -DOMNITRACE_BUILD_LTO=OFF + -DOMNITRACE_USE_MPI=OFF + -DOMNITRACE_USE_MPI_HEADERS=ON + -DOMNITRACE_USE_HIP=ON + -DOMNITRACE_MAX_THREADS=64 + -DOMNITRACE_USE_SANITIZER=OFF + -DTIMEMORY_USE_PAPI=OFF + + - name: Build + timeout-minutes: 45 + run: + cmake --build build --target all --parallel 2 -- VERBOSE=1 + + - name: Install + run: + cmake --build build --target install --parallel 2 + + - name: Test + timeout-minutes: 30 + run: + cd build && + ldd ./omnitrace && + ./omnitrace --help + + - name: Test Install + timeout-minutes: 10 + run: | + set -v + export OMNITRACE_DEBUG=ON + which omnitrace-avail + ldd $(which omnitrace-avail) + omnitrace-avail --help + omnitrace-avail -a + which omnitrace-critical-trace + ldd $(which omnitrace-critical-trace) + which omnitrace + ldd $(which omnitrace) + omnitrace --help + omnitrace -e -v 1 -o ls.inst --simulate -- ls + for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -o ls.inst -- ls + ./ls.inst + omnitrace -e -v 1 --simulate -- ls + for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -- ls diff --git a/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-external.yml b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-external.yml new file mode 100644 index 0000000000..3b95a02015 --- /dev/null +++ b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal-external.yml @@ -0,0 +1,110 @@ +name: ubuntu-focal-external + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] + +env: + BUILD_TYPE: Release + ELFUTILS_DOWNLOAD_VERSION: 0.183 + OMNITRACE_DEBUG_FINALIZE: ON + OMNITRACE_VERBOSE: 1 + OMNITRACE_CI: ON + CONTAINER_NAME: 'container-${GITHUB_SHA}' + CONTAINER_CMD: 'docker exec "${CONTAINER_NAME}"' + +jobs: + ubuntu-focal-external: + runs-on: ubuntu-20.04 + container: + image: jrmadsen/omnitrace-ci:ubuntu-20.04 + strategy: + matrix: + compiler: ['g++-7', 'g++-8', 'g++-9', 'g++-10'] + + steps: + - uses: actions/checkout@v2 + + - name: Install Packages + timeout-minutes: 5 + run: + apt-get update && + apt-get install -y build-essential m4 autoconf libtool python3-pip libiberty-dev clang libomp-dev ${{ matrix.compiler }} && + python3 -m pip install --upgrade pip && + python3 -m pip install 'cmake==3.16.3' + + - name: Configure Env + run: + echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && + echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && + echo "/opt/omnitrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH && + echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + + - name: Configure CMake + timeout-minutes: 5 + run: + cmake --version && + cmake -B build + -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') + -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} + -DCMAKE_BUILD_TYPE=RelWithDebInfo + -DCMAKE_INSTALL_PREFIX=/opt/omnitrace + -DOMNITRACE_BUILD_TESTING=ON + -DOMNITRACE_USE_MPI=OFF + -DOMNITRACE_USE_HIP=OFF + + - name: Build + timeout-minutes: 45 + run: + cmake --build build --target all --parallel 2 -- VERBOSE=1 + + - name: Install + timeout-minutes: 5 + run: + cmake --build build --target install --parallel 2 + + - name: Test + timeout-minutes: 30 + run: + cd build && + ldd ./omnitrace && + ./omnitrace --help && + ctest -V --output-log build/omnitrace-ctest-ubuntu-focal-external.log + + - name: Test Install + timeout-minutes: 10 + run: | + set -v + export OMNITRACE_DEBUG=ON + which omnitrace-avail + ldd $(which omnitrace-avail) + omnitrace-avail --help + omnitrace-avail -a + which omnitrace-critical-trace + ldd $(which omnitrace-critical-trace) + which omnitrace + ldd $(which omnitrace) + omnitrace --help + omnitrace -e -v 1 -o ls.inst --simulate -- ls + for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -o ls.inst -- ls + ./ls.inst + omnitrace -e -v 1 --simulate -- ls + for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -- ls + + - name: CTest Artifacts + uses: actions/upload-artifact@v2 + with: + name: ctest-log + path: | + build/*.log + + - name: Data Artifacts + uses: actions/upload-artifact@v2 + with: + name: data-files + path: | + build/omnitrace-tests-output/**/*.txt diff --git a/projects/rocprofiler-systems/.github/workflows/ubuntu-focal.yml b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal.yml new file mode 100644 index 0000000000..a9cafe08b6 --- /dev/null +++ b/projects/rocprofiler-systems/.github/workflows/ubuntu-focal.yml @@ -0,0 +1,110 @@ +name: ubuntu-focal + +on: + push: + branches: [ main, develop ] + pull_request: + branches: [ main, develop ] + +env: + BUILD_TYPE: Release + ELFUTILS_DOWNLOAD_VERSION: 0.183 + OMNITRACE_DEBUG_FINALIZE: ON + OMNITRACE_VERBOSE: 1 + OMNITRACE_CI: ON + +jobs: + ubuntu-focal: + runs-on: ubuntu-20.04 + strategy: + matrix: + compiler: ['g++'] + mpi: [ '', 'libmpich-dev mpich', 'libopenmpi-dev openmpi-bin libfabric-dev' ] + + steps: + - uses: actions/checkout@v2 + + - name: Install Packages + timeout-minutes: 5 + run: + sudo apt-get update && + sudo apt-get install -y build-essential m4 autoconf libtool python3-pip libtbb-dev libboost-{atomic,system,thread,date-time,filesystem,timer}-dev clang libomp-dev ${{ matrix.compiler }} ${{ matrix.mpi }} && + python3 -m pip install --upgrade pip && + python3 -m pip install 'cmake==3.16.3' + + - name: Configure Env + run: + echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV && + echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV && + echo "/opt/omnitrace/bin:${HOME}/.local/bin" >> $GITHUB_PATH && + echo "LD_LIBRARY_PATH=/opt/omnitrace/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV + + - name: Configure CMake + timeout-minutes: 5 + run: + cmake --version && + if [ -z "${{ matrix.mpi }}" ]; then USE_MPI=OFF; else USE_MPI=ON; fi && + cmake -B ${{ github.workspace }}/build + -DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g') + -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} + -DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} + -DCMAKE_INSTALL_PREFIX=/opt/omnitrace + -DOMNITRACE_BUILD_TESTING=ON + -DOMNITRACE_BUILD_DYNINST=ON + -DOMNITRACE_USE_MPI=${USE_MPI} + -DOMNITRACE_USE_HIP=OFF + -DDYNINST_BUILD_ELFUTILS=ON + -DDYNINST_BUILD_LIBIBERTY=ON + -DDYNINST_BUILD_SHARED_LIBS=ON + -DDYNINST_BUILD_STATIC_LIBS=OFF + + - name: Build + timeout-minutes: 45 + run: + cmake --build ${{ github.workspace }}/build --target all --parallel 2 -- VERBOSE=1 + + - name: Install + run: + cmake --build ${{ github.workspace }}/build --target install --parallel 2 + + - name: Test + timeout-minutes: 30 + working-directory: ${{ github.workspace }}/build + run: + ctest -V --output-log ${{ github.workspace }}/build/omnitrace-ctest-ubuntu-focal.log + + - name: Test Install + timeout-minutes: 10 + run: | + set -v + export OMNITRACE_DEBUG=ON + which omnitrace-avail + ldd $(which omnitrace-avail) + omnitrace-avail --help + omnitrace-avail -a + which omnitrace-critical-trace + ldd $(which omnitrace-critical-trace) + which omnitrace + ldd $(which omnitrace) + omnitrace --help + omnitrace -e -v 1 -o ls.inst --simulate -- ls + for i in omnitrace-ls.inst-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -o ls.inst -- ls + ./ls.inst + omnitrace -e -v 1 --simulate -- ls + for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done + omnitrace -e -v 1 -- ls + + - name: CTest Artifacts + uses: actions/upload-artifact@v2 + with: + name: ctest-log + path: | + ${{ github.workspace }}/build/*.log + + - name: Data Artifacts + uses: actions/upload-artifact@v2 + with: + name: data-files + path: | + ${{ github.workspace }}/build/omnitrace-tests-output/**/*.txt diff --git a/projects/rocprofiler-systems/cmake/Packages.cmake b/projects/rocprofiler-systems/cmake/Packages.cmake index 1a236b7795..c082ab6627 100644 --- a/projects/rocprofiler-systems/cmake/Packages.cmake +++ b/projects/rocprofiler-systems/cmake/Packages.cmake @@ -318,6 +318,9 @@ set(TIMEMORY_INSTALL_HEADERS set(TIMEMORY_INSTALL_CONFIG OFF CACHE BOOL "Disable timemory cmake configuration install") +set(TIMEMORY_INSTALL_LIBRARIES + OFF + CACHE BOOL "Disable timemory installation of libraries not needed at runtime") set(TIMEMORY_INSTALL_ALL OFF CACHE BOOL "Disable install target depending on all target") diff --git a/projects/rocprofiler-systems/docker/.gitignore b/projects/rocprofiler-systems/docker/.gitignore new file mode 100644 index 0000000000..5f0a74bff3 --- /dev/null +++ b/projects/rocprofiler-systems/docker/.gitignore @@ -0,0 +1 @@ +/dyninst-source diff --git a/projects/rocprofiler-systems/docker/Dockerfile.ci b/projects/rocprofiler-systems/docker/Dockerfile.ci new file mode 100644 index 0000000000..fa47e0d5e9 --- /dev/null +++ b/projects/rocprofiler-systems/docker/Dockerfile.ci @@ -0,0 +1,42 @@ + +ARG DISTRO +ARG VERSION +FROM ${DISTRO}:${VERSION} + +ENV HOME /root +ENV LANG C.UTF-8 +ENV SHELL /bin/bash +ENV BASH_ENV /etc/bash.bashrc +ENV DEBIAN_FRONTEND noninteractive + +WORKDIR /tmp +SHELL [ "/bin/bash", "-c" ] + +ARG EXTRA_PACKAGES="" +ARG ELFUTILS_DOWNLOAD_VERSION="0.183" +ARG NJOBS="12" + +ENV PATH ${HOME}/.local/bin:${PATH} +ENV LIBRARY_PATH /usr/local/lib:/usr/local/lib64:${LIBRARY_PATH} +ENV LD_LIBRARY_PATH /usr/local/lib:/usr/local/lib64:${LD_LIBRARY_PATH} +ENV CMAKE_PREFIX_PATH /usr/local:${CMAKE_PREFIX_PATH} + +COPY ./dyninst-source /tmp/dyninst + +RUN apt-get update && \ + apt-get dist-upgrade -y && \ + apt-get install -y build-essential cmake wget gnupg2 m4 bash-completion git-core autoconf libtool autotools-dev python3-pip lsb-release zlib1g-dev libpapi-dev libpfm4-dev zip unzip locales bzip2 gzip && \ + python3 -m pip install 'cmake==3.18.4' && \ + apt-get autoclean && \ + locale -a && \ + cd /tmp/dyninst && \ + cmake -B build -DCMAKE_BUILD_TYPE=Release -DBUILD_BOOST=ON -DBUILD_TBB=ON -DBUILD_ELFUTILS=ON -DBUILD_LIBIBERTY=ON && \ + cmake --build build --target all --parallel ${NJOBS} && \ + cmake --build build --target install --parallel ${NJOBS} && \ + cd /tmp && \ + shopt -s dotglob extglob && \ + rm -rf * + +ENV LC_ALL C.UTF-8 +WORKDIR /home +SHELL [ "/bin/bash", "--login", "-c" ] diff --git a/projects/rocprofiler-systems/docker/build-docker-ci.sh b/projects/rocprofiler-systems/docker/build-docker-ci.sh new file mode 100755 index 0000000000..575e2adbe6 --- /dev/null +++ b/projects/rocprofiler-systems/docker/build-docker-ci.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +set -e + +if [ ! -f Dockerfile.ci ]; then cd docker; fi + +if [ ! -f Dockerfile.ci ]; then + echo "Error! Execute script from source directory" + exit 1 +fi + +rm -rf ./dyninst-source +cp -r ../external/dyninst ./dyninst-source +rm -rf ./dyninst-source/{build,install}* + +: ${DISTRO:=ubuntu} +: ${VERSIONS:=20.04 18.04} +: ${NJOBS=$(nproc)} +: ${ELFUTILS_VERSION:=0.183} + +set -e + +for VERSION in ${VERSIONS} +do + docker build . \ + -f Dockerfile.ci \ + --tag jrmadsen/omnitrace-ci:${DISTRO}-${VERSION} \ + --build-arg DISTRO=${DISTRO} \ + --build-arg VERSION=${VERSION} \ + --build-arg NJOBS=${NJOBS} \ + --build-arg ELFUTILS_DOWNLOAD_VERSION=${ELFUTILS_VERSION} +done + +rm -rf ./dyninst-source diff --git a/projects/rocprofiler-systems/examples/lulesh/CMakeLists.txt b/projects/rocprofiler-systems/examples/lulesh/CMakeLists.txt index 131d3637cc..cf629dd509 100644 --- a/projects/rocprofiler-systems/examples/lulesh/CMakeLists.txt +++ b/projects/rocprofiler-systems/examples/lulesh/CMakeLists.txt @@ -23,14 +23,7 @@ if("${CMAKE_BUILD_TYPE}" STREQUAL "") CACHE STRING "CMake build type" FORCE) endif() -if(DEFINED OMNITRACE_USE_MPI - AND NOT LULESH_USE_CUDA - AND NOT LULESH_USE_HIP) - option(LULESH_USE_MPI "Enable MPI" ${OMNITRACE_USE_MPI}) -else() - option(LULESH_USE_MPI "Enable MPI" OFF) -endif() - +option(LULESH_USE_MPI "Enable MPI" OFF) add_library(lulesh-mpi INTERFACE) if(LULESH_USE_MPI) find_package(MPI REQUIRED) diff --git a/projects/rocprofiler-systems/examples/openmp/CG/cg.cpp b/projects/rocprofiler-systems/examples/openmp/CG/cg.cpp index 47d178a5d0..4b41eac833 100644 --- a/projects/rocprofiler-systems/examples/openmp/CG/cg.cpp +++ b/projects/rocprofiler-systems/examples/openmp/CG/cg.cpp @@ -155,7 +155,9 @@ main(int /*argc*/, char** /*argv*/) double t, mflops, tmax; char class_npb; boolean verified; - double zeta_verify_value, epsilon, err; + double zeta_verify_value = 0.0; + double epsilon = 0.0; + double err = 0.0; char* t_names[T_LAST]; diff --git a/projects/rocprofiler-systems/examples/openmp/CG/npbparams.hpp b/projects/rocprofiler-systems/examples/openmp/CG/npbparams.hpp index 9f5e551aef..472c52c2aa 100644 --- a/projects/rocprofiler-systems/examples/openmp/CG/npbparams.hpp +++ b/projects/rocprofiler-systems/examples/openmp/CG/npbparams.hpp @@ -4,9 +4,9 @@ c It sets the number of processors and the class_npb of the NPB c in this directory. Do not modify it by hand. */ -#define NA 75000 +#define NA 50000 #define NONZER 13 -#define NITER 75 +#define NITER 50 #define SHIFT 60.0 #define RCOND 1.0e-1 #define CONVERTDOUBLE FALSE diff --git a/projects/rocprofiler-systems/external/timemory b/projects/rocprofiler-systems/external/timemory index 1ea2511833..4fcf962d49 160000 --- a/projects/rocprofiler-systems/external/timemory +++ b/projects/rocprofiler-systems/external/timemory @@ -1 +1 @@ -Subproject commit 1ea25118334f9a3a541704d925631bf09dcf2e67 +Subproject commit 4fcf962d495d024b02ea3c5dce71157550d21dd4 diff --git a/projects/rocprofiler-systems/source/bin/omnitrace-avail/CMakeLists.txt b/projects/rocprofiler-systems/source/bin/omnitrace-avail/CMakeLists.txt index 6f6ee5f27a..392544929d 100644 --- a/projects/rocprofiler-systems/source/bin/omnitrace-avail/CMakeLists.txt +++ b/projects/rocprofiler-systems/source/bin/omnitrace-avail/CMakeLists.txt @@ -12,7 +12,14 @@ add_executable( target_include_directories(omnitrace-avail PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include) target_compile_definitions(omnitrace-avail PRIVATE OMNITRACE_EXTERN_COMPONENTS=0) target_link_libraries(omnitrace-avail PRIVATE omnitrace::omnitrace-interface-library) -set_target_properties(omnitrace-avail PROPERTIES INSTALL_RPATH_USE_LINK_PATH ON) +set_target_properties( + omnitrace-avail + PROPERTIES + BUILD_RPATH "\$ORIGIN:${PROJECT_BINARY_DIR}:${CMAKE_BINARY_DIR}" + INSTALL_RPATH_USE_LINK_PATH ON + INSTALL_RPATH + "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}/timemory/libunwind:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}/dyninst-tpls/lib" + ) install( TARGETS omnitrace-avail diff --git a/projects/rocprofiler-systems/source/bin/omnitrace-critical-trace/CMakeLists.txt b/projects/rocprofiler-systems/source/bin/omnitrace-critical-trace/CMakeLists.txt index a8cdc21cae..fe56a7badc 100644 --- a/projects/rocprofiler-systems/source/bin/omnitrace-critical-trace/CMakeLists.txt +++ b/projects/rocprofiler-systems/source/bin/omnitrace-critical-trace/CMakeLists.txt @@ -15,7 +15,14 @@ target_include_directories(omnitrace-critical-trace target_compile_definitions(omnitrace-critical-trace PRIVATE OMNITRACE_EXTERN_COMPONENTS=0) target_link_libraries(omnitrace-critical-trace PRIVATE omnitrace::omnitrace-interface-library) -set_target_properties(omnitrace-critical-trace PROPERTIES INSTALL_RPATH_USE_LINK_PATH ON) +set_target_properties( + omnitrace-critical-trace + PROPERTIES + BUILD_RPATH "\$ORIGIN:${PROJECT_BINARY_DIR}:${CMAKE_BINARY_DIR}" + INSTALL_RPATH_USE_LINK_PATH ON + INSTALL_RPATH + "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}/timemory/libunwind:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}/dyninst-tpls/lib" + ) install( TARGETS omnitrace-critical-trace diff --git a/projects/rocprofiler-systems/source/bin/omnitrace/CMakeLists.txt b/projects/rocprofiler-systems/source/bin/omnitrace/CMakeLists.txt index a54c67f823..9a4f283fbb 100644 --- a/projects/rocprofiler-systems/source/bin/omnitrace/CMakeLists.txt +++ b/projects/rocprofiler-systems/source/bin/omnitrace/CMakeLists.txt @@ -30,6 +30,7 @@ set_target_properties( omnitrace-exe PROPERTIES OUTPUT_NAME omnitrace + BUILD_RPATH "\$ORIGIN:${PROJECT_BINARY_DIR}:${CMAKE_BINARY_DIR}" INSTALL_RPATH_USE_LINK_PATH ON INSTALL_RPATH "\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}/timemory/libunwind:\$ORIGIN/../${CMAKE_INSTALL_LIBDIR}/dyninst-tpls/lib" diff --git a/projects/rocprofiler-systems/source/bin/tests/CMakeLists.txt b/projects/rocprofiler-systems/source/bin/tests/CMakeLists.txt index a201897bc2..e9b0e9e223 100644 --- a/projects/rocprofiler-systems/source/bin/tests/CMakeLists.txt +++ b/projects/rocprofiler-systems/source/bin/tests/CMakeLists.txt @@ -128,7 +128,7 @@ omnitrace_add_bin_test( ) omnitrace_add_bin_test( - NAME omnitrace-avail-category-filer-omnitrace + NAME omnitrace-avail-category-filter-omnitrace TARGET omnitrace-avail ARGS --categories settings::omnitrace --brief LABELS omnitrace-avail @@ -139,7 +139,7 @@ omnitrace_add_bin_test( ) omnitrace_add_bin_test( - NAME omnitrace-avail-category-filer-timemory + NAME omnitrace-avail-category-filter-timemory TARGET omnitrace-avail ARGS --categories settings::timemory --brief LABELS omnitrace-avail diff --git a/projects/rocprofiler-systems/tests/CMakeLists.txt b/projects/rocprofiler-systems/tests/CMakeLists.txt index 73302d76d6..4bcdd86837 100644 --- a/projects/rocprofiler-systems/tests/CMakeLists.txt +++ b/projects/rocprofiler-systems/tests/CMakeLists.txt @@ -410,7 +410,8 @@ omnitrace_add_test( TARGET openmp-cg REWRITE_ARGS -e -v 2 --instrument-loops RUNTIME_ARGS -e -v 1 --label return args - RUN_ARGS + REWRITE_TIMEOUT 180 + RUNTIME_TIMEOUT 360 ENVIRONMENT "${_ompt_environment}") omnitrace_add_test( @@ -418,5 +419,6 @@ omnitrace_add_test( TARGET openmp-lu REWRITE_ARGS -e -v 2 --instrument-loops RUNTIME_ARGS -e -v 1 --label return args - RUN_ARGS REWRITE_TIMEOUT 180 RUNTIME_TIMEOUT 360 + REWRITE_TIMEOUT 180 + RUNTIME_TIMEOUT 360 ENVIRONMENT "${_ompt_environment}")