Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#2302: Integrate PAPI in LB data export #2304

Open
wants to merge 45 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
af7dc82
#2302: Add papi as dependency
pierrepebay Jun 12, 2024
381037b
#2302: initialize and call papi in lb data
pierrepebay Jun 18, 2024
6772fd4
#2302: Update interface to PAPI metrics
pierrepebay Jul 9, 2024
a2df28f
#2302: Refine access to PAPI events and use preset events
pierrepebay Jul 10, 2024
6785f19
#2302: Revert to using native perf events and add flops example to te…
pierrepebay Jul 10, 2024
d840387
#2302: Add PAPI related information data structure and enable multipl…
pierrepebay Jul 17, 2024
e886d89
#2302: Define events to measure through environment variable
pierrepebay Jul 18, 2024
a6f85dd
#2302: Fix heap buffer overflow and segfault
pierrepebay Jul 25, 2024
662e8be
#2302: Fix helper function call
pierrepebay Jul 25, 2024
e3107a9
#2302: Fix warnings and print
pierrepebay Jul 29, 2024
2cb47c5
#2302: Start elaborating cmake system to turn and off measurement opt…
pierrepebay Aug 2, 2024
d3ec1ee
#2302: Fix preprocessor directives
pierrepebay Aug 5, 2024
d5344a9
#2302: Add perf measurement component and corresponding measurements …
pierrepebay Aug 13, 2024
737ded4
#2302: Add check for empty event map
pierrepebay Aug 13, 2024
e920d0c
#2302: PerfData: improve robustness and resource management
pierrepebay Aug 15, 2024
e3c54e4
#2302: build script: double quote to prevent globbing and word splitting
pierrepebay Aug 15, 2024
d064015
#2302: Replace perf lb data with perf data component
pierrepebay Aug 29, 2024
8210642
#2302: Add task clearing to thePerfData
pierrepebay Sep 4, 2024
afcee33
#2302: perfData: Initialize counters once at construction
pierrepebay Sep 17, 2024
73cc34b
#2302: Unify measurement interface for perf and papi
pierrepebay Nov 12, 2024
fc3891f
#2302: Fix PAPI error handling
pierrepebay Nov 13, 2024
6677cc7
#2302: Add unit tests and perf CI pipeline
pierrepebay Nov 22, 2024
dbb1424
#2320: Fix whitespace
pierrepebay Nov 22, 2024
1b9b8ab
#2302: Fix warnings and install perf in CI pipeline
pierrepebay Nov 22, 2024
695230a
#2302: Fix warnings
pierrepebay Nov 25, 2024
bb2167a
#2302: Check buffer boundaries for fs read
pierrepebay Nov 25, 2024
b875573
#2302: Remove whitespace
pierrepebay Nov 26, 2024
a971233
#2302: Fix perf package name
pierrepebay Nov 26, 2024
e057fb8
#2302: Add more buffer boundary check
pierrepebay Nov 26, 2024
1175442
#2302: Fix guards
pierrepebay Nov 29, 2024
5c0677c
#2302: Fix commented code and pin papi version
pierrepebay Dec 4, 2024
be78940
#2302: Fix code quality and update workflow generation
pierrepebay Dec 5, 2024
87d1af5
#2302: Fix workflow template and update workflows
pierrepebay Dec 5, 2024
8c8c3fa
#2302: Add clang workflows
pierrepebay Dec 5, 2024
05681e6
#2302: Fix clang workflows
pierrepebay Dec 5, 2024
14e88c8
#2302: Try new buffer overflow fix
pierrepebay Dec 10, 2024
fe2f259
#2302: Fix perf data buffer sizing
pierrepebay Dec 12, 2024
585e85a
#2302: Fix build script quotes
pierrepebay Dec 12, 2024
0f78803
#2302: Remove randomly failing test
pierrepebay Dec 12, 2024
367341f
#2302: Modify compiler selection for metric testing workflows
pierrepebay Dec 12, 2024
796e2a0
#2302: Fix to comply with style guidelines
pierrepebay Dec 12, 2024
c7100f7
#2302: Improve perf metrics configuration error messages
pierrepebay Dec 12, 2024
c0bea90
#2302: Add missing papi variable in docker compose
pierrepebay Dec 12, 2024
eed6191
#2302: perfData: Add doxygen comments
pierrepebay Dec 12, 2024
66fe44c
#2302: examples: cleanup/rework perf example
lifflander Dec 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ build
transport
lib/*-build
lib/checkpoint
lib/papi
lib/googletest
lib/kokkos
lib/vt-tv
Expand Down
2 changes: 2 additions & 0 deletions ci/azure/azure-clang-10-ubuntu-mpich.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ variables:
VT_DEBUG_VERBOSE: 0
VT_KOKKOS_ENABLED: 0
VT_TV_ENABLED: 0
VT_PERF_ENABLED: 0
VT_PAPI_ENABLED: 0
CMAKE_CXX_STANDARD: 17
VT_CI_TEST_LB_SCHEMA: 0
RUN_FULL_CI: true
Expand Down
2 changes: 2 additions & 0 deletions ci/azure/azure-clang-11-ubuntu-mpich.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ variables:
VT_DEBUG_VERBOSE: 0
VT_KOKKOS_ENABLED: 0
VT_TV_ENABLED: 0
VT_PERF_ENABLED: 0
VT_PAPI_ENABLED: 0
CMAKE_CXX_STANDARD: 17
VT_CI_TEST_LB_SCHEMA: 0
RUN_FULL_CI: true
Expand Down
2 changes: 2 additions & 0 deletions ci/azure/azure-clang-12-ubuntu-mpich.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ variables:
VT_DEBUG_VERBOSE: 0
VT_KOKKOS_ENABLED: 0
VT_TV_ENABLED: 0
VT_PERF_ENABLED: 0
VT_PAPI_ENABLED: 0
CMAKE_CXX_STANDARD: 17
VT_CI_TEST_LB_SCHEMA: 0
RUN_FULL_CI: true
Expand Down
2 changes: 2 additions & 0 deletions ci/azure/azure-clang-13-ubuntu-mpich.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ variables:
VT_DEBUG_VERBOSE: 0
VT_KOKKOS_ENABLED: 0
VT_TV_ENABLED: 0
VT_PERF_ENABLED: 0
VT_PAPI_ENABLED: 0
CMAKE_CXX_STANDARD: 17
VT_CI_TEST_LB_SCHEMA: 0
RUN_FULL_CI: true
Expand Down
218 changes: 218 additions & 0 deletions ci/azure/azure-clang-14-ubuntu-mpich-papi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
###############################################################################
############## Warning this is a generated file---do not modify ###############
###############################################################################

name: PR tests (clang-14, ubuntu, mpich, papi)

trigger:
branches:
include:
- develop
- main

pr:
drafts: false
autoCancel: true
branches:
include:
- '*'


resources:
- repo: self

variables:
tag: '$(Build.BuildId)'
REPO: lifflander1/vt
ARCH: amd64
UBUNTU: 22.04
COMPILER_TYPE: clang
COMPILER: clang-14
HOST_COMPILER: clang-14
BUILD_TYPE: release
ULIMIT_CORE: 0
VT_CODE_COVERAGE: 0
VT_LB: 1
VT_TRACE: 1
VT_TRACE_RT: 0
VT_TRACE_ONLY: 1
VT_MIMALLOC: 0
VT_DOCS: 0
VT_ASAN: 0
VT_UBSAN: 0
VT_WERROR: 1
VT_POOL: 1
VT_EXTENDED_TESTS: 1
VT_TESTS_NUM_NODES: 2
VT_EXTERNAL_FMT: 0
VT_UNITY_BUILD: 1
VT_PRODUCTION_BUILD: 0
VT_FCONTEXT: 0
VT_ZOLTAN: 0
VT_CI_BUILD: 1
VT_DIAGNOSTICS: 1
VT_NO_COLOR: 1
VT_BUILD_SHARED_LIBS: 0
VT_INCLUSION: TPL
VT_DEBUG_VERBOSE: 1
VT_KOKKOS_ENABLED: 0
VT_TV_ENABLED: 0
VT_PERF_ENABLED: 0
VT_PAPI_ENABLED: 0
CMAKE_CXX_STANDARD: 17
VT_CI_TEST_LB_SCHEMA: 0
RUN_FULL_CI: true
CACHE: "$(Agent.TempDirectory)/cache/"
cache_name: ubuntu-clang-14-cache
volume_name: ubuntu-cpp
build_root: "$(CACHE)$(ARCH)-ubuntu-$(UBUNTU)-$(HOST_COMPILER)-$(COMPILER)-cache/"
TS: 0
TS_YEAR: 0
TS_MONTH: 0
TS_DAY: 0



stages:
- stage: Build
displayName: Build image
jobs:
- job: Build
displayName: Build
pool:
vmImage: 'ubuntu-22.04'
timeoutInMinutes: 180
steps:
- checkout: self
fetchDepth: 0
- task: Bash@3
displayName: Build timestamp for caching
continueOnError: true
condition: eq(variables['RUN_FULL_CI'], 'true')
inputs:
targetType: 'inline'
script: |
echo 'string(TIMESTAMP current_date "%H;%M;%S" UTC)' > script
echo 'execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${current_date}")' >> script
val=$(cmake -P script)
echo "##vso[task.setvariable variable=TS]$val"
echo 'string(TIMESTAMP current_date "%Y" UTC)' > script
echo 'execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${current_date}")' >> script
val=$(cmake -P script)
echo "##vso[task.setvariable variable=TS_YEAR]$val"
echo 'string(TIMESTAMP current_date "%m" UTC)' > script
echo 'execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${current_date}")' >> script
val=$(cmake -P script)
echo "##vso[task.setvariable variable=TS_MONTH]$val"
echo 'string(TIMESTAMP current_date "%d" UTC)' > script
echo 'execute_process(COMMAND ${CMAKE_COMMAND} -E echo "${current_date}")' >> script
val=$(cmake -P script)
echo "##vso[task.setvariable variable=TS_DAY]$val"
- task: Bash@3
displayName: Output timestamp for caching
continueOnError: true
condition: and(eq(variables['RUN_FULL_CI'], 'true'), in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues'))
inputs:
targetType: 'inline'
script: 'echo "my pipeline variable is $(TS) $(TS_YEAR) $(TS_MONTH) $(TS_DAY)"'
- task: Cache@2
displayName: Update cache
continueOnError: true
condition: and(eq(variables['RUN_FULL_CI'], 'true'), in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues'))
inputs:
securityNamespace: cache
key: $(Agent.OS) | "$(cache_name)" | $(TS_YEAR) | $(TS_MONTH) | $(TS_DAY) | $(TS)
path: '$(build_root)$(volume_name)/ccache'
restoreKeys: |
$(Agent.OS) | "$(cache_name)" | $(TS_YEAR) | $(TS_MONTH) | $(TS_DAY)
$(Agent.OS) | "$(cache_name)" | $(TS_YEAR) | $(TS_MONTH)
$(Agent.OS) | "$(cache_name)" | $(TS_YEAR)
$(Agent.OS) | "$(cache_name)"
- task: Bash@3
displayName: Check for changes in containers
condition: in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues')
inputs:
targetType: 'inline'
script: |
val=$(./scripts/check_containers.sh)
echo "##vso[task.setvariable variable=compose_command]$val"
- task: DockerCompose@1
displayName: Pull container
inputs:
projectName: darma-tasking-vt
containerregistrytype: 'Container Registry'
dockerComposeFile: '**/docker-compose.yml'
action: 'Run a Docker Compose command'
dockerComposeCommand: '$(compose_command) ubuntu-cpp-clean'
- task: DockerCompose@1
displayName: Build container
inputs:
projectName: darma-tasking-vt
containerregistrytype: 'Container Registry'
dockerComposeFile: '**/docker-compose.yml'
action: 'Run a Docker Compose command'
dockerComposeCommand: 'run ubuntu-cpp-clean'
env:
CODECOV_TOKEN: $(codecov_token)
- task: Bash@3
displayName: Put compilation's and tests' logs in PR comment
continueOnError: true
condition: and(eq(variables['RUN_FULL_CI'], 'true'), and(succeededOrFailed(), eq(variables['Build.Reason'], 'PullRequest')))
inputs:
targetType: 'inline'
script: |
./scripts/report_logs_in_comment.sh \
"$(build_root)$(volume_name)/vt/compilation_errors_warnings.out" \
"$(build_root)$(volume_name)/vt/cmake-output.log" \
"$(Build.BuildNumber)" \
"$(System.PullRequest.PullRequestNumber)" \
"$(Build.Repository.Name)" \
"$GITHUB_PAT" \
"$(Build.BuildId)" \
"$(System.JobId)" \
"$(Agent.JobStatus)"
env:
GITHUB_PAT: $(github_pat)
- task: DockerCompose@1
displayName: Push container to registry
continueOnError: true
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop'))
inputs:
projectName: darma-tasking-vt
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: 'dockerRegistryConnection1'
dockerComposeFile: '**/docker-compose.yml'
action: 'Run a Docker Compose command'
dockerComposeCommand: 'push ubuntu-cpp-clean'
- task: Bash@3
displayName: Create artifacts
continueOnError: true
condition: and(eq(variables['RUN_FULL_CI'], 'true'), in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues'))
inputs:
targetType: 'inline'
script: |
zip -j $(Agent.TempDirectory)/LastTest.log.gz $(build_root)$(volume_name)/vt/Testing/Temporary/LastTest.log
zip -j $(Agent.TempDirectory)/cmake-output.log.gz $(build_root)$(volume_name)/vt/cmake-output.log
- task: PublishPipelineArtifact@1
displayName: Upload CMake test output artifact
continueOnError: true
condition: and(eq(variables['RUN_FULL_CI'], 'true'), in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues'))
inputs:
targetPath: '$(Agent.TempDirectory)/LastTest.log.gz'
artifact: 'CMakeLastTestLog'
publishLocation: 'pipeline'
- task: PublishPipelineArtifact@1
displayName: Upload CMake full output artifact
continueOnError: true
condition: and(eq(variables['RUN_FULL_CI'], 'true'), in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues'))
inputs:
targetPath: '$(Agent.TempDirectory)/cmake-output.log.gz'
artifact: 'CMakeOutputLog'
publishLocation: 'pipeline'
- task: Bash@3
displayName: Finish pipeline
condition: in(variables['Agent.JobStatus'], 'Succeeded', 'SucceededWithIssues')
inputs:
targetType: 'inline'
script: |
echo Done
Loading
Loading