a8cec1ea17
* roctracer: use multiple tracks for HIP streams
Use different perfetto tracks for each stream, and set the name of
these tracks to the stream pointer values. Setting the name like this
matches the args in the API traces.
This fixes overlapping work on multiple streams appearing as a call
stack.
* Fix -pedantic
* Run clang-format
* Add option to disable per stream tracks in perfetto
* Updated scheme for roctracer activity + general roctracer fixes
- Per-device tracks
- Handle HSA OPS in ROCm 5.3
- the changes in ROCm 5.3 were causing HSA ops to get discarded
- Default for OMNITRACE_ROCTRACER_DISCARD_INVALID is now zero
- i.e. default behavior is to flip beg_ns and end_ns when beg_ns > end_ns
* Flush perfetto at end of hip_activity_callback
- fixes unterminated regions
* GitHub Actions and run-ci script updates
- improve reliability
* Set OMNITRACE_TMPDIR in testing
- files in /tmp get occasionally deleted during CI
Co-authored-by: Gergely Meszaros <gergely@streamhpc.com>
[ROCm/rocprofiler-systems commit: 589a729702]
603 lines
21 KiB
YAML
603 lines
21 KiB
YAML
name: Ubuntu 20.04 (GCC, Python, ROCm, MPICH, OpenMPI)
|
|
run-name: ubuntu-focal
|
|
|
|
on:
|
|
push:
|
|
branches: [ main, develop ]
|
|
paths-ignore:
|
|
- '*.md'
|
|
- 'source/docs/**'
|
|
pull_request:
|
|
branches: [ main, develop ]
|
|
paths-ignore:
|
|
- '*.md'
|
|
- 'source/docs/**'
|
|
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
OMNITRACE_VERBOSE: 1
|
|
OMNITRACE_CI: ON
|
|
OMNITRACE_TMPDIR: "%env{PWD}%/testing-tmp"
|
|
|
|
jobs:
|
|
ubuntu-focal-external:
|
|
runs-on: ubuntu-20.04
|
|
container:
|
|
image: jrmadsen/omnitrace:ci-base-ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: ['g++-7', 'g++-8']
|
|
lto: ['OFF']
|
|
strip: ['OFF']
|
|
python: ['ON']
|
|
build-type: ['Release']
|
|
mpi-headers: ['OFF']
|
|
static-libgcc: ['OFF']
|
|
static-libstdcxx: ['OFF']
|
|
include:
|
|
- compiler: 'g++-9'
|
|
lto: 'OFF'
|
|
strip: 'ON'
|
|
python: 'OFF'
|
|
build-type: 'Release'
|
|
mpi-headers: 'ON'
|
|
static-libgcc: 'ON'
|
|
static-libstdcxx: 'ON'
|
|
- compiler: 'g++-10'
|
|
lto: 'OFF'
|
|
strip: 'ON'
|
|
python: 'ON'
|
|
build-type: 'Release'
|
|
mpi-headers: 'ON'
|
|
static-libgcc: 'ON'
|
|
static-libstdcxx: 'OFF'
|
|
- compiler: 'g++-11'
|
|
lto: 'ON'
|
|
strip: 'ON'
|
|
python: 'OFF'
|
|
build-type: 'Release'
|
|
mpi-headers: 'ON'
|
|
static-libgcc: 'ON'
|
|
static-libstdcxx: 'OFF'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Packages
|
|
timeout-minutes: 25
|
|
uses: nick-fields/retry@v2
|
|
with:
|
|
retry_wait_seconds: 30
|
|
timeout_minutes: 25
|
|
max_attempts: 5
|
|
command: |
|
|
apt-get update &&
|
|
apt-get install -y software-properties-common &&
|
|
add-apt-repository -y ppa:ubuntu-toolchain-r/test &&
|
|
apt-get update &&
|
|
apt-get upgrade -y &&
|
|
apt-get install -y build-essential m4 autoconf libtool python3-pip libiberty-dev clang libomp-dev libmpich-dev mpich environment-modules ${{ matrix.compiler }} &&
|
|
python3 -m pip install --upgrade pip &&
|
|
python3 -m pip install numpy &&
|
|
python3 -m pip install perfetto &&
|
|
python3 -m pip install 'cmake==3.16.3' &&
|
|
for i in 6 7 8 9 10; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy perfetto dataclasses; done
|
|
|
|
- name: Test Environment Modules
|
|
timeout-minutes: 15
|
|
shell: bash
|
|
run: |
|
|
set -v
|
|
source /usr/share/modules/init/$(basename ${SHELL})
|
|
module avail
|
|
|
|
- name: Configure Env
|
|
run:
|
|
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV &&
|
|
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV
|
|
|
|
- name: Configure, Build, and Test
|
|
timeout-minutes: 115
|
|
shell: bash
|
|
run:
|
|
git config --global --add safe.directory ${PWD} &&
|
|
TAG="" &&
|
|
append-tagname() { if [ "${1}" == "ON" ]; then TAG="${TAG}-${2}"; fi; } &&
|
|
append-tagname ${{ matrix.lto }} lto &&
|
|
append-tagname ${{ matrix.strip }} strip &&
|
|
append-tagname ${{ matrix.python }} python &&
|
|
append-tagname ${{ matrix.mpi-headers }} mpip &&
|
|
append-tagname ${{ matrix.static-libgcc }} libgcc &&
|
|
append-tagname ${{ matrix.static-libstdcxx }} libstdcxx &&
|
|
cmake --version &&
|
|
python3 ./scripts/run-ci.py -B build
|
|
--name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-${{ matrix.compiler }}${TAG}
|
|
--build-jobs 2
|
|
--site GitHub
|
|
--
|
|
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
|
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
|
-DCMAKE_INSTALL_PREFIX=/opt/omnitrace
|
|
-DOMNITRACE_BUILD_TESTING=ON
|
|
-DOMNITRACE_USE_MPI=OFF
|
|
-DOMNITRACE_USE_HIP=OFF
|
|
-DOMNITRACE_USE_OMPT=OFF
|
|
-DOMNITRACE_USE_PAPI=OFF
|
|
-DOMNITRACE_USE_PYTHON=${{ matrix.python }}
|
|
-DOMNITRACE_USE_MPI_HEADERS=${{ matrix.mpi-headers }}
|
|
-DOMNITRACE_STRIP_LIBRARIES=${{ matrix.strip }}
|
|
-DOMNITRACE_BUILD_LTO=${{ matrix.lto }}
|
|
-DOMNITRACE_BUILD_STATIC_LIBGCC=${{ matrix.static-libgcc }}
|
|
-DOMNITRACE_BUILD_STATIC_LIBSTDCXX=${{ matrix.static-libstdcxx }}
|
|
-DOMNITRACE_PYTHON_PREFIX=/opt/conda/envs
|
|
-DOMNITRACE_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10"
|
|
-DOMNITRACE_MAX_THREADS=32
|
|
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl"
|
|
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }}
|
|
-DMPI_HEADERS_ALLOW_MPICH=OFF
|
|
|
|
- name: Test Build-Tree Module
|
|
timeout-minutes: 45
|
|
shell: bash
|
|
run: |
|
|
cd build
|
|
source /usr/share/modules/init/$(basename ${SHELL})
|
|
module use ./share/modulefiles
|
|
module avail
|
|
module load omnitrace
|
|
echo $(which omnitrace)
|
|
ldd $(which omnitrace)
|
|
omnitrace --help
|
|
omnitrace-avail --help
|
|
omnitrace-sample --help
|
|
|
|
- name: Test Build-Tree Source Script
|
|
timeout-minutes: 45
|
|
shell: bash
|
|
run: |
|
|
cd build
|
|
source ./share/omnitrace/setup-env.sh
|
|
echo $(which omnitrace)
|
|
ldd $(which omnitrace)
|
|
omnitrace --help
|
|
omnitrace-avail --help
|
|
omnitrace-sample --help
|
|
|
|
- name: Install
|
|
timeout-minutes: 10
|
|
run:
|
|
cmake --build build --target install --parallel 2
|
|
|
|
- name: Test Install
|
|
timeout-minutes: 15
|
|
shell: bash
|
|
run: |
|
|
source /usr/share/modules/init/$(basename ${SHELL})
|
|
module use /opt/omnitrace/share/modulefiles
|
|
module avail
|
|
module load omnitrace
|
|
./scripts/test-install.sh --test-omnitrace{,-avail,-sample,-rewrite,-runtime,-critical-trace}=1 --test-omnitrace-python=${{ matrix.python }}
|
|
|
|
- name: Test User API
|
|
timeout-minutes: 10
|
|
run: |
|
|
set -v
|
|
./scripts/test-find-package.sh --install-dir /opt/omnitrace
|
|
|
|
- name: CTest Artifacts
|
|
if: success() || failure()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ctest-${{ github.job }}-log
|
|
path: |
|
|
build/*.log
|
|
|
|
- name: Data Artifacts
|
|
if: success() || failure()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: data-${{ github.job }}-files
|
|
path: |
|
|
build/omnitrace-tests-config/*.cfg
|
|
build/omnitrace-tests-output/**/*.txt
|
|
build/omnitrace-tests-output/**/*-instr*.json
|
|
|
|
- name: Kill Perfetto
|
|
if: success() || failure()
|
|
continue-on-error: True
|
|
run: |
|
|
set +e
|
|
RUNNING_PROCS=$(pgrep trace_processor_shell)
|
|
if [ -n "${RUNNING_PROCS}" ]; then kill -s 9 ${RUNNING_PROCS}; fi
|
|
|
|
ubuntu-focal-external-rocm:
|
|
runs-on: ubuntu-20.04
|
|
container:
|
|
image: jrmadsen/omnitrace:ci-base-ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: ['g++']
|
|
rocm-version: ['4.3', '4.5', '5.0']
|
|
mpi-headers: ['OFF']
|
|
build-jobs: ['4']
|
|
ctest-exclude: ['-LE "mpi-example|transpose"']
|
|
perfetto-tools: ['ON']
|
|
include:
|
|
- compiler: 'g++'
|
|
rocm-version: 'debian'
|
|
mpi-headers: 'ON'
|
|
build-jobs: '2'
|
|
ctest-exclude: '-LE transpose'
|
|
perfetto-tools: 'OFF'
|
|
|
|
env:
|
|
BUILD_TYPE: MinSizeRel
|
|
OMPI_ALLOW_RUN_AS_ROOT: 1
|
|
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Packages
|
|
timeout-minutes: 25
|
|
uses: nick-fields/retry@v2
|
|
with:
|
|
retry_wait_seconds: 30
|
|
timeout_minutes: 25
|
|
max_attempts: 5
|
|
command: |
|
|
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 }} libudev1 libnuma1 rocm-dev rocm-utils rocm-smi-lib roctracer-dev rocprofiler-dev hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev libpapi-dev curl libopenmpi-dev openmpi-bin libfabric-dev &&
|
|
python3 -m pip install --upgrade pip &&
|
|
python3 -m pip install 'cmake==3.21.4' &&
|
|
for i in 6 7 8 9 10; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy perfetto dataclasses; done
|
|
|
|
- name: Install RCCL
|
|
if: ${{ matrix.rocm-version != '4.3' }}
|
|
timeout-minutes: 10
|
|
run:
|
|
apt-get install -y rccl-dev
|
|
|
|
- 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 "LD_LIBRARY_PATH=/opt/rocm/lib:/usr/local/lib:${LD_LIBRARY_PATH}" >> $GITHUB_ENV
|
|
cat << EOF > test-install.cfg
|
|
OMNITRACE_USE_TIMEMORY = ON
|
|
OMNITRACE_USE_PERFETTO = ON
|
|
OMNITRACE_USE_PID = OFF
|
|
OMNITRACE_USE_SAMPLING = OFF
|
|
OMNITRACE_USE_PROCESS_SAMPLING = OFF
|
|
OMNITRACE_COUT_OUTPUT = ON
|
|
OMNITRACE_TIME_OUTPUT = OFF
|
|
OMNITRACE_TIMEMORY_COMPONENTS = cpu_clock cpu_util current_peak_rss kernel_mode_time monotonic_clock monotonic_raw_clock network_stats num_io_in num_io_out num_major_page_faults num_minor_page_faults page_rss peak_rss priority_context_switch process_cpu_clock process_cpu_util read_bytes read_char system_clock thread_cpu_clock thread_cpu_util timestamp trip_count user_clock user_mode_time virtual_memory voluntary_context_switch wall_clock written_bytes written_char
|
|
OMNITRACE_OUTPUT_PATH = omnitrace-tests-output
|
|
OMNITRACE_OUTPUT_PREFIX = %tag%/
|
|
OMNITRACE_DEBUG = OFF
|
|
OMNITRACE_VERBOSE = 3
|
|
OMNITRACE_DL_VERBOSE = 3
|
|
OMNITRACE_PERFETTO_BACKEND = system
|
|
EOF
|
|
realpath test-install.cfg
|
|
cat test-install.cfg
|
|
|
|
- name: Configure, Build, and Test
|
|
timeout-minutes: 115
|
|
shell: bash
|
|
run:
|
|
git config --global --add safe.directory ${PWD} &&
|
|
cmake --version &&
|
|
TAG="-rocm-${{ matrix.rocm-version }}" &&
|
|
TAG="$(echo ${TAG} | sed 's/debian/latest/g')" &&
|
|
python3 ./scripts/run-ci.py -B build
|
|
--name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-rocm-${{ matrix.compiler }}${TAG}
|
|
--build-jobs 2
|
|
--site GitHub
|
|
--
|
|
-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_DEVELOPER=ON
|
|
-DOMNITRACE_BUILD_EXTRA_OPTIMIZATIONS=OFF
|
|
-DOMNITRACE_BUILD_LTO=OFF
|
|
-DOMNITRACE_USE_MPI=OFF
|
|
-DOMNITRACE_USE_HIP=ON
|
|
-DOMNITRACE_MAX_THREADS=32
|
|
-DOMNITRACE_USE_PAPI=OFF
|
|
-DOMNITRACE_USE_OMPT=OFF
|
|
-DOMNITRACE_USE_PYTHON=ON
|
|
-DOMNITRACE_USE_MPI_HEADERS=${{ matrix.mpi-headers }}
|
|
-DOMNITRACE_USE_SANITIZER=OFF
|
|
-DOMNITRACE_INSTALL_PERFETTO_TOOLS=${{ matrix.perfetto-tools }}
|
|
-DOMNITRACE_PYTHON_PREFIX=/opt/conda/envs
|
|
-DOMNITRACE_PYTHON_ENVS="py3.6;py3.7;py3.8;py3.9;py3.10"
|
|
-DOMNITRACE_CI_MPI_RUN_AS_ROOT=${{ matrix.mpi-headers }}
|
|
-DOMNITRACE_CI_GPU=OFF
|
|
-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF
|
|
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }}
|
|
--
|
|
${{ matrix.ctest-exclude }}
|
|
|
|
- name: Install
|
|
run:
|
|
cmake --build build --target install --parallel 2
|
|
|
|
- name: Test Install
|
|
timeout-minutes: 15
|
|
shell: bash
|
|
run: |
|
|
source /opt/omnitrace/share/omnitrace/setup-env.sh
|
|
./scripts/test-install.sh --test-omnitrace{,-avail,-sample,-python,-rewrite,-runtime,-critical-trace}=1
|
|
|
|
- name: Test User API
|
|
timeout-minutes: 10
|
|
run: |
|
|
set -v
|
|
./scripts/test-find-package.sh --install-dir /opt/omnitrace
|
|
|
|
- name: CTest Artifacts
|
|
if: success() || failure()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ctest-${{ github.job }}-log
|
|
path: |
|
|
build/*.log
|
|
|
|
- name: Data Artifacts
|
|
if: success() || failure()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: data-${{ github.job }}-files
|
|
path: |
|
|
omnitrace-tests-output/**/*.txt
|
|
build/omnitrace-tests-config/*.cfg
|
|
build/omnitrace-tests-output/**/*.txt
|
|
build/omnitrace-tests-output/**/*-instr*.json
|
|
|
|
- name: Kill Perfetto
|
|
if: success() || failure()
|
|
continue-on-error: True
|
|
run: |
|
|
set +e
|
|
RUNNING_PROCS=$(pgrep trace_processor_shell)
|
|
if [ -n "${RUNNING_PROCS}" ]; then kill -s 9 ${RUNNING_PROCS}; fi
|
|
|
|
ubuntu-focal:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
compiler: ['g++']
|
|
mpi: [ 'nompi', 'mpich', 'openmpi' ]
|
|
boost: ['OFF']
|
|
tbb: ['OFF']
|
|
build-type: ['Release']
|
|
python: ['ON']
|
|
ompt: ['ON']
|
|
papi: ['ON']
|
|
deps: ['libtbb-dev libboost-{atomic,system,thread,date-time,filesystem,timer}-dev']
|
|
include:
|
|
- compiler: 'g++'
|
|
mpi: 'nompi'
|
|
boost: 'ON'
|
|
tbb: 'ON'
|
|
build-type: 'Release'
|
|
python: 'ON'
|
|
ompt: 'OFF'
|
|
papi: 'OFF'
|
|
deps: ''
|
|
|
|
env:
|
|
ELFUTILS_DOWNLOAD_VERSION: 0.186
|
|
OMNITRACE_VERBOSE: 1
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Packages
|
|
timeout-minutes: 25
|
|
uses: nick-fields/retry@v2
|
|
with:
|
|
retry_wait_seconds: 30
|
|
timeout_minutes: 25
|
|
max_attempts: 5
|
|
command: |
|
|
sudo apt-get update &&
|
|
sudo apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev environment-modules ${{ matrix.deps }} ${{ matrix.compiler }} &&
|
|
if [ "${{ matrix.mpi }}" = "mpich" ]; then sudo apt-get install -y libmpich-dev mpich; fi &&
|
|
if [ "${{ matrix.mpi }}" = "openmpi" ]; then sudo apt-get install -y libopenmpi-dev openmpi-bin libfabric-dev; fi &&
|
|
python3 -m pip install --upgrade pip &&
|
|
python3 -m pip install numpy &&
|
|
python3 -m pip install perfetto &&
|
|
python3 -m pip install 'cmake==3.16.3'
|
|
|
|
- name: Test Environment Modules
|
|
timeout-minutes: 15
|
|
run: |
|
|
set -v
|
|
source /usr/share/modules/init/$(basename ${SHELL})
|
|
module avail
|
|
|
|
- name: Configure Env
|
|
run:
|
|
echo "CC=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')" >> $GITHUB_ENV &&
|
|
echo "CXX=${{ matrix.compiler }}" >> $GITHUB_ENV &&
|
|
echo "${HOME}/.local/bin" >> $GITHUB_PATH
|
|
|
|
- name: Configure, Build, and Test
|
|
timeout-minutes: 115
|
|
shell: bash
|
|
run:
|
|
cmake --version &&
|
|
if [ "${{ matrix.mpi }}" = "nompi" ]; then USE_MPI=OFF; else USE_MPI=ON; fi &&
|
|
if [ -z "${{ matrix.deps }}" ]; then TAG=""; else TAG="-external-deps"; fi &&
|
|
python3 ./scripts/run-ci.py -B ${{ github.workspace }}/build
|
|
--name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-${{ matrix.compiler }}-${{ matrix.mpi }}${TAG}
|
|
--build-jobs 2
|
|
--site GitHub
|
|
--
|
|
-DCMAKE_C_COMPILER=$(echo '${{ matrix.compiler }}' | sed 's/+/c/g')
|
|
-DCMAKE_CXX_COMPILER=${{ matrix.compiler }}
|
|
-DCMAKE_BUILD_TYPE=${{ matrix.build-type }}
|
|
-DCMAKE_INSTALL_PREFIX=/opt/omnitrace
|
|
-DOMNITRACE_BUILD_TESTING=ON
|
|
-DOMNITRACE_BUILD_DYNINST=ON
|
|
-DOMNITRACE_USE_MPI=${USE_MPI}
|
|
-DOMNITRACE_USE_HIP=OFF
|
|
-DOMNITRACE_USE_PYTHON=${{ matrix.python }}
|
|
-DOMNITRACE_USE_OMPT=${{ matrix.ompt }}
|
|
-DOMNITRACE_USE_PAPI=${{ matrix.papi }}
|
|
-DDYNINST_BUILD_ELFUTILS=ON
|
|
-DDYNINST_BUILD_LIBIBERTY=ON
|
|
-DDYNINST_BUILD_TBB=${{ matrix.tbb }}
|
|
-DDYNINST_BUILD_BOOST=${{ matrix.boost }}
|
|
-DDYNINST_BUILD_SHARED_LIBS=ON
|
|
-DDYNINST_BUILD_STATIC_LIBS=OFF
|
|
-DDYNINST_ELFUTILS_DOWNLOAD_VERSION=${{ env.ELFUTILS_DOWNLOAD_VERSION }}
|
|
-DOMNITRACE_MAX_THREADS=32
|
|
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl"
|
|
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }}
|
|
-DMPI_HEADERS_ALLOW_MPICH=ON
|
|
|
|
- name: Test Build-Tree Env
|
|
timeout-minutes: 60
|
|
run:
|
|
source /usr/share/modules/init/$(basename ${SHELL})
|
|
module use ${{ github.workspace }}/build/share/modulefiles
|
|
module avail
|
|
module load omnitrace
|
|
module list
|
|
env
|
|
module unload omnitrace
|
|
module list
|
|
env
|
|
source ${{ github.workspace }}/build/share/omnitrace/setup-env.sh
|
|
env
|
|
|
|
- name: Install
|
|
working-directory: ${{ github.workspace }}/build
|
|
run: |
|
|
cpack -G STGZ
|
|
mkdir -p /opt/omnitrace
|
|
./omnitrace-*.sh --prefix=/opt/omnitrace --exclude-subdir --skip-license
|
|
|
|
- name: Test Install with setup-env.sh
|
|
timeout-minutes: 15
|
|
run: |
|
|
set -v
|
|
source /opt/omnitrace/share/omnitrace/setup-env.sh
|
|
${{ github.workspace }}/scripts/test-install.sh --test-omnitrace{,-avail,-sample,-python,-rewrite,-runtime,-critical-trace}=1
|
|
|
|
- name: Test Install with Modulefile
|
|
timeout-minutes: 15
|
|
run: |
|
|
set -v
|
|
source /usr/share/modules/init/$(basename ${SHELL})
|
|
module use /opt/omnitrace/share/modulefiles
|
|
module load omnitrace
|
|
${{ github.workspace }}/scripts/test-install.sh --test-omnitrace{,-avail,-sample,-python,-rewrite,-runtime,-critical-trace}=1
|
|
|
|
- name: Test User API
|
|
timeout-minutes: 10
|
|
run: |
|
|
set -v
|
|
${{ github.workspace }}/scripts/test-find-package.sh --install-dir /opt/omnitrace
|
|
|
|
- name: CTest Artifacts
|
|
if: success() || failure()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: ctest-${{ github.job }}-log
|
|
path: |
|
|
${{ github.workspace }}/build/*.log
|
|
|
|
- name: Data Artifacts
|
|
if: success() || failure()
|
|
uses: actions/upload-artifact@v3
|
|
with:
|
|
name: data-${{ github.job }}-files
|
|
path: |
|
|
${{ github.workspace }}/build/omnitrace-tests-config/*.cfg
|
|
${{ github.workspace }}/build/omnitrace-tests-output/**/*.txt
|
|
${{ github.workspace }}/build/omnitrace-tests-output/**/*-instr*.json
|
|
|
|
- name: Kill Perfetto
|
|
if: success() || failure()
|
|
continue-on-error: True
|
|
run: |
|
|
set +e
|
|
RUNNING_PROCS=$(pgrep trace_processor_shell)
|
|
if [ -n "${RUNNING_PROCS}" ]; then kill -s 9 ${RUNNING_PROCS}; fi
|
|
|
|
ubuntu-focal-codecov:
|
|
runs-on: ubuntu-20.04
|
|
|
|
container:
|
|
image: jrmadsen/omnitrace:ci-base-ubuntu-20.04
|
|
|
|
env:
|
|
OMNITRACE_VERBOSE: 2
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Install Packages
|
|
timeout-minutes: 25
|
|
uses: nick-fields/retry@v2
|
|
with:
|
|
retry_wait_seconds: 30
|
|
timeout_minutes: 25
|
|
max_attempts: 5
|
|
command: |
|
|
apt-get update &&
|
|
apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev environment-modules gcc g++ mpich libmpich-dev texinfo &&
|
|
python3 -m pip install --upgrade pip &&
|
|
python3 -m pip install numpy &&
|
|
python3 -m pip install perfetto &&
|
|
python3 -m pip install 'cmake==3.24.1' &&
|
|
for i in 6 7 8 9 10; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy perfetto dataclasses; done
|
|
|
|
- name: Configure Env
|
|
run:
|
|
echo "${HOME}/.local/bin" >> $GITHUB_PATH
|
|
|
|
- name: Configure, Build, and Test
|
|
timeout-minutes: 115
|
|
shell: bash
|
|
run:
|
|
git config --global --add safe.directory ${PWD} &&
|
|
cmake --version &&
|
|
python3 ./scripts/run-ci.py -B build
|
|
--name ${{ github.repository_owner }}-${{ github.ref_name }}-ubuntu-focal-codecov-mpi-python-ompt-papi
|
|
--build-jobs 2
|
|
--site GitHub
|
|
--coverage
|
|
--
|
|
-DCMAKE_INSTALL_PREFIX=/opt/omnitrace
|
|
-DOMNITRACE_BUILD_CI=OFF
|
|
-DOMNITRACE_BUILD_TESTING=ON
|
|
-DOMNITRACE_BUILD_DYNINST=OFF
|
|
-DOMNITRACE_USE_MPI=ON
|
|
-DOMNITRACE_USE_PYTHON=ON
|
|
-DOMNITRACE_USE_OMPT=ON
|
|
-DOMNITRACE_USE_PAPI=ON
|
|
-DOMNITRACE_USE_HIP=OFF
|
|
-DOMNITRACE_USE_RCCL=OFF
|
|
-DOMNITRACE_MAX_THREADS=32
|
|
-DOMNITRACE_DISABLE_EXAMPLES="transpose;rccl"
|
|
-DOMNITRACE_BUILD_NUMBER=${{ github.run_attempt }}
|