dftracer 2.2.0.post8.dev0__tar.gz → 2.2.0.post14.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (456) hide show
  1. {dftracer-2.2.0.post8.dev0/python/dftracer.egg-info → dftracer-2.2.0.post14.dev0}/PKG-INFO +1 -1
  2. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/dependency/CMakeLists.txt +1 -1
  3. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/dependency/manifest.txt +1 -1
  4. dftracer-2.2.0.post14.dev0/docs/provenance.rst +367 -0
  5. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/dfanalyzer-ideas.ipynb +1 -1
  6. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/enumeration.h +3 -12
  7. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer/_version.py +2 -2
  8. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0/python/dftracer.egg-info}/PKG-INFO +1 -1
  9. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/SOURCES.txt +6 -0
  10. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/scm_file_list.json +6 -0
  11. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/test_wheel.py +42 -2
  12. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/posix.cpp +1041 -1
  13. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/posix.h +262 -1
  14. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/stdio.cpp +400 -1
  15. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/stdio.h +77 -4
  16. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/df_logger.h +2 -0
  17. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/configuration_manager.h +15 -0
  18. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/stdio_bypass.cpp +58 -0
  19. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/stdio_bypass.h +24 -0
  20. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/utils.h +33 -0
  21. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/CMakeLists.txt +100 -0
  22. dftracer-2.2.0.post14.dev0/test/c/check.h +18 -0
  23. dftracer-2.2.0.post14.dev0/test/c/test_extra_io.c +179 -0
  24. dftracer-2.2.0.post14.dev0/test/c/test_fd_tracking.c +67 -0
  25. dftracer-2.2.0.post14.dev0/test/c/test_more_io.c +77 -0
  26. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_posix_fortify.c +20 -26
  27. dftracer-2.2.0.post14.dev0/test/c/test_posix_parity.c +132 -0
  28. dftracer-2.2.0.post14.dev0/test/c/test_relative_path.c +38 -0
  29. dftracer-2.2.0.post14.dev0/test/check_public_headers.cmake +71 -0
  30. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/valgrind/test_cpp_known_syscall.supp +19 -0
  31. dftracer-2.2.0.post8.dev0/docs/provenance.rst +0 -213
  32. dftracer-2.2.0.post8.dev0/test/c/test_posix_parity.c +0 -138
  33. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.actrc +0 -0
  34. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.clang-format +0 -0
  35. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.coveragerc +0 -0
  36. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.devcontainer/README.md +0 -0
  37. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.devcontainer/devcontainer-dockerfile.json +0 -0
  38. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.devcontainer/devcontainer.json +0 -0
  39. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.devcontainer/docker-compose.yml +0 -0
  40. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/benchmark.yml +0 -0
  41. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/ci.yml +0 -0
  42. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/dlio-benchmark.yml +0 -0
  43. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/docker-publish.yml +0 -0
  44. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/format-check.yml +0 -0
  45. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/hdf5-mpi-trace-ci.yml +0 -0
  46. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/prerelease.yml +0 -0
  47. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/pull_request_event.json +0 -0
  48. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/python-publish.yml +0 -0
  49. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/valgrind-ci.yml +0 -0
  50. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/wheels.yml +0 -0
  51. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitignore +0 -0
  52. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/benchmark.sh +0 -0
  53. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/build-test.sh +0 -0
  54. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/distribute.sh +0 -0
  55. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/dlio-benchmark.sh +0 -0
  56. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/docs.sh +0 -0
  57. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/format-check.sh +0 -0
  58. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/hdf5-mpi-trace.sh +0 -0
  59. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/run-in-podman.sh +0 -0
  60. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/toolchain.sh +0 -0
  61. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/valgrind-gates.sh +0 -0
  62. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/wheels.sh +0 -0
  63. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/build.sh +0 -0
  64. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/build_dft.sh +0 -0
  65. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/common.yml +0 -0
  66. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/compare_summary.py +0 -0
  67. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/create_log_dir.sh +0 -0
  68. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/dlio_benchmark_test.sh +0 -0
  69. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/dlio_setup.sh +0 -0
  70. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/generate_dlio_job.py +0 -0
  71. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/generate_dlio_jobs.sh +0 -0
  72. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/generate_summary.sh +0 -0
  73. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/hip_corona_requirements.txt +0 -0
  74. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/hip_tuo_requirements.txt +0 -0
  75. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/post.sh +0 -0
  76. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/pre.sh +0 -0
  77. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/requirements.txt +0 -0
  78. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/run_dft_hip_test.sh +0 -0
  79. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/run_dlio_training_with_service.sh +0 -0
  80. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/variables.sh +0 -0
  81. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab-ci.yml +0 -0
  82. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitpod.yml +0 -0
  83. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.migration/REVERT.md +0 -0
  84. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.migration/dftracer.md +0 -0
  85. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.readthedocs.yaml +0 -0
  86. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.vscode/launch.json +0 -0
  87. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.vscode/settings.json +0 -0
  88. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/CITATION.cff +0 -0
  89. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/CMakeLists.txt +0 -0
  90. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/COVERAGE_QUICKREF.md +0 -0
  91. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/DOCKER_SETUP_SUMMARY.md +0 -0
  92. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/Dockerfile +0 -0
  93. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/LICENSE +0 -0
  94. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/MANIFEST.in +0 -0
  95. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/NOTICE +0 -0
  96. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/PACKAGE_VERSION +0 -0
  97. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/README.md +0 -0
  98. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/VERSION +0 -0
  99. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/autobuild.sh +0 -0
  100. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer-config-version.cmake.in +0 -0
  101. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer-config.cmake.build.in +0 -0
  102. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer-config.cmake.in +0 -0
  103. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer-config.cmake.install.in +0 -0
  104. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer_config.hpp.in +0 -0
  105. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer_config_dbg.hpp.in +0 -0
  106. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer_module.lua.in +0 -0
  107. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/DFTracerVariorum.cmake +0 -0
  108. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/FindCUPTI.cmake +0 -0
  109. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/FindHWLOC.cmake +0 -0
  110. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/FindPAPI.cmake +0 -0
  111. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/FindVariorum.cmake +0 -0
  112. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/SetupCompiler.cmake +0 -0
  113. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/dftracer-utils.cmake +0 -0
  114. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/patches/brahma_version_override.cmake +0 -0
  115. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/probes/papi_probe.c +0 -0
  116. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/tests/has_fd.cpp +0 -0
  117. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/tests/has_filesystem.cpp +0 -0
  118. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/tests/mpi_detect.c +0 -0
  119. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/compose-dev.yaml +0 -0
  120. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docker/dl.Dockerfile +0 -0
  121. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docker/ior.Dockerfile +0 -0
  122. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/.clang-format +0 -0
  123. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/.gitignore +0 -0
  124. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/Makefile +0 -0
  125. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/_static/theme_overrides.css +0 -0
  126. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/ai_logging.rst +0 -0
  127. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/api.rst +0 -0
  128. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/bash_utilities.rst +0 -0
  129. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/build.rst +0 -0
  130. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/building_applications.rst +0 -0
  131. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/conf.py +0 -0
  132. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/coverage.md +0 -0
  133. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/debugging.rst +0 -0
  134. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/definitions.rst +0 -0
  135. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/developer-guide.rst +0 -0
  136. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_alcf_polaris.rst +0 -0
  137. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_build.rst +0 -0
  138. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_conf.rst +0 -0
  139. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_custom_columns.rst +0 -0
  140. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_distributed.rst +0 -0
  141. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_overlap_analysis.rst +0 -0
  142. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dftracer_service.rst +0 -0
  143. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/docker.rst +0 -0
  144. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/examples.rst +0 -0
  145. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/gpu_tracing.rst +0 -0
  146. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/overlap-analysis/overlap-analysis-summary.png +0 -0
  147. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/dask-scheduler-monitoring.png +0 -0
  148. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/run-scheduler.png +0 -0
  149. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/vscode-add-port-button.png +0 -0
  150. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/vscode-added-port.png +0 -0
  151. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/vscode-ports-tab.png +0 -0
  152. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dftracer-logo-light.png +0 -0
  153. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dftracer-logo.png +0 -0
  154. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dlio-profiler-logo.png +0 -0
  155. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-flags-confirm-1.png +0 -0
  156. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-flags-confirm-2.png +0 -0
  157. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-interface.png +0 -0
  158. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-sql-result-example-pread.png +0 -0
  159. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-sql-textbox-2.png +0 -0
  160. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-sql-textbox.png +0 -0
  161. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-ui-confirm.png +0 -0
  162. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-viz.png +0 -0
  163. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/1000genome.png +0 -0
  164. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/Montage_dur.png +0 -0
  165. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/Montage_graph.png +0 -0
  166. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/Montage_summary.png +0 -0
  167. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/trace.png +0 -0
  168. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/index.rst +0 -0
  169. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/limitations.rst +0 -0
  170. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/migration.rst +0 -0
  171. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/models.rst +0 -0
  172. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/omnistat.rst +0 -0
  173. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/overview.rst +0 -0
  174. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/pegasus_genome.rst +0 -0
  175. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/pegasus_montage.rst +0 -0
  176. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/perfetto.rst +0 -0
  177. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/requirements.txt +0 -0
  178. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/style-guides.rst +0 -0
  179. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/testing.rst +0 -0
  180. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/trace_format.rst +0 -0
  181. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/utilities.rst +0 -0
  182. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/variorum.rst +0 -0
  183. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/dfanalyzer-distributed.ipynb +0 -0
  184. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/dfanalyzer.ipynb +0 -0
  185. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/images/bw_timeline.png +0 -0
  186. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/images/dask-dashboard-load.png +0 -0
  187. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/images/xfer_timeline.png +0 -0
  188. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/requirements.txt +0 -0
  189. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537780-preload.pfw.gz +0 -0
  190. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537781-preload.pfw.gz +0 -0
  191. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537782-preload.pfw.gz +0 -0
  192. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537783-preload.pfw.gz +0 -0
  193. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537784-preload.pfw.gz +0 -0
  194. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537785-preload.pfw.gz +0 -0
  195. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537786-preload.pfw.gz +0 -0
  196. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537787-preload.pfw.gz +0 -0
  197. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537788-preload.pfw.gz +0 -0
  198. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537789-preload.pfw.gz +0 -0
  199. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537790-preload.pfw.gz +0 -0
  200. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537791-preload.pfw.gz +0 -0
  201. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537793-preload.pfw.gz +0 -0
  202. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537796-preload.pfw.gz +0 -0
  203. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537798-preload.pfw.gz +0 -0
  204. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537799-preload.pfw.gz +0 -0
  205. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537800-preload.pfw.gz +0 -0
  206. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537801-preload.pfw.gz +0 -0
  207. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537802-preload.pfw.gz +0 -0
  208. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537803-preload.pfw.gz +0 -0
  209. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537804-preload.pfw.gz +0 -0
  210. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537805-preload.pfw.gz +0 -0
  211. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537806-preload.pfw.gz +0 -0
  212. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537807-preload.pfw.gz +0 -0
  213. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537808-preload.pfw.gz +0 -0
  214. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537809-preload.pfw.gz +0 -0
  215. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537810-preload.pfw.gz +0 -0
  216. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537811-preload.pfw.gz +0 -0
  217. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537812-preload.pfw.gz +0 -0
  218. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537813-preload.pfw.gz +0 -0
  219. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537814-preload.pfw.gz +0 -0
  220. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537815-preload.pfw.gz +0 -0
  221. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537816-preload.pfw.gz +0 -0
  222. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537817-preload.pfw.gz +0 -0
  223. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537818-preload.pfw.gz +0 -0
  224. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537819-preload.pfw.gz +0 -0
  225. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537820-preload.pfw.gz +0 -0
  226. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537821-preload.pfw.gz +0 -0
  227. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537822-preload.pfw.gz +0 -0
  228. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537823-preload.pfw.gz +0 -0
  229. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537824-preload.pfw.gz +0 -0
  230. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537825-preload.pfw.gz +0 -0
  231. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537826-preload.pfw.gz +0 -0
  232. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537827-preload.pfw.gz +0 -0
  233. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537828-preload.pfw.gz +0 -0
  234. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537829-preload.pfw.gz +0 -0
  235. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537830-preload.pfw.gz +0 -0
  236. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537831-preload.pfw.gz +0 -0
  237. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace.pfw.gz +0 -0
  238. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/README.md +0 -0
  239. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/data.png +0 -0
  240. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/example.ipynb +0 -0
  241. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/requirement.txt +0 -0
  242. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/test_data1.pfw +0 -0
  243. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/vis.png +0 -0
  244. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/papi_standalone/Makefile +0 -0
  245. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/papi_standalone/README.md +0 -0
  246. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/papi_standalone/papi_mpi.cpp +0 -0
  247. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/papi_standalone/papi_single_node.cpp +0 -0
  248. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/constants.h +0 -0
  249. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/cpp_typedefs.h +0 -0
  250. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/entity.h +0 -0
  251. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/typedef.h +0 -0
  252. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/dftracer.h +0 -0
  253. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/Dockerfile.dev +0 -0
  254. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/Dockerfile.prod +0 -0
  255. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/QUICK_REFERENCE.md +0 -0
  256. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/README.md +0 -0
  257. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/build-multiplatform.sh +0 -0
  258. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/pyproject.toml +0 -0
  259. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer/__init__.py +0 -0
  260. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/dependency_links.txt +0 -0
  261. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/not-zip-safe +0 -0
  262. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/requires.txt +0 -0
  263. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/top_level.txt +0 -0
  264. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/results/cases.csv +0 -0
  265. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/results/overhead.csv +0 -0
  266. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/README_COVERAGE.md +0 -0
  267. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/check_coverage.sh +0 -0
  268. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/coverage_after_autobuild.sh +0 -0
  269. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_anonymize +0 -0
  270. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_compact +0 -0
  271. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_compact_by_pid +0 -0
  272. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_create_index +0 -0
  273. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_event_count +0 -0
  274. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_merge +0 -0
  275. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_pgzip +0 -0
  276. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_sanitize +0 -0
  277. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_split +0 -0
  278. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_validate +0 -0
  279. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/formatting/autoformat.sh +0 -0
  280. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/formatting/check-formatting.sh +0 -0
  281. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/generate_coverage.sh +0 -0
  282. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/generate_coverage_report.sh +0 -0
  283. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/git_sparse_clone_interactive +0 -0
  284. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/git_sparse_push_interactive +0 -0
  285. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/repo/README.md +0 -0
  286. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/repo/update_version.sh +0 -0
  287. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/valgrind_gate.py +0 -0
  288. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/check_papi_trace.py +0 -0
  289. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/check_variorum_trace.py +0 -0
  290. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/dlio_non_valgrind_runner.py +0 -0
  291. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/requirements-valgrind-runners.txt +0 -0
  292. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/run_hdf5_mpi_ci_local.sh +0 -0
  293. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/valgrind_ctest_python_runner.py +0 -0
  294. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/valgrind_ctest_runner.py +0 -0
  295. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/valgrind_dlio_runner.py +0 -0
  296. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/README.md +0 -0
  297. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/build_deps.sh +0 -0
  298. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/build_wheels.sh +0 -0
  299. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/bundle_wheel.py +0 -0
  300. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/manifest.py +0 -0
  301. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/repair_wheel.sh +0 -0
  302. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/setup.cfg +0 -0
  303. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/setup.py +0 -0
  304. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/aggregator/aggregator.cpp +0 -0
  305. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/aggregator/aggregator.h +0 -0
  306. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/aggregator/rules.cpp +0 -0
  307. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/aggregator/rules.h +0 -0
  308. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/hdf5.cpp +0 -0
  309. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/hdf5.h +0 -0
  310. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/mpi.cpp +0 -0
  311. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/mpi.h +0 -0
  312. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/mpiio.cpp +0 -0
  313. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/mpiio.h +0 -0
  314. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/buffer/buffer.cpp +0 -0
  315. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/buffer/buffer.h +0 -0
  316. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/datastructure.cpp +0 -0
  317. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/datastructure.h +0 -0
  318. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/dftracer_main.cpp +0 -0
  319. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/dftracer_main.h +0 -0
  320. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/error.h +0 -0
  321. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/event_loop.cpp +0 -0
  322. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/event_loop.h +0 -0
  323. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/logging.h +0 -0
  324. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/macros.h +0 -0
  325. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/singleton.h +0 -0
  326. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/compression/zlib_compression.cpp +0 -0
  327. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/compression/zlib_compression.h +0 -0
  328. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/datastructure.cpp +0 -0
  329. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/df_logger.cpp +0 -0
  330. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/dftracer.cpp +0 -0
  331. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/dftracer_preload.cpp +0 -0
  332. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/dftracer_preload.h +0 -0
  333. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/finstrument/functions.cpp +0 -0
  334. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/finstrument/functions.h +0 -0
  335. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/cuda/intercept.cpp +0 -0
  336. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/cuda/intercept.h +0 -0
  337. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/generic_function.h +0 -0
  338. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/hip/intercept.cpp +0 -0
  339. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/hip/intercept.h +0 -0
  340. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/papi/counters.cpp +0 -0
  341. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/papi/counters.h +0 -0
  342. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/serialization/json_line.cpp +0 -0
  343. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/serialization/json_line.h +0 -0
  344. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/configuration_manager.cpp +0 -0
  345. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/md5.cpp +0 -0
  346. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/md5.h +0 -0
  347. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/posix_bypass.cpp +0 -0
  348. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/posix_bypass.h +0 -0
  349. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/utils.cpp +0 -0
  350. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/writer/stdio_writer.cpp +0 -0
  351. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/writer/stdio_writer.h +0 -0
  352. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/python/dftracer.cpp +0 -0
  353. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/python/dftracer.cpp.in +0 -0
  354. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/python/dftracer_dbg.cpp +0 -0
  355. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/common/datastructure.h +0 -0
  356. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/service.cpp +0 -0
  357. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/service.h +0 -0
  358. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/cpu_collector.cpp +0 -0
  359. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/cpu_collector.h +0 -0
  360. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/io_collector.cpp +0 -0
  361. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/io_collector.h +0 -0
  362. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/memory_collector.cpp +0 -0
  363. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/memory_collector.h +0 -0
  364. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/network_collector.cpp +0 -0
  365. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/network_collector.h +0 -0
  366. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/omnistat_collector.cpp +0 -0
  367. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/omnistat_collector.h +0 -0
  368. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/telemetry_factory.cpp +0 -0
  369. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/telemetry_factory.h +0 -0
  370. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/telemetry_interface.h +0 -0
  371. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/variorum_collector.cpp +0 -0
  372. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/variorum_collector.h +0 -0
  373. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/variorum_power_layout.h +0 -0
  374. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/analysis_ior.py +0 -0
  375. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test.c +0 -0
  376. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_c_api_coverage.c +0 -0
  377. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_entity.c +0 -0
  378. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_hdf5.c +0 -0
  379. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_hdf5_mpi.c +0 -0
  380. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_hdf5_parallel.c +0 -0
  381. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_mpi.c +0 -0
  382. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/testlib.c +0 -0
  383. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_entity_trace.py +0 -0
  384. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_events_present.sh +0 -0
  385. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_file.sh +0 -0
  386. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_file_at_least.sh +0 -0
  387. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_file_not.sh +0 -0
  388. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test.cpp +0 -0
  389. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_cpp_api_coverage.cpp +0 -0
  390. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_entity.cpp +0 -0
  391. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_hdf5.cpp +0 -0
  392. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_hdf5_mpi.cpp +0 -0
  393. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_hdf5_parallel.cpp +0 -0
  394. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_mpi.cpp +0 -0
  395. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cuda/check_cuda_trace.py +0 -0
  396. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cuda/test_cuda.cpp +0 -0
  397. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/dfanalyzer/CMakeLists.txt +0 -0
  398. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/dlio_benchmark/CMakeLists.txt +0 -0
  399. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/ignore_result.h +0 -0
  400. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/CMakeLists.txt +0 -0
  401. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/test_external.cpp +0 -0
  402. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_compatible/CMakeLists.txt +0 -0
  403. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_compatible/test_version.cpp +0 -0
  404. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_exact/CMakeLists.txt +0 -0
  405. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_exact/test_version.cpp +0 -0
  406. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_higher_minor/CMakeLists.txt +0 -0
  407. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_higher_minor/test_version.cpp +0 -0
  408. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_incompatible_major/CMakeLists.txt +0 -0
  409. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_incompatible_major/test_version.cpp +0 -0
  410. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_minimum/CMakeLists.txt +0 -0
  411. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_minimum/test_version.cpp +0 -0
  412. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_old_major/CMakeLists.txt +0 -0
  413. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_old_major/test_version.cpp +0 -0
  414. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_wrong_exact/CMakeLists.txt +0 -0
  415. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_wrong_exact/test_version.cpp +0 -0
  416. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/CMakeLists.txt +0 -0
  417. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/analysis/darshan_analyzer_main.ipynb +0 -0
  418. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/analysis/otf2_distributed_reader.ipynb +0 -0
  419. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/analysis/recorder_distributed_reader.ipynb +0 -0
  420. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/load_darshan.py +0 -0
  421. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/load_recorder.py +0 -0
  422. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/load_scorep.py +0 -0
  423. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/overhead.cpp +0 -0
  424. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/overhead.csv +0 -0
  425. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/overhead.py +0 -0
  426. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/ai_logging.py +0 -0
  427. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/cuda_test.py +0 -0
  428. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/dynamo_test.py +0 -0
  429. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/hip_test.py +0 -0
  430. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/python_test.py +0 -0
  431. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/requirements.txt +0 -0
  432. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/test.py +0 -0
  433. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/test_python_api_coverage.py +0 -0
  434. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/CMakeLists.txt +0 -0
  435. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/check.h +0 -0
  436. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/file.dat +0 -0
  437. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/mmap +0 -0
  438. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/mmap.cpp +0 -0
  439. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_aggregated_key_hash.cpp +0 -0
  440. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_aggregated_value.cpp +0 -0
  441. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_aggregator.cpp +0 -0
  442. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_configuration.cpp +0 -0
  443. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_entity.cpp +0 -0
  444. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_omnistat.cpp +0 -0
  445. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_serialization.cpp +0 -0
  446. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_service.cpp +0 -0
  447. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_trace_event_type.cpp +0 -0
  448. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_variorum.cpp +0 -0
  449. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/util.h +0 -0
  450. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/valgrind/dlio_known_external.supp +0 -0
  451. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/yaml/benchmark-rules.yaml +0 -0
  452. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/yaml/conf.yaml +0 -0
  453. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/yaml/rules.yaml +0 -0
  454. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/yaml/selective-aggregation-rules.yaml +0 -0
  455. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/tools/CMakeLists.txt +0 -0
  456. {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/tools/generate_interfaces_from_brahma.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dftracer
3
- Version: 2.2.0.post8.dev0
3
+ Version: 2.2.0.post14.dev0
4
4
  Summary: I/O profiler for deep learning python apps. Specifically for dlio_benchmark.
5
5
  Author-email: "Hariharan Devarajan (Hari)" <hariharandev1@llnl.gov>
6
6
  License-Expression: MIT
@@ -183,7 +183,7 @@ else()
183
183
  GIT_REPOSITORY https://github.com/llnl-asr/brahma.git
184
184
  # TODO(rayandrew): replace this commit with the brahma release tag before the
185
185
  # dftracer release, and update dependency/manifest.txt to match.
186
- GIT_TAG c86a1338697265d8c29d74b17718290e30de7fbf
186
+ GIT_TAG b33368847b76c5dc7b15cc68f987a330cfb0601a
187
187
  TIMEOUT 10
188
188
  PATCH_COMMAND ${CMAKE_COMMAND}
189
189
  -DSOURCE_DIR=<SOURCE_DIR>
@@ -8,4 +8,4 @@ yaml-cpp yaml-cpp-0.6.3 https://github.com/jbeder/yaml-cpp.git
8
8
  libuv v1.52.1 https://github.com/libuv/libuv.git
9
9
  # TODO(rayandrew): replace the brahma commit with its release tag before the
10
10
  # dftracer release, and update dependency/CMakeLists.txt to match.
11
- brahma c86a1338697265d8c29d74b17718290e30de7fbf https://github.com/llnl-asr/brahma.git
11
+ brahma b33368847b76c5dc7b15cc68f987a330cfb0601a https://github.com/llnl-asr/brahma.git
@@ -0,0 +1,367 @@
1
+ ================================
2
+ Entities, Relations & Provenance
3
+ ================================
4
+
5
+ DFTracer can record **what data an application works with and how each piece
6
+ of data came to be**, alongside its usual timing and I/O events. The same API
7
+ serves provenance (lineage of scientific artifacts) and performance analysis
8
+ (which events touched which data instances).
9
+
10
+ .. contents::
11
+ :local:
12
+ :depth: 2
13
+
14
+ ----------------------------------------
15
+ What it captures
16
+ ----------------------------------------
17
+
18
+ **Entity**
19
+ A typed instance of something the application works with: an input file, a
20
+ dataset shard, a checkpoint, a model, a predicted protein structure, a GPU
21
+ buffer. Identified by ``(type, key)``: the *type* is an application-defined
22
+ class name, the *key* is any application identifier for the instance (a
23
+ path, a sample id, ``step=120``). The key is hashed into a 64-bit
24
+ ``EntityID``; it is never stored, so keys may be long or sensitive.
25
+
26
+ **Entity type**
27
+ Described once per process with a **role** (input, output, intermediate,
28
+ parameter, reference) and a short description of what it represents.
29
+ Roles let users ask "what went in", "what came out", "what happened
30
+ between".
31
+
32
+ **Event relation**
33
+ An event (a traced function or region) relates to entities: it **used**
34
+ (consumed), **generated** (produced), **invalidated** (deleted or ended) or
35
+ **updated** (modified in place) them. Any event may carry relations, in any
36
+ category, such as a C++ function, a Python region or an MPI call.
37
+
38
+ **Entity relation**
39
+ Two entities relate directly: **derived_from**, **revision_of**,
40
+ **contains** (has-a), **part_of** (is-in), **specialization_of**
41
+ (inherits / is-a), **alternate_of**, **depends_on**.
42
+
43
+ Together these form a graph: entities and events as nodes, relations as edges.
44
+ Walking ``generated`` edges backwards from an artifact gives its lineage;
45
+ walking ``used`` edges forwards gives the impact of an input.
46
+
47
+ Design rules
48
+ * Enums wherever possible; strings only where unavoidable, and then
49
+ fixed-length and JSON-safe.
50
+ * Identity is computed by the core (FNV-1a-64 of ``type`` 0x1f ``key``), so
51
+ the same ``(type, key)`` gets the same ``EntityID`` in C, C++ and Python,
52
+ in every process and on every node.
53
+ * Each entity and each entity type is recorded **once per process**; later
54
+ declarations cost a set lookup. The first declaration's store and uri win.
55
+ * Relations are the event's content and are written even when
56
+ ``DFTRACER_INC_METADATA`` is off (other optional event args still need it).
57
+
58
+ ----------------------------------------
59
+ Types and enums
60
+ ----------------------------------------
61
+
62
+ Defined in ``dftracer/core/common/entity.h`` (C-compatible) and
63
+ ``dftracer/core/common/typedef.h``.
64
+
65
+ =========================== ==========================================================================
66
+ Type Meaning
67
+ =========================== ==========================================================================
68
+ ``EntityID`` ``uint64_t``; 16 lowercase hex characters in traces
69
+ ``ConstEntityTypeName`` type name, at most ``DFT_ENTITY_TYPE_LEN - 1`` (31)
70
+ ``ConstEntityKey`` instance key, hashed into the id, not stored
71
+ ``ConstEntityURI`` locator unique within the app, at most 255 characters
72
+ ``ConstEntityDescription`` type description, at most 255 characters
73
+ ``EntityStore`` where the instance lives (enum below)
74
+ ``EntityRole`` role of an entity type (enum below)
75
+ ``EntityRelation`` event and entity relations (enum below)
76
+ =========================== ==========================================================================
77
+
78
+ Strings are truncated to their capacity and restricted to ``A-Z a-z 0-9 _ - .
79
+ : / @ + = , ~`` and space; any other character (quotes, backslash, ``|``,
80
+ control characters) becomes ``_``.
81
+
82
+ .. list-table::
83
+ :header-rows: 1
84
+
85
+ * - Enum
86
+ - Values (as written in traces)
87
+ * - ``EntityStore``
88
+ - 0 memory, 1 gpu_memory, 2 local_disk, 3 parallel_fs, 4 burst_buffer,
89
+ 5 object_store, 6 database, 7 network, 8 other
90
+ * - ``EntityRole``
91
+ - 0 unknown, 1 input, 2 output, 3 intermediate, 4 parameter, 5 reference
92
+ * - ``EntityRelation`` (event)
93
+ - 0 used, 1 generated, 2 invalidated, 3 updated
94
+ * - ``EntityRelation`` (entity)
95
+ - 16 derived_from, 17 revision_of, 18 contains, 19 part_of,
96
+ 20 specialization_of, 21 alternate_of, 22 depends_on
97
+
98
+ Enum values are part of the trace format and are append-only.
99
+
100
+ ----------------------------------------
101
+ C API
102
+ ----------------------------------------
103
+
104
+ .. code-block:: c
105
+
106
+ #include <dftracer/dftracer.h>
107
+
108
+ DFTRACER_C_ENTITY_TYPE("sequence", DFT_ROLE_INPUT, "A query protein sequence");
109
+
110
+ void fold(const char* seq_id, const char* out_path) {
111
+ DFTRACER_C_FUNCTION_START();
112
+ DFTRACER_C_FUNCTION_USES("sequence", seq_id); /* store: memory */
113
+ EntityID s = update_relation_entity(data_fn, DFT_REL_GENERATED,
114
+ "protein_structure", seq_id,
115
+ DFT_STORE_PARALLEL_FS, out_path);
116
+ DFTRACER_C_FUNCTION_END();
117
+ }
118
+
119
+ EntityID tar = DFTRACER_C_ENTITY("structure_tar", seq_id,
120
+ DFT_STORE_PARALLEL_FS, tar_path);
121
+ DFTRACER_C_ENTITY_RELATE(DFT_REL_CONTAINS, tar, s);
122
+
123
+ Functions: ``dftracer_declare_entity``, ``dftracer_declare_entity_type``,
124
+ ``dftracer_relate_entities``, ``update_relation``, ``update_relation_entity``.
125
+ Macros: ``DFTRACER_C_ENTITY``, ``DFTRACER_C_ENTITY_TYPE``,
126
+ ``DFTRACER_C_ENTITY_RELATE``, ``DFTRACER_C_FUNCTION_RELATE``,
127
+ ``DFTRACER_C_FUNCTION_USES``, ``DFTRACER_C_FUNCTION_GENERATES``,
128
+ ``DFTRACER_C_REGION_RELATE``.
129
+
130
+ ----------------------------------------
131
+ C++ API
132
+ ----------------------------------------
133
+
134
+ .. code-block:: cpp
135
+
136
+ #include <dftracer/dftracer.h>
137
+
138
+ void relax(const std::string& seq, const std::string& path) {
139
+ DFTRACER_CPP_FUNCTION();
140
+ EntityID raw = profiler_dft_fn.uses("unrelaxed_structure", seq.c_str());
141
+ EntityID out = profiler_dft_fn.generates("relaxed_structure", seq.c_str(),
142
+ DFT_STORE_BURST_BUFFER, path.c_str());
143
+ DFTRACER_CPP_ENTITY_RELATE(DFT_REL_REVISION_OF, out, raw);
144
+ }
145
+
146
+ ``DFTracer`` gains ``relate(EntityRelation, EntityID)``,
147
+ ``relate(EntityRelation, type, key, store, uri)``, ``uses(...)`` and
148
+ ``generates(...)``; macros ``DFTRACER_CPP_ENTITY``, ``DFTRACER_CPP_ENTITY_TYPE``,
149
+ ``DFTRACER_CPP_ENTITY_RELATE``, ``DFTRACER_CPP_FUNCTION_RELATE``,
150
+ ``DFTRACER_CPP_FUNCTION_USES``, ``DFTRACER_CPP_FUNCTION_GENERATES``,
151
+ ``DFTRACER_CPP_REGION_RELATE``.
152
+
153
+ ----------------------------------------
154
+ Python API
155
+ ----------------------------------------
156
+
157
+ .. code-block:: python
158
+
159
+ from dftracer.python import (dftracer, dft_fn, EntityStore, EntityRole,
160
+ EntityRelation)
161
+
162
+ log = dftracer.initialize_log(logfile=None, data_dir=None, process_id=-1)
163
+ log.declare_entity_type("filtered_msa", EntityRole.OUTPUT,
164
+ "Diversity-filtered multiple sequence alignment")
165
+
166
+ with dft_fn("APP", name="filter_msa") as f:
167
+ merged = f.uses("merged_msa", seq_id, EntityStore.BURST_BUFFER, merged_path)
168
+ filtered = f.generates("filtered_msa", seq_id, EntityStore.BURST_BUFFER, out_path)
169
+ f.relate_entity(EntityRelation.INVALIDATED, "merged_msa", seq_id) # deleted
170
+
171
+ log.relate_entities(EntityRelation.DERIVED_FROM, filtered, merged)
172
+
173
+ ``dftracer`` gains ``declare_entity`` (returns the id as an ``int``, 0 when
174
+ tracing is off), ``declare_entity_type`` and ``relate_entities``; ``dft_fn``
175
+ gains ``uses``, ``generates``, ``relate_entity`` and ``relate``. The native
176
+ module also exposes ``entity_hash(type, key)`` and ``entity_hex(id)`` to compute
177
+ ids without tracing.
178
+
179
+ ----------------------------------------
180
+ Trace records
181
+ ----------------------------------------
182
+
183
+ Entities, entity types and entity relations are metadata records
184
+ (``"ph":4``, ``"cat":"dftracer"``, ``"type":1``) with named fields:
185
+
186
+ .. code-block:: json
187
+
188
+ {"name":"EH","cat":"dftracer","type":1,"pid":1,"tid":1,"ph":4,
189
+ "args":{"hhash":"…","id":"8f0de68c04eea0bf","type":"protein_structure",
190
+ "store":3,"uri":"/p/out/a.pdb"}}
191
+ {"name":"ET","cat":"dftracer","type":1,"pid":1,"tid":1,"ph":4,
192
+ "args":{"hhash":"…","type":"protein_structure","role":2,
193
+ "description":"Predicted 3D structure"}}
194
+ {"name":"ER","cat":"dftracer","type":1,"pid":1,"tid":1,"ph":4,
195
+ "args":{"hhash":"…","relation":18,"subject":"6e6d650dd131e83b",
196
+ "object":"8f0de68c04eea0bf"}}
197
+
198
+ An event's relations are one ``relations`` object in its ``args``: relation
199
+ name to an array of entity ids. Nesting them keeps relation names from
200
+ colliding with other event args (the lifecycle ``end`` event has its own
201
+ ``used`` object, for example):
202
+
203
+ .. code-block:: json
204
+
205
+ {"id":2,"name":"fold","cat":"CPP_APP","type":9,"pid":1,"tid":1,
206
+ "ts":1790877632269434,"dur":32,"ph":1,
207
+ "args":{"hhash":"…","relations":{"used":["d824b0bb91487885"],
208
+ "generated":["8f0de68c04eea0bf"]}}}
209
+
210
+ Every record is one JSON line.
211
+ The ``hhash`` field names the host, so records from different nodes stay apart.
212
+ An ``EH`` record says what an id stands for.
213
+ An ``ET`` record says what a type means and which role it plays.
214
+ An ``ER`` record is one edge between two entities, with the ``relation`` code from the table above.
215
+ An event record says which entities it used, generated, invalidated or updated.
216
+
217
+ Each process writes its own ``EH`` and ``ET`` records, once per entity and once per type.
218
+ A trace directory therefore holds the same entity many times, once per process that touched it.
219
+ Readers keep the first copy and drop the rest.
220
+ The ``store`` is a number from the ``EntityStore`` table and ``uri`` is empty when the application gave none.
221
+ Event relations hold only ids.
222
+ The entity behind an id is the ``EH`` record with the same ``id``, which may sit in another file.
223
+
224
+ A reader joins events to entities by id; ids from different processes and
225
+ languages join without coordination. ``dftracer-utils`` builds the graph
226
+ (``trace::provenance::extract_provenance_graph``, ``GET /api/prov/graph`` and
227
+ the *Provenance* tab of ``dftracer_server``).
228
+
229
+ ----------------------------------------
230
+ Reading a trace
231
+ ----------------------------------------
232
+
233
+ The traces of one run sit in a directory with one ``.pfw.gz`` file per process.
234
+ Read them with the ``dftracer-utils`` dataframe API, which scans all files in one pass and joins them by id.
235
+
236
+ .. code-block:: python
237
+
238
+ from dftracer.utils import TraceViewer, col
239
+
240
+ view = TraceViewer("traces/", "/tmp/traces-index").phase("any")
241
+
242
+ # One scan feeds both reads. Entity records are metadata, so the
243
+ # viewer must read every record family.
244
+ with view.session() as s:
245
+ eh = s.collect(view.filter('name == "EH"'))
246
+ prov = s.collect(view.filter('cat == "PROV"'))
247
+
248
+ entities = (
249
+ eh.result()
250
+ .select("args.id", "args.type")
251
+ .rename({"args.id": "entity", "args.type": "type"})
252
+ .distinct("entity")
253
+ )
254
+
255
+ # One row per (event, relation, entity), labeled with the entity type.
256
+ events = prov.result()
257
+ edges = (
258
+ events.unpivot(
259
+ id_vars=["name", "pid", "ts"],
260
+ value_vars=[c for c in events.columns if c.startswith("args.relations.")],
261
+ )
262
+ .drop_nulls()
263
+ .join(entities, left_on="value", right_on="entity")
264
+ )
265
+ edges = edges.assign(relation=edges["variable"].str.extract(r"relations\.(\w+)\."))
266
+
267
+ made = edges.filter(col("relation") == "generated")
268
+ print(made.group_by(["name", "type"]).agg("count:pid").sort(["name", "type"]).to_pandas())
269
+
270
+ The second argument of ``TraceViewer`` is where the index goes.
271
+ Without it the viewer writes a ``.dftindex`` directory next to the traces, which is not what you want in a shared trace directory.
272
+
273
+ Two details of the dataframe shape the code.
274
+ Metadata records have ``ph`` 4 and are left out of a default query, so ``phase("any")`` is required to see ``EH``, ``ET`` and ``ER``.
275
+ The session registers both reads first and runs them together, so the trace is decompressed and parsed once.
276
+ Nested fields become columns named by their path, and an array becomes one column per position, such as ``args.relations.used.0`` and ``args.relations.used.1``.
277
+ The ``unpivot`` call turns those columns back into one row per relation, and ``distinct`` keeps one ``EH`` record for each entity, since every process writes its own copy.
278
+
279
+ On a protein structure prediction run of 10 sequences the last line prints which step made which kind of entity, here cut to the first rows:
280
+
281
+ .. code-block:: text
282
+
283
+ name type count_pid
284
+ 0 a3m_to_sto stockholm_msa 10
285
+ 1 filter_msa filtered_msa 10
286
+ 2 load_and_merge_msas merged_msa 10
287
+ 3 load_inputs sequence 10
288
+ 4 msa_featgen msa_features 10
289
+ ...
290
+
291
+ The same query in duql is one text with no dataframe code:
292
+
293
+ .. code-block:: python
294
+
295
+ from dftracer.utils import TraceViewer
296
+
297
+ q = """
298
+ let entities = from all
299
+ | where name == "EH"
300
+ | select entity = args.id, etype = args.type
301
+ | distinct;
302
+ where cat == "PROV"
303
+ | unpivot args.relations.*.* as variable, entity
304
+ | where entity is not null
305
+ | derive etype = entity -> entities.etype
306
+ | derive relation = extract(variable, "relations[.]([a-z]+)[.]", 1)
307
+ | where relation == "generated"
308
+ | group name, etype { n = count() }
309
+ """
310
+ print(TraceViewer("traces/", "/tmp/traces-index").duql(q).collect().to_pandas())
311
+
312
+ The ``let`` names a row set of the entity records, and ``from all`` reads them although they are metadata, so the viewer needs no ``phase("any")``.
313
+ The ``*.*`` pattern in ``unpivot`` expands to every ``args.relations.<name>.<position>`` field in the trace, which does the job of the column list in the dataframe code.
314
+ ``entity -> entities.etype`` looks up the type of each entity id in the row set.
315
+ The result is the same 16 rows, one for each step and entity type.
316
+
317
+ The ``edges`` table answers the common questions with a filter.
318
+ ``edges.filter(col("relation") == "used")`` lists what each step consumed, and ``"invalidated"`` lists what each step deleted.
319
+ Filtering on ``col("value")`` with one id gives every event that touched that entity, whichever process wrote it.
320
+ For a ``revision_of`` or ``contains`` edge, read the ``ER`` records the same way, with ``name == "ER"`` and the columns ``args.relation``, ``args.subject`` and ``args.object``.
321
+
322
+ ----------------------------------------
323
+ Walking the graph
324
+ ----------------------------------------
325
+
326
+ The lineage of an entity is every entity that the steps before it used, and its impact is every entity that the steps after it made.
327
+ Both are a walk over the ``edges`` table above, one join per hop.
328
+
329
+ .. code-block:: python
330
+
331
+ from dftracer.utils import DataFrame
332
+
333
+ ACT = ["pid", "ts"] # an activity has no id; its process and start time name it
334
+ generated = edges.filter(col("relation") == "generated").select(*ACT, "value")
335
+ used = edges.filter(col("relation") == "used").select(*ACT, "value")
336
+
337
+
338
+ def walk(start, backward=True):
339
+ into, out = (generated, used) if backward else (used, generated)
340
+ seen = DataFrame.from_dict({"value": [start]})
341
+ frontier = seen
342
+ while len(frontier):
343
+ steps = frontier.join(into, on="value").select(*ACT).distinct()
344
+ reached = steps.join(out, on=ACT).select("value").distinct()
345
+ frontier = reached.join(seen, on="value", how="anti")
346
+ seen = seen.concat(frontier)
347
+ return seen.join(entities, left_on="value", right_on="entity")
348
+
349
+
350
+ best = entities.filter(col("type") == "best_structure").sort("entity")["entity"].to_list()[0]
351
+ lineage = walk(best)
352
+ model = entities.filter(col("type") == "model_params")["entity"].to_list()[0]
353
+ impact = walk(model, backward=False)
354
+ print(len(lineage), len(impact.filter(col("type") == "best_structure")))
355
+
356
+ .. code-block:: text
357
+
358
+ 28 10
359
+
360
+ A backward hop finds the activities that generated the entities in hand and then the entities those activities used.
361
+ A forward hop goes the other way, and the anti join drops the entities already seen, so the walk ends when a hop finds nothing new.
362
+ On the run above, each best structure comes from 28 entities, from the input chunk and the sequence to the alignments, the reference databases, both model weights and the seed.
363
+ Each set of model weights reaches all 10 best structures, since every prediction runs both models and picks the better one.
364
+
365
+ An activity record has no id field, so the walk names an activity by its ``pid`` and ``ts``.
366
+ That is unique as long as one process does not start two activities in the same microsecond.
367
+ The ``ER`` edges, such as ``revision_of`` and ``contains``, are not part of the walk, since no activity reads or writes through them.
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
- name: dftracer-2.2.0.post8.dev0/examples/dfanalyzer/dfanalyzer-ideas.ipynb
2
+ name: dftracer-2.2.0.post14.dev0/examples/dfanalyzer/dfanalyzer-ideas.ipynb
3
3
  size: 52418033 bytes
4
4
  sha256: e4b283c4e2e7dd17e9f5452b2fb101d1d9f32d4dd13fa56742629faea6700b55
@@ -4,7 +4,9 @@
4
4
 
5
5
  #ifndef DFTRACER_ENUMERATION_H
6
6
  #define DFTRACER_ENUMERATION_H
7
- #include <cpp-logger/logger.h>
7
+ #include <cstdint>
8
+ #include <string>
9
+
8
10
  enum WriterType : uint8_t { CHROME = 0 };
9
11
  enum ProfilerStage : uint8_t {
10
12
  PROFILER_INIT = 0,
@@ -179,17 +181,6 @@ inline void convert(const std::string& s, ProfileInitType& type) {
179
181
  type = ProfileInitType::PROFILER_INIT_NONE;
180
182
  }
181
183
  }
182
- inline void convert(const std::string& s, cpplogger::LoggerType& type) {
183
- if (s == "DEBUG") {
184
- type = cpplogger::LoggerType::CPP_LOGGER_DEBUG;
185
- } else if (s == "INFO") {
186
- type = cpplogger::LoggerType::CPP_LOGGER_INFO;
187
- } else if (s == "WARN") {
188
- type = cpplogger::LoggerType::CPP_LOGGER_WARN;
189
- } else {
190
- type = cpplogger::LoggerType::CPP_LOGGER_ERROR;
191
- }
192
- }
193
184
  inline void convert(const std::string& s, AggregationType& type) {
194
185
  if (s == "FULL") {
195
186
  type = AggregationType::AGGREGATION_TYPE_FULL;
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '2.2.0.post8.dev0'
22
- __version_tuple__ = version_tuple = (2, 2, 0, 'post8', 'dev0')
21
+ __version__ = version = '2.2.0.post14.dev0'
22
+ __version_tuple__ = version_tuple = (2, 2, 0, 'post14', 'dev0')
23
23
 
24
24
  __commit_id__ = commit_id = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dftracer
3
- Version: 2.2.0.post8.dev0
3
+ Version: 2.2.0.post14.dev0
4
4
  Summary: I/O profiler for deep learning python apps. Specifically for dlio_benchmark.
5
5
  Author-email: "Hariharan Devarajan (Hari)" <hariharandev1@llnl.gov>
6
6
  License-Expression: MIT
@@ -364,17 +364,23 @@ test/check_events_present.sh
364
364
  test/check_file.sh
365
365
  test/check_file_at_least.sh
366
366
  test/check_file_not.sh
367
+ test/check_public_headers.cmake
367
368
  test/ignore_result.h
368
369
  test/util.h
370
+ test/c/check.h
369
371
  test/c/test.c
370
372
  test/c/test_c_api_coverage.c
371
373
  test/c/test_entity.c
374
+ test/c/test_extra_io.c
375
+ test/c/test_fd_tracking.c
372
376
  test/c/test_hdf5.c
373
377
  test/c/test_hdf5_mpi.c
374
378
  test/c/test_hdf5_parallel.c
379
+ test/c/test_more_io.c
375
380
  test/c/test_mpi.c
376
381
  test/c/test_posix_fortify.c
377
382
  test/c/test_posix_parity.c
383
+ test/c/test_relative_path.c
378
384
  test/c/testlib.c
379
385
  test/cpp/test.cpp
380
386
  test/cpp/test_cpp_api_coverage.cpp
@@ -353,21 +353,27 @@
353
353
  "src/dftracer/service/telemetry/variorum_power_layout.h",
354
354
  "test/CMakeLists.txt",
355
355
  "test/analysis_ior.py",
356
+ "test/c/check.h",
356
357
  "test/c/test.c",
357
358
  "test/c/test_c_api_coverage.c",
358
359
  "test/c/test_entity.c",
360
+ "test/c/test_extra_io.c",
361
+ "test/c/test_fd_tracking.c",
359
362
  "test/c/test_hdf5.c",
360
363
  "test/c/test_hdf5_mpi.c",
361
364
  "test/c/test_hdf5_parallel.c",
365
+ "test/c/test_more_io.c",
362
366
  "test/c/test_mpi.c",
363
367
  "test/c/test_posix_fortify.c",
364
368
  "test/c/test_posix_parity.c",
369
+ "test/c/test_relative_path.c",
365
370
  "test/c/testlib.c",
366
371
  "test/check_entity_trace.py",
367
372
  "test/check_events_present.sh",
368
373
  "test/check_file.sh",
369
374
  "test/check_file_at_least.sh",
370
375
  "test/check_file_not.sh",
376
+ "test/check_public_headers.cmake",
371
377
  "test/cpp/test.cpp",
372
378
  "test/cpp/test_cpp_api_coverage.cpp",
373
379
  "test/cpp/test_entity.cpp",
@@ -14,9 +14,13 @@ Checks, in order:
14
14
  3. every bundled shared library dlopen()s
15
15
  4. every native executable in dftracer/bin starts (catches ELF corruption
16
16
  from the auditwheel/patchelf rewrite, which segfaults before main)
17
- 5. a real trace is produced: dftracer_service + an LD_PRELOAD'd workload,
17
+ 5. every shipped dftracer/ public header, except the bundled
18
+ dftracer-utils ones under dftracer/utils/, compiles against the wheel's
19
+ own include/ directory alone (catches a header that includes a
20
+ dependency whose headers the wheel does not ship, e.g. cpp-logger)
21
+ 6. a real trace is produced: dftracer_service + an LD_PRELOAD'd workload,
18
22
  and the resulting .pfw trace contains the I/O events
19
- 6. the pydftracer Python API layer, if installed, can log through the wheel
23
+ 7. the pydftracer Python API layer, if installed, can log through the wheel
20
24
  """
21
25
 
22
26
  from __future__ import annotations
@@ -27,6 +31,7 @@ import glob
27
31
  import gzip
28
32
  import json
29
33
  import os
34
+ import shutil
30
35
  import subprocess
31
36
  import sys
32
37
  import tempfile
@@ -214,6 +219,41 @@ def main() -> int:
214
219
  if broken:
215
220
  raise AssertionError("executables crash on startup: " + ", ".join(broken))
216
221
 
222
+ @check("public headers compile standalone")
223
+ def _headers():
224
+ include_dir = pkg_dir / "include"
225
+ # dftracer/utils/ holds the bundled dftracer-utils headers, which are
226
+ # C++20 and owned by that package, so only dftracer's own are checked.
227
+ utils_dir = include_dir / "dftracer" / "utils"
228
+ headers = sorted(
229
+ h
230
+ for h in (include_dir / "dftracer").rglob("*.h")
231
+ if utils_dir not in h.parents
232
+ )
233
+ if not headers:
234
+ raise AssertionError("no dftracer/ headers found in the wheel")
235
+ cxx = shutil.which(os.environ.get("CXX", "c++"))
236
+ if cxx is None:
237
+ raise Skip("no C++ compiler on PATH")
238
+ broken = []
239
+ with tempfile.TemporaryDirectory() as tmp:
240
+ for header in headers:
241
+ rel = header.relative_to(include_dir).as_posix()
242
+ tu = Path(tmp) / "tu.cpp"
243
+ tu.write_text(f"#include <{rel}>\nint main() {{ return 0; }}\n")
244
+ # Only the wheel's include/ on the path: a user compiling
245
+ # against the installed wheel has nothing else.
246
+ proc = run(
247
+ [cxx, "-std=c++17", "-fsyntax-only", f"-I{include_dir}", str(tu)]
248
+ )
249
+ if proc.returncode != 0:
250
+ broken.append(rel)
251
+ print(f"BROKEN : {rel}\n{proc.stdout.strip()}")
252
+ else:
253
+ print(f"compiles : {rel}")
254
+ if broken:
255
+ raise AssertionError("headers do not compile: " + ", ".join(broken))
256
+
217
257
  if args.no_trace:
218
258
  print("\nskipping runtime tracing checks (--no-trace)", flush=True)
219
259
  return report()