dftracer 2.1.1.post48.dev0__tar.gz → 2.2.0.post1.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 (455) hide show
  1. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/CMakeLists.txt +1 -0
  2. {dftracer-2.1.1.post48.dev0/python/dftracer.egg-info → dftracer-2.2.0.post1.dev0}/PKG-INFO +1 -1
  3. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/index.rst +1 -0
  4. dftracer-2.2.0.post1.dev0/docs/provenance.rst +213 -0
  5. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/trace_format.rst +16 -0
  6. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/dfanalyzer-ideas.ipynb +1 -1
  7. dftracer-2.2.0.post1.dev0/include/dftracer/core/common/entity.h +192 -0
  8. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/include/dftracer/core/common/enumeration.h +7 -0
  9. dftracer-2.2.0.post1.dev0/include/dftracer/core/common/typedef.h +22 -0
  10. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/include/dftracer/dftracer.h +84 -0
  11. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/python/dftracer/_version.py +2 -2
  12. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0/python/dftracer.egg-info}/PKG-INFO +1 -1
  13. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/python/dftracer.egg-info/SOURCES.txt +6 -0
  14. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/python/dftracer.egg-info/scm_file_list.json +6 -0
  15. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/buffer/buffer.cpp +10 -0
  16. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/buffer/buffer.h +3 -0
  17. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/dftracer_main.h +19 -0
  18. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/df_logger.h +78 -0
  19. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/dftracer.cpp +114 -1
  20. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/serialization/json_line.cpp +49 -1
  21. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/serialization/json_line.h +7 -0
  22. dftracer-2.2.0.post1.dev0/src/dftracer/python/dftracer.cpp +110 -0
  23. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/python/dftracer.cpp.in +69 -1
  24. dftracer-2.2.0.post1.dev0/src/dftracer/python/dftracer_dbg.cpp +109 -0
  25. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/CMakeLists.txt +39 -2
  26. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/c/test_c_api_coverage.c +34 -1
  27. dftracer-2.2.0.post1.dev0/test/c/test_entity.c +38 -0
  28. dftracer-2.2.0.post1.dev0/test/check_entity_trace.py +139 -0
  29. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/cpp/test_cpp_api_coverage.cpp +38 -0
  30. dftracer-2.2.0.post1.dev0/test/cpp/test_entity.cpp +32 -0
  31. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/CMakeLists.txt +8 -0
  32. dftracer-2.2.0.post1.dev0/test/unit/test_entity.cpp +86 -0
  33. dftracer-2.1.1.post48.dev0/include/dftracer/core/common/typedef.h +0 -13
  34. dftracer-2.1.1.post48.dev0/src/dftracer/python/dftracer.cpp +0 -58
  35. dftracer-2.1.1.post48.dev0/src/dftracer/python/dftracer_dbg.cpp +0 -57
  36. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.actrc +0 -0
  37. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.clang-format +0 -0
  38. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.coveragerc +0 -0
  39. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.devcontainer/README.md +0 -0
  40. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.devcontainer/devcontainer-dockerfile.json +0 -0
  41. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.devcontainer/devcontainer.json +0 -0
  42. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.devcontainer/docker-compose.yml +0 -0
  43. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/benchmark.yml +0 -0
  44. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/ci.yml +0 -0
  45. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/dlio-benchmark.yml +0 -0
  46. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/docker-publish.yml +0 -0
  47. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/format-check.yml +0 -0
  48. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/hdf5-mpi-trace-ci.yml +0 -0
  49. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/prerelease.yml +0 -0
  50. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/pull_request_event.json +0 -0
  51. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/python-publish.yml +0 -0
  52. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/valgrind-ci.yml +0 -0
  53. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.github/workflows/wheels.yml +0 -0
  54. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitignore +0 -0
  55. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/benchmark.sh +0 -0
  56. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/build-test.sh +0 -0
  57. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/distribute.sh +0 -0
  58. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/dlio-benchmark.sh +0 -0
  59. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/docs.sh +0 -0
  60. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/format-check.sh +0 -0
  61. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/hdf5-mpi-trace.sh +0 -0
  62. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/run-in-podman.sh +0 -0
  63. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/toolchain.sh +0 -0
  64. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/valgrind-gates.sh +0 -0
  65. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/flux-ci/wheels.sh +0 -0
  66. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/build.sh +0 -0
  67. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/build_dft.sh +0 -0
  68. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/common.yml +0 -0
  69. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/compare_summary.py +0 -0
  70. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/create_log_dir.sh +0 -0
  71. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/dlio_benchmark_test.sh +0 -0
  72. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/dlio_setup.sh +0 -0
  73. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/generate_dlio_job.py +0 -0
  74. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/generate_dlio_jobs.sh +0 -0
  75. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/generate_summary.sh +0 -0
  76. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/hip_corona_requirements.txt +0 -0
  77. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/hip_tuo_requirements.txt +0 -0
  78. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/post.sh +0 -0
  79. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/pre.sh +0 -0
  80. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/requirements.txt +0 -0
  81. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/run_dft_hip_test.sh +0 -0
  82. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/run_dlio_training_with_service.sh +0 -0
  83. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab/scripts/variables.sh +0 -0
  84. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitlab-ci.yml +0 -0
  85. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.gitpod.yml +0 -0
  86. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.migration/REVERT.md +0 -0
  87. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.migration/dftracer.md +0 -0
  88. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.readthedocs.yaml +0 -0
  89. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.vscode/launch.json +0 -0
  90. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/.vscode/settings.json +0 -0
  91. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/CITATION.cff +0 -0
  92. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/COVERAGE_QUICKREF.md +0 -0
  93. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/DOCKER_SETUP_SUMMARY.md +0 -0
  94. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/Dockerfile +0 -0
  95. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/LICENSE +0 -0
  96. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/MANIFEST.in +0 -0
  97. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/NOTICE +0 -0
  98. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/PACKAGE_VERSION +0 -0
  99. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/README.md +0 -0
  100. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/VERSION +0 -0
  101. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/autobuild.sh +0 -0
  102. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/configure_files/dftracer-config-version.cmake.in +0 -0
  103. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/configure_files/dftracer-config.cmake.build.in +0 -0
  104. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/configure_files/dftracer-config.cmake.in +0 -0
  105. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/configure_files/dftracer-config.cmake.install.in +0 -0
  106. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/configure_files/dftracer_config.hpp.in +0 -0
  107. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/configure_files/dftracer_config_dbg.hpp.in +0 -0
  108. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/configure_files/dftracer_module.lua.in +0 -0
  109. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/modules/DFTracerVariorum.cmake +0 -0
  110. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/modules/FindCUPTI.cmake +0 -0
  111. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/modules/FindHWLOC.cmake +0 -0
  112. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/modules/FindPAPI.cmake +0 -0
  113. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/modules/FindVariorum.cmake +0 -0
  114. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/modules/SetupCompiler.cmake +0 -0
  115. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/modules/dftracer-utils.cmake +0 -0
  116. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/patches/brahma_version_override.cmake +0 -0
  117. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/probes/papi_probe.c +0 -0
  118. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/tests/has_fd.cpp +0 -0
  119. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/tests/has_filesystem.cpp +0 -0
  120. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/cmake/tests/mpi_detect.c +0 -0
  121. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/compose-dev.yaml +0 -0
  122. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/dependency/CMakeLists.txt +0 -0
  123. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/dependency/source/.gitignore +0 -0
  124. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/dependency/source/GOTCHA-1.0.10.tar.gz +0 -0
  125. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/dependency/source/brahma-1.1.0.tar.gz +0 -0
  126. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/dependency/source/cpp-logger-0.0.8.tar.gz +0 -0
  127. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/dependency/source/libuv-1.52.1.tar.gz +0 -0
  128. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/dependency/source/manifest.txt +0 -0
  129. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/dependency/source/yaml-cpp-0.6.3.tar.gz +0 -0
  130. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docker/dl.Dockerfile +0 -0
  131. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docker/ior.Dockerfile +0 -0
  132. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/.clang-format +0 -0
  133. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/.gitignore +0 -0
  134. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/Makefile +0 -0
  135. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/_static/theme_overrides.css +0 -0
  136. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/ai_logging.rst +0 -0
  137. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/api.rst +0 -0
  138. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/bash_utilities.rst +0 -0
  139. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/build.rst +0 -0
  140. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/building_applications.rst +0 -0
  141. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/conf.py +0 -0
  142. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/coverage.md +0 -0
  143. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/debugging.rst +0 -0
  144. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/definitions.rst +0 -0
  145. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/developer-guide.rst +0 -0
  146. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/dfanalyzer_alcf_polaris.rst +0 -0
  147. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/dfanalyzer_build.rst +0 -0
  148. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/dfanalyzer_conf.rst +0 -0
  149. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/dfanalyzer_custom_columns.rst +0 -0
  150. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/dfanalyzer_distributed.rst +0 -0
  151. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/dfanalyzer_overlap_analysis.rst +0 -0
  152. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/dftracer_service.rst +0 -0
  153. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/docker.rst +0 -0
  154. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/examples.rst +0 -0
  155. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/gpu_tracing.rst +0 -0
  156. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dfanalyzer/overlap-analysis/overlap-analysis-summary.png +0 -0
  157. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dfanalyzer/polaris/dask-scheduler-monitoring.png +0 -0
  158. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dfanalyzer/polaris/run-scheduler.png +0 -0
  159. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dfanalyzer/polaris/vscode-add-port-button.png +0 -0
  160. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dfanalyzer/polaris/vscode-added-port.png +0 -0
  161. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dfanalyzer/polaris/vscode-ports-tab.png +0 -0
  162. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dftracer-logo-light.png +0 -0
  163. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dftracer-logo.png +0 -0
  164. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/dlio-profiler-logo.png +0 -0
  165. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/perfetto/perfetto-flags-confirm-1.png +0 -0
  166. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/perfetto/perfetto-flags-confirm-2.png +0 -0
  167. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/perfetto/perfetto-interface.png +0 -0
  168. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/perfetto/perfetto-sql-result-example-pread.png +0 -0
  169. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/perfetto/perfetto-sql-textbox-2.png +0 -0
  170. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/perfetto/perfetto-sql-textbox.png +0 -0
  171. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/perfetto/perfetto-ui-confirm.png +0 -0
  172. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/perfetto/perfetto-viz.png +0 -0
  173. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/tracing/1000genome.png +0 -0
  174. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/tracing/Montage_dur.png +0 -0
  175. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/tracing/Montage_graph.png +0 -0
  176. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/tracing/Montage_summary.png +0 -0
  177. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/images/tracing/trace.png +0 -0
  178. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/limitations.rst +0 -0
  179. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/migration.rst +0 -0
  180. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/models.rst +0 -0
  181. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/omnistat.rst +0 -0
  182. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/overview.rst +0 -0
  183. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/pegasus_genome.rst +0 -0
  184. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/pegasus_montage.rst +0 -0
  185. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/perfetto.rst +0 -0
  186. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/requirements.txt +0 -0
  187. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/style-guides.rst +0 -0
  188. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/testing.rst +0 -0
  189. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/utilities.rst +0 -0
  190. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/docs/variorum.rst +0 -0
  191. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/dfanalyzer-distributed.ipynb +0 -0
  192. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/dfanalyzer.ipynb +0 -0
  193. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/images/bw_timeline.png +0 -0
  194. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/images/dask-dashboard-load.png +0 -0
  195. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/images/xfer_timeline.png +0 -0
  196. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/requirements.txt +0 -0
  197. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537780-preload.pfw.gz +0 -0
  198. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537781-preload.pfw.gz +0 -0
  199. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537782-preload.pfw.gz +0 -0
  200. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537783-preload.pfw.gz +0 -0
  201. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537784-preload.pfw.gz +0 -0
  202. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537785-preload.pfw.gz +0 -0
  203. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537786-preload.pfw.gz +0 -0
  204. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537787-preload.pfw.gz +0 -0
  205. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537788-preload.pfw.gz +0 -0
  206. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537789-preload.pfw.gz +0 -0
  207. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537790-preload.pfw.gz +0 -0
  208. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537791-preload.pfw.gz +0 -0
  209. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537793-preload.pfw.gz +0 -0
  210. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537796-preload.pfw.gz +0 -0
  211. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537798-preload.pfw.gz +0 -0
  212. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537799-preload.pfw.gz +0 -0
  213. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537800-preload.pfw.gz +0 -0
  214. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537801-preload.pfw.gz +0 -0
  215. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537802-preload.pfw.gz +0 -0
  216. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537803-preload.pfw.gz +0 -0
  217. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537804-preload.pfw.gz +0 -0
  218. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537805-preload.pfw.gz +0 -0
  219. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537806-preload.pfw.gz +0 -0
  220. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537807-preload.pfw.gz +0 -0
  221. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537808-preload.pfw.gz +0 -0
  222. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537809-preload.pfw.gz +0 -0
  223. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537810-preload.pfw.gz +0 -0
  224. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537811-preload.pfw.gz +0 -0
  225. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537812-preload.pfw.gz +0 -0
  226. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537813-preload.pfw.gz +0 -0
  227. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537814-preload.pfw.gz +0 -0
  228. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537815-preload.pfw.gz +0 -0
  229. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537816-preload.pfw.gz +0 -0
  230. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537817-preload.pfw.gz +0 -0
  231. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537818-preload.pfw.gz +0 -0
  232. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537819-preload.pfw.gz +0 -0
  233. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537820-preload.pfw.gz +0 -0
  234. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537821-preload.pfw.gz +0 -0
  235. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537822-preload.pfw.gz +0 -0
  236. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537823-preload.pfw.gz +0 -0
  237. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537824-preload.pfw.gz +0 -0
  238. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537825-preload.pfw.gz +0 -0
  239. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537826-preload.pfw.gz +0 -0
  240. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537827-preload.pfw.gz +0 -0
  241. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537828-preload.pfw.gz +0 -0
  242. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537829-preload.pfw.gz +0 -0
  243. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537830-preload.pfw.gz +0 -0
  244. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace-distributed/cm1_1_48_20240926/cm1-DEFAULT-3537831-preload.pfw.gz +0 -0
  245. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/dfanalyzer/test-trace.pfw.gz +0 -0
  246. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/graph_visualization/README.md +0 -0
  247. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/graph_visualization/data.png +0 -0
  248. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/graph_visualization/example.ipynb +0 -0
  249. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/graph_visualization/requirement.txt +0 -0
  250. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/graph_visualization/test_data1.pfw +0 -0
  251. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/graph_visualization/vis.png +0 -0
  252. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/papi_standalone/Makefile +0 -0
  253. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/papi_standalone/README.md +0 -0
  254. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/papi_standalone/papi_mpi.cpp +0 -0
  255. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/examples/papi_standalone/papi_single_node.cpp +0 -0
  256. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/include/dftracer/core/common/constants.h +0 -0
  257. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/include/dftracer/core/common/cpp_typedefs.h +0 -0
  258. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/infrastructure/docker/Dockerfile.dev +0 -0
  259. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/infrastructure/docker/Dockerfile.prod +0 -0
  260. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/infrastructure/docker/QUICK_REFERENCE.md +0 -0
  261. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/infrastructure/docker/README.md +0 -0
  262. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/infrastructure/docker/build-multiplatform.sh +0 -0
  263. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/pyproject.toml +0 -0
  264. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/python/dftracer/__init__.py +0 -0
  265. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/python/dftracer.egg-info/dependency_links.txt +0 -0
  266. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/python/dftracer.egg-info/not-zip-safe +0 -0
  267. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/python/dftracer.egg-info/requires.txt +0 -0
  268. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/python/dftracer.egg-info/top_level.txt +0 -0
  269. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/results/cases.csv +0 -0
  270. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/results/overhead.csv +0 -0
  271. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/README_COVERAGE.md +0 -0
  272. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/check_coverage.sh +0 -0
  273. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/coverage_after_autobuild.sh +0 -0
  274. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_anonymize +0 -0
  275. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_compact +0 -0
  276. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_compact_by_pid +0 -0
  277. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_create_index +0 -0
  278. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_event_count +0 -0
  279. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_merge +0 -0
  280. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_pgzip +0 -0
  281. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_sanitize +0 -0
  282. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_split +0 -0
  283. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/dftracer_validate +0 -0
  284. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/formatting/autoformat.sh +0 -0
  285. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/formatting/check-formatting.sh +0 -0
  286. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/generate_coverage.sh +0 -0
  287. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/generate_coverage_report.sh +0 -0
  288. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/git_sparse_clone_interactive +0 -0
  289. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/git_sparse_push_interactive +0 -0
  290. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/repo/README.md +0 -0
  291. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/repo/update_version.sh +0 -0
  292. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/script/valgrind_gate.py +0 -0
  293. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/check_papi_trace.py +0 -0
  294. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/check_variorum_trace.py +0 -0
  295. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/dlio_non_valgrind_runner.py +0 -0
  296. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/requirements-valgrind-runners.txt +0 -0
  297. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/run_hdf5_mpi_ci_local.sh +0 -0
  298. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/valgrind_ctest_python_runner.py +0 -0
  299. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/valgrind_ctest_runner.py +0 -0
  300. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/valgrind_dlio_runner.py +0 -0
  301. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/wheel/README.md +0 -0
  302. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/wheel/build_deps.sh +0 -0
  303. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/wheel/build_wheels.sh +0 -0
  304. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/wheel/bundle_wheel.py +0 -0
  305. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/wheel/fetch_deps.sh +0 -0
  306. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/wheel/manifest.py +0 -0
  307. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/wheel/repair_wheel.sh +0 -0
  308. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/scripts/wheel/test_wheel.py +0 -0
  309. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/setup.cfg +0 -0
  310. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/setup.py +0 -0
  311. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/aggregator/aggregator.cpp +0 -0
  312. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/aggregator/aggregator.h +0 -0
  313. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/aggregator/rules.cpp +0 -0
  314. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/aggregator/rules.h +0 -0
  315. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/hdf5.cpp +0 -0
  316. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/hdf5.h +0 -0
  317. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/mpi.cpp +0 -0
  318. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/mpi.h +0 -0
  319. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/mpiio.cpp +0 -0
  320. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/mpiio.h +0 -0
  321. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/posix.cpp +0 -0
  322. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/posix.h +0 -0
  323. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/stdio.cpp +0 -0
  324. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/brahma/stdio.h +0 -0
  325. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/datastructure.cpp +0 -0
  326. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/datastructure.h +0 -0
  327. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/dftracer_main.cpp +0 -0
  328. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/error.h +0 -0
  329. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/event_loop.cpp +0 -0
  330. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/event_loop.h +0 -0
  331. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/logging.h +0 -0
  332. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/macros.h +0 -0
  333. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/common/singleton.h +0 -0
  334. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/compression/zlib_compression.cpp +0 -0
  335. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/compression/zlib_compression.h +0 -0
  336. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/datastructure.cpp +0 -0
  337. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/df_logger.cpp +0 -0
  338. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/dftracer_preload.cpp +0 -0
  339. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/dftracer_preload.h +0 -0
  340. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/finstrument/functions.cpp +0 -0
  341. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/finstrument/functions.h +0 -0
  342. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/function/cuda/intercept.cpp +0 -0
  343. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/function/cuda/intercept.h +0 -0
  344. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/function/generic_function.h +0 -0
  345. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/function/hip/intercept.cpp +0 -0
  346. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/function/hip/intercept.h +0 -0
  347. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/function/papi/counters.cpp +0 -0
  348. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/function/papi/counters.h +0 -0
  349. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/configuration_manager.cpp +0 -0
  350. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/configuration_manager.h +0 -0
  351. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/md5.cpp +0 -0
  352. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/md5.h +0 -0
  353. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/posix_bypass.cpp +0 -0
  354. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/posix_bypass.h +0 -0
  355. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/stdio_bypass.cpp +0 -0
  356. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/stdio_bypass.h +0 -0
  357. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/utils.cpp +0 -0
  358. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/utils/utils.h +0 -0
  359. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/writer/stdio_writer.cpp +0 -0
  360. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/core/writer/stdio_writer.h +0 -0
  361. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/common/datastructure.h +0 -0
  362. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/service.cpp +0 -0
  363. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/service.h +0 -0
  364. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/cpu_collector.cpp +0 -0
  365. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/cpu_collector.h +0 -0
  366. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/io_collector.cpp +0 -0
  367. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/io_collector.h +0 -0
  368. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/memory_collector.cpp +0 -0
  369. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/memory_collector.h +0 -0
  370. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/network_collector.cpp +0 -0
  371. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/network_collector.h +0 -0
  372. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/omnistat_collector.cpp +0 -0
  373. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/omnistat_collector.h +0 -0
  374. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/telemetry_factory.cpp +0 -0
  375. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/telemetry_factory.h +0 -0
  376. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/telemetry_interface.h +0 -0
  377. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/variorum_collector.cpp +0 -0
  378. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/variorum_collector.h +0 -0
  379. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/src/dftracer/service/telemetry/variorum_power_layout.h +0 -0
  380. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/analysis_ior.py +0 -0
  381. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/c/test.c +0 -0
  382. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/c/test_hdf5.c +0 -0
  383. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/c/test_hdf5_mpi.c +0 -0
  384. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/c/test_hdf5_parallel.c +0 -0
  385. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/c/test_mpi.c +0 -0
  386. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/c/testlib.c +0 -0
  387. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/check_file.sh +0 -0
  388. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/check_file_at_least.sh +0 -0
  389. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/check_file_not.sh +0 -0
  390. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/cpp/test.cpp +0 -0
  391. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/cpp/test_hdf5.cpp +0 -0
  392. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/cpp/test_hdf5_mpi.cpp +0 -0
  393. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/cpp/test_hdf5_parallel.cpp +0 -0
  394. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/cpp/test_mpi.cpp +0 -0
  395. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/cuda/check_cuda_trace.py +0 -0
  396. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/cuda/test_cuda.cpp +0 -0
  397. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/dfanalyzer/CMakeLists.txt +0 -0
  398. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/dlio_benchmark/CMakeLists.txt +0 -0
  399. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/ignore_result.h +0 -0
  400. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/CMakeLists.txt +0 -0
  401. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/test_external.cpp +0 -0
  402. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_compatible/CMakeLists.txt +0 -0
  403. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_compatible/test_version.cpp +0 -0
  404. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_exact/CMakeLists.txt +0 -0
  405. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_exact/test_version.cpp +0 -0
  406. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_higher_minor/CMakeLists.txt +0 -0
  407. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_higher_minor/test_version.cpp +0 -0
  408. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_incompatible_major/CMakeLists.txt +0 -0
  409. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_incompatible_major/test_version.cpp +0 -0
  410. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_minimum/CMakeLists.txt +0 -0
  411. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_minimum/test_version.cpp +0 -0
  412. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_old_major/CMakeLists.txt +0 -0
  413. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_old_major/test_version.cpp +0 -0
  414. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_wrong_exact/CMakeLists.txt +0 -0
  415. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/package_find/version_wrong_exact/test_version.cpp +0 -0
  416. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/CMakeLists.txt +0 -0
  417. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/analysis/darshan_analyzer_main.ipynb +0 -0
  418. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/analysis/otf2_distributed_reader.ipynb +0 -0
  419. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/analysis/recorder_distributed_reader.ipynb +0 -0
  420. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/load_darshan.py +0 -0
  421. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/load_recorder.py +0 -0
  422. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/load_scorep.py +0 -0
  423. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/overhead.cpp +0 -0
  424. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/overhead.csv +0 -0
  425. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/paper/overhead.py +0 -0
  426. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/py/ai_logging.py +0 -0
  427. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/py/cuda_test.py +0 -0
  428. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/py/dynamo_test.py +0 -0
  429. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/py/hip_test.py +0 -0
  430. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/py/python_test.py +0 -0
  431. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/py/requirements.txt +0 -0
  432. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/py/test.py +0 -0
  433. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/py/test_python_api_coverage.py +0 -0
  434. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/check.h +0 -0
  435. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/file.dat +0 -0
  436. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/mmap +0 -0
  437. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/mmap.cpp +0 -0
  438. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_aggregated_key_hash.cpp +0 -0
  439. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_aggregated_value.cpp +0 -0
  440. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_aggregator.cpp +0 -0
  441. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_configuration.cpp +0 -0
  442. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_omnistat.cpp +0 -0
  443. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_serialization.cpp +0 -0
  444. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_service.cpp +0 -0
  445. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_trace_event_type.cpp +0 -0
  446. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/unit/test_variorum.cpp +0 -0
  447. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/util.h +0 -0
  448. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/valgrind/dlio_known_external.supp +0 -0
  449. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/valgrind/test_cpp_known_syscall.supp +0 -0
  450. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/yaml/benchmark-rules.yaml +0 -0
  451. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/yaml/conf.yaml +0 -0
  452. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/yaml/rules.yaml +0 -0
  453. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/test/yaml/selective-aggregation-rules.yaml +0 -0
  454. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/tools/CMakeLists.txt +0 -0
  455. {dftracer-2.1.1.post48.dev0 → dftracer-2.2.0.post1.dev0}/tools/generate_interfaces_from_brahma.py +0 -0
@@ -1040,6 +1040,7 @@ else()
1040
1040
  ${CMAKE_CURRENT_SOURCE_DIR}/include/dftracer/dftracer.h
1041
1041
  ${CMAKE_CURRENT_SOURCE_DIR}/include/dftracer/core/common/constants.h
1042
1042
  ${CMAKE_CURRENT_SOURCE_DIR}/include/dftracer/core/common/typedef.h
1043
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/dftracer/core/common/entity.h
1043
1044
  ${CMAKE_CURRENT_SOURCE_DIR}/include/dftracer/core/common/cpp_typedefs.h
1044
1045
  ${CMAKE_CURRENT_SOURCE_DIR}/include/dftracer/core/common/enumeration.h)
1045
1046
  set(DFTRACER_CORE_PRIVATE_INCLUDE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dftracer
3
- Version: 2.1.1.post48.dev0
3
+ Version: 2.2.0.post1.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
@@ -26,6 +26,7 @@ DFTracer: is a library for profiling I/O calls and application functions.
26
26
  api
27
27
  models
28
28
  trace_format
29
+ provenance
29
30
  gpu_tracing
30
31
  ai_logging
31
32
 
@@ -0,0 +1,213 @@
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 -- a C++ function, a Python region, 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
+ A reader joins events to entities by id; ids from different processes and
211
+ languages join without coordination. ``dftracer-utils`` builds the graph
212
+ (``trace::provenance::extract_provenance_graph``, ``GET /api/prov/graph`` and
213
+ the *Provenance* tab of ``dftracer_server``).
@@ -226,6 +226,22 @@ An example of such event is below.
226
226
 
227
227
  Here, the "name" "PR" represents a metadata event for process and the args contain the metadata name and its value.
228
228
 
229
+ .. _`Entity Records`:
230
+
231
+ Entity records (``EH``, ``ET``, ``ER``) describe the entities an application
232
+ works with, their types, and relations between entities; events relate to
233
+ entities through a ``relations`` object in their ``args`` (``used`` /
234
+ ``generated`` / ``invalidated`` / ``updated`` arrays of entity ids). Unlike hash and custom metadata, these
235
+ records use named fields rather than ``name``/``value``:
236
+
237
+ .. code-block:: bash
238
+
239
+ {"name":"EH","cat":"dftracer","type":1,"pid":1,"tid":1,"ph":4,"args":{"hhash":"...","id":"8f0de68c04eea0bf","type":"protein_structure","store":3,"uri":"/p/out/a.pdb"}}
240
+ {"name":"ET","cat":"dftracer","type":1,"pid":1,"tid":1,"ph":4,"args":{"hhash":"...","type":"protein_structure","role":2,"description":"Predicted 3D structure"}}
241
+ {"name":"ER","cat":"dftracer","type":1,"pid":1,"tid":1,"ph":4,"args":{"hhash":"...","relation":18,"subject":"6e6d650dd131e83b","object":"8f0de68c04eea0bf"}}
242
+
243
+ See :doc:`provenance` for the API, the enum values and what each record means.
244
+
229
245
  ----------------------------------------
230
246
  Lifecycle Events: "start" and "end"
231
247
  ----------------------------------------
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
- name: dftracer-2.1.1.post48.dev0/examples/dfanalyzer/dfanalyzer-ideas.ipynb
2
+ name: dftracer-2.2.0.post1.dev0/examples/dfanalyzer/dfanalyzer-ideas.ipynb
3
3
  size: 52418033 bytes
4
4
  sha256: e4b283c4e2e7dd17e9f5452b2fb101d1d9f32d4dd13fa56742629faea6700b55
@@ -0,0 +1,192 @@
1
+ #ifndef DFTRACER_CORE_COMMON_ENTITY_H
2
+ #define DFTRACER_CORE_COMMON_ENTITY_H
3
+ /*
4
+ * Entities and relations -- shared definitions for the C, C++ and Python APIs.
5
+ *
6
+ * An entity is a typed instance of something an application works with (a
7
+ * file, a dataset shard, a checkpoint, a protein structure, a GPU buffer).
8
+ *
9
+ * identity EntityID 64-bit FNV-1a of (type, key); serialized as
10
+ * exactly 16 lowercase hex characters.
11
+ * type fixed-length string (DFT_ENTITY_TYPE_LEN), application-defined
12
+ * store EntityStore enum -- where the instance lives
13
+ * uri fixed-length string (DFT_ENTITY_URI_LEN), unique within the app
14
+ * role EntityRole enum -- per entity TYPE (input/output/...)
15
+ * description fixed-length string (DFT_ENTITY_DESC_LEN), per entity TYPE
16
+ * relation EntityRelation enum -- event->entity and entity->entity
17
+ *
18
+ * Enums are serialized as integers. Strings are copied into fixed buffers,
19
+ * truncated, and restricted to a JSON-safe character set (dft_entity_sanitize)
20
+ * so records never need escaping.
21
+ *
22
+ * Trace records (metadata, like the FH/SH file/string hash records):
23
+ * EH args: {"id":"<16-hex>","type":"<type>","store":<int>,"uri":"<uri>"}
24
+ * ET args: {"type":"<type>","role":<int>,"description":"<text>"}
25
+ * ER args: {"relation":<int>,"subject":"<16-hex>","object":"<16-hex>"}
26
+ * Event->entity relations are event args keyed by dft_relation_name(rel)
27
+ * whose value is a JSON array of 16-hex ids.
28
+ */
29
+ #include <dftracer/core/common/typedef.h>
30
+ #include <stddef.h>
31
+ #include <stdint.h>
32
+
33
+ #ifdef __cplusplus
34
+ extern "C" {
35
+ #endif
36
+
37
+ /* Fixed string capacities, including the terminating NUL. */
38
+ #define DFT_ENTITY_TYPE_LEN 32
39
+ #define DFT_ENTITY_URI_LEN 256
40
+ #define DFT_ENTITY_DESC_LEN 256
41
+ /* 16 hex digits + NUL. */
42
+ #define DFT_ENTITY_HEX_LEN 17
43
+
44
+ #define DFT_ENTITY_NONE ((EntityID)0)
45
+
46
+ /* Where an entity instance lives. */
47
+ typedef enum {
48
+ DFT_STORE_MEMORY = 0,
49
+ DFT_STORE_GPU_MEMORY = 1,
50
+ DFT_STORE_LOCAL_DISK = 2,
51
+ DFT_STORE_PARALLEL_FS = 3,
52
+ DFT_STORE_BURST_BUFFER = 4,
53
+ DFT_STORE_OBJECT_STORE = 5,
54
+ DFT_STORE_DATABASE = 6,
55
+ DFT_STORE_NETWORK = 7,
56
+ DFT_STORE_OTHER = 8
57
+ } EntityStore;
58
+
59
+ /* Role of an entity TYPE in the workflow. */
60
+ typedef enum {
61
+ DFT_ROLE_UNKNOWN = 0,
62
+ DFT_ROLE_INPUT = 1, /* enters the workflow from outside */
63
+ DFT_ROLE_OUTPUT = 2, /* a deliverable / scientific artifact */
64
+ DFT_ROLE_INTERMEDIATE = 3, /* produced and consumed inside the workflow */
65
+ DFT_ROLE_PARAMETER = 4, /* configuration, seeds, model settings */
66
+ DFT_ROLE_REFERENCE = 5 /* versioned reference data (databases, weights) */
67
+ } EntityRole;
68
+
69
+ /* Relations. Values < 16 relate an EVENT to an entity (event args); values
70
+ * >= 16 relate two ENTITIES (ER records). */
71
+ typedef enum {
72
+ /* event -> entity (W3C PROV style) */
73
+ DFT_REL_USED = 0, /* the event consumed the entity (cause) */
74
+ DFT_REL_GENERATED = 1, /* the event produced the entity (effect) */
75
+ DFT_REL_INVALIDATED = 2, /* the event ended the entity (delete, consume) */
76
+ DFT_REL_UPDATED = 3, /* the event modified the entity in place */
77
+ /* entity -> entity (class-style) */
78
+ DFT_REL_DERIVED_FROM = 16, /* subject was derived from object */
79
+ DFT_REL_REVISION_OF = 17, /* subject is a newer version of object */
80
+ DFT_REL_CONTAINS = 18, /* subject has object as a member (has-a) */
81
+ DFT_REL_PART_OF = 19, /* subject is part of object (is-in) */
82
+ DFT_REL_SPECIALIZATION_OF = 20, /* subject is a kind of object (inherits) */
83
+ DFT_REL_ALTERNATE_OF = 21, /* same thing, another representation */
84
+ DFT_REL_DEPENDS_ON = 22 /* subject requires object */
85
+ } EntityRelation;
86
+
87
+ static inline int dft_relation_is_event(EntityRelation r) { return r < 16; }
88
+
89
+ /* Event arg holding an event's relations:
90
+ * "relations": {"used":["<16-hex>",...], "generated":[...], ...}
91
+ * One nested object, so relation names never collide with other event
92
+ * args (the lifecycle "end" event has its own "used" object). */
93
+ #define DFT_RELATIONS_ARG "relations"
94
+
95
+ /* Stable relation names (part of the trace format). */
96
+ static inline const char* dft_relation_name(EntityRelation r) {
97
+ switch (r) {
98
+ case DFT_REL_USED:
99
+ return "used";
100
+ case DFT_REL_GENERATED:
101
+ return "generated";
102
+ case DFT_REL_INVALIDATED:
103
+ return "invalidated";
104
+ case DFT_REL_UPDATED:
105
+ return "updated";
106
+ case DFT_REL_DERIVED_FROM:
107
+ return "derived_from";
108
+ case DFT_REL_REVISION_OF:
109
+ return "revision_of";
110
+ case DFT_REL_CONTAINS:
111
+ return "contains";
112
+ case DFT_REL_PART_OF:
113
+ return "part_of";
114
+ case DFT_REL_SPECIALIZATION_OF:
115
+ return "specialization_of";
116
+ case DFT_REL_ALTERNATE_OF:
117
+ return "alternate_of";
118
+ case DFT_REL_DEPENDS_ON:
119
+ return "depends_on";
120
+ }
121
+ return "related";
122
+ }
123
+
124
+ /* JSON-safe character set; everything else (quotes, backslash, control
125
+ * characters, '|', ...) becomes '_', so fields never need escaping. */
126
+ static inline int dft_entity_safe_char(char c) {
127
+ if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ||
128
+ (c >= '0' && c <= '9'))
129
+ return 1;
130
+ switch (c) {
131
+ case '_':
132
+ case '-':
133
+ case '.':
134
+ case ':':
135
+ case '/':
136
+ case '@':
137
+ case '+':
138
+ case '=':
139
+ case ',':
140
+ case '~':
141
+ case ' ':
142
+ return 1;
143
+ default:
144
+ return 0;
145
+ }
146
+ }
147
+
148
+ /* Copy src into dst[cap] (truncating) with the safe character set. */
149
+ static inline void dft_entity_sanitize(char* dst, size_t cap, const char* src) {
150
+ size_t i = 0;
151
+ if (cap == 0) return;
152
+ if (src != NULL)
153
+ for (; src[i] != '\0' && i + 1 < cap; ++i)
154
+ dst[i] = dft_entity_safe_char(src[i]) ? src[i] : '_';
155
+ dst[i] = '\0';
156
+ }
157
+
158
+ /* 64-bit FNV-1a of type, a 0x1f separator, and key. Same value in every
159
+ * language and process; 0 is reserved for DFT_ENTITY_NONE. */
160
+ static inline EntityID dft_entity_hash(const char* type, const char* key) {
161
+ uint64_t h = 1469598103934665603ULL;
162
+ const unsigned char* p;
163
+ for (p = (const unsigned char*)(type ? type : ""); *p; ++p) {
164
+ h ^= *p;
165
+ h *= 1099511628211ULL;
166
+ }
167
+ h ^= 0x1fu;
168
+ h *= 1099511628211ULL;
169
+ for (p = (const unsigned char*)(key ? key : ""); *p; ++p) {
170
+ h ^= *p;
171
+ h *= 1099511628211ULL;
172
+ }
173
+ return h == DFT_ENTITY_NONE ? 1 : h;
174
+ }
175
+
176
+ /* Render an id as exactly 16 lowercase hex digits into out[DFT_ENTITY_HEX_LEN].
177
+ */
178
+ static inline void dft_entity_hex(EntityID id, char* out) {
179
+ static const char digits[] = "0123456789abcdef";
180
+ int i;
181
+ for (i = 15; i >= 0; --i) {
182
+ out[i] = digits[id & 0xfu];
183
+ id >>= 4;
184
+ }
185
+ out[16] = '\0';
186
+ }
187
+
188
+ #ifdef __cplusplus
189
+ }
190
+ #endif
191
+
192
+ #endif /* DFTRACER_CORE_COMMON_ENTITY_H */
@@ -259,5 +259,12 @@ inline double time_metric_units_per_second(const TimeMetricType& type) {
259
259
  #define METADATA_NAME_FILE_HASH "FH"
260
260
  #define METADATA_NAME_HOSTNAME_HASH "HH"
261
261
  #define METADATA_NAME_STRING_HASH "SH"
262
+ // Entities (see dftracer/core/common/entity.h):
263
+ // EH args: {"id":"<16-hex>","type":"<type>","store":<int>,"uri":"<uri>"}
264
+ // ET args: {"type":"<type>","role":<int>,"description":"<text>"}
265
+ // ER args: {"relation":<int>,"subject":"<16-hex>","object":"<16-hex>"}
266
+ #define METADATA_NAME_ENTITY_HASH "EH"
267
+ #define METADATA_NAME_ENTITY_TYPE "ET"
268
+ #define METADATA_NAME_ENTITY_RELATION "ER"
262
269
  #define CUSTOM_METADATA "CM"
263
270
  #endif // DFTRACER_ENUMERATION_H
@@ -0,0 +1,22 @@
1
+ //
2
+ // Created by haridev on 10/7/23.
3
+ //
4
+
5
+ #ifndef DFTRACER_TYPEDEF_H
6
+ #define DFTRACER_TYPEDEF_H
7
+ #include <stdint.h>
8
+ typedef unsigned long long int TimeResolution;
9
+ typedef unsigned long int ThreadID;
10
+ typedef int ProcessID;
11
+ typedef char* EventNameType;
12
+ typedef const char* ConstEventNameType;
13
+ typedef char* HashType;
14
+ // Entities (see core/common/entity.h). Ids are 64-bit and rendered as 16 hex
15
+ // characters only when written; strings are bounded by the DFT_ENTITY_*_LEN
16
+ // capacities and sanitized to a JSON-safe character set.
17
+ typedef uint64_t EntityID;
18
+ typedef const char* ConstEntityTypeName; // <= DFT_ENTITY_TYPE_LEN
19
+ typedef const char* ConstEntityKey; // hashed into EntityID, not stored
20
+ typedef const char* ConstEntityURI; // <= DFT_ENTITY_URI_LEN
21
+ typedef const char* ConstEntityDescription; // <= DFT_ENTITY_DESC_LEN
22
+ #endif // DFTRACER_TYPEDEF_H
@@ -9,6 +9,7 @@
9
9
  * Common to both C and CPP
10
10
  */
11
11
  #include <dftracer/core/common/constants.h>
12
+ #include <dftracer/core/common/entity.h>
12
13
  #include <dftracer/core/common/typedef.h>
13
14
  #define DF_DATA_EVENT 0
14
15
  #define DF_METADATA_EVENT 1
@@ -38,6 +39,25 @@ void set_app_metadata_string(const char* key, const char* value);
38
39
  // log as PYTHON, so each calls this with its own name to tell them apart.
39
40
  // Idempotent; safe to call on every invocation.
40
41
  void mark_used(const char* name);
42
+
43
+ // ---------------------------------------------------------------------------
44
+ // Entities and relations (types, enums and limits: core/common/entity.h).
45
+ //
46
+ // Declare an entity instance: (type, key) -> 64-bit id, recorded once per
47
+ // process as an EH record. `type` is application-defined (truncated to
48
+ // DFT_ENTITY_TYPE_LEN), `key` is any application identifier (hashed, never
49
+ // stored), `uri` is an optional locator unique within the app (truncated to
50
+ // DFT_ENTITY_URI_LEN). Returns DFT_ENTITY_NONE when tracing is off.
51
+ EntityID dftracer_declare_entity(ConstEntityTypeName type, ConstEntityKey key,
52
+ EntityStore store, ConstEntityURI uri);
53
+ // Describe an entity type once per process: its role and what it represents
54
+ // (description truncated to DFT_ENTITY_DESC_LEN). One ET record.
55
+ void dftracer_declare_entity_type(ConstEntityTypeName type, EntityRole role,
56
+ ConstEntityDescription description);
57
+ // Relate two entities (entity -> entity relations, e.g. DFT_REL_CONTAINS,
58
+ // DFT_REL_DERIVED_FROM). One ER record.
59
+ void dftracer_relate_entities(EntityRelation relation, EntityID subject,
60
+ EntityID object);
41
61
  #ifdef __cplusplus
42
62
  }
43
63
  #endif
@@ -62,6 +82,7 @@ class DFTracer {
62
82
  TraceEventType type;
63
83
  TimeResolution start_time;
64
84
  dftracer::Metadata* metadata;
85
+ void* relations; // relation name -> entity hashes; see relate()
65
86
 
66
87
  public:
67
88
  DFTracer(ConstEventNameType _name, ConstEventNameType _cat,
@@ -74,6 +95,25 @@ class DFTracer {
74
95
  void update(const char* key, const char* value,
75
96
  MetadataType type = MetadataType::MT_KEY);
76
97
 
98
+ // Relate this event to an entity under an event relation (DFT_REL_USED,
99
+ // DFT_REL_GENERATED, DFT_REL_INVALIDATED, DFT_REL_UPDATED). Ids are kept
100
+ // as integers and rendered to hex only when the event is written.
101
+ void relate(EntityRelation relation, EntityID entity);
102
+ // Declare (type, key) and relate it in one step; returns the entity id.
103
+ EntityID relate(EntityRelation relation, ConstEntityTypeName type,
104
+ ConstEntityKey key, EntityStore store = DFT_STORE_MEMORY,
105
+ ConstEntityURI uri = nullptr);
106
+ EntityID uses(ConstEntityTypeName type, ConstEntityKey key,
107
+ EntityStore store = DFT_STORE_MEMORY,
108
+ ConstEntityURI uri = nullptr) {
109
+ return relate(DFT_REL_USED, type, key, store, uri);
110
+ }
111
+ EntityID generates(ConstEntityTypeName type, ConstEntityKey key,
112
+ EntityStore store = DFT_STORE_MEMORY,
113
+ ConstEntityURI uri = nullptr) {
114
+ return relate(DFT_REL_GENERATED, type, key, store, uri);
115
+ }
116
+
77
117
  void finalize();
78
118
 
79
119
  ~DFTracer();
@@ -125,6 +165,23 @@ class DFTracer {
125
165
  #define DFTRACER_CPP_REGION_DYN_UPDATE_TYPE(name, key, val, type) \
126
166
  profiler_##name->update(key, val, type);
127
167
 
168
+ // Entities and relations (see dftracer_declare_entity, core/common/entity.h).
169
+ #define DFTRACER_CPP_ENTITY(type, key, store, uri) \
170
+ dftracer_declare_entity(type, key, store, uri)
171
+ #define DFTRACER_CPP_ENTITY_TYPE(type, role, description) \
172
+ dftracer_declare_entity_type(type, role, description);
173
+ #define DFTRACER_CPP_ENTITY_RELATE(relation, subject, object) \
174
+ dftracer_relate_entities(relation, subject, object);
175
+ #define DFTRACER_CPP_FUNCTION_RELATE(relation, entity) \
176
+ profiler_dft_fn.relate(relation, entity);
177
+ #define DFTRACER_CPP_FUNCTION_USES(type, key) profiler_dft_fn.uses(type, key);
178
+ #define DFTRACER_CPP_FUNCTION_GENERATES(type, key) \
179
+ profiler_dft_fn.generates(type, key);
180
+ #define DFTRACER_CPP_REGION_RELATE(name, relation, entity) \
181
+ profiler_##name.relate(relation, entity);
182
+ #define DFTRACER_CPP_REGION_DYN_RELATE(name, relation, entity) \
183
+ profiler_##name->relate(relation, entity);
184
+
128
185
  extern "C" {
129
186
  #endif
130
187
  // C APIs
@@ -147,6 +204,15 @@ void update_metadata_int_type(struct DFTracerData* data, const char* key,
147
204
  void update_metadata_string_type(struct DFTracerData* data, const char* key,
148
205
  const char* value, int type);
149
206
 
207
+ // Relate a region to an entity under an event relation, or declare
208
+ // (type, key) and relate it in one call (returns the entity id).
209
+ void update_relation(struct DFTracerData* data, EntityRelation relation,
210
+ EntityID entity);
211
+ EntityID update_relation_entity(struct DFTracerData* data,
212
+ EntityRelation relation,
213
+ ConstEntityTypeName type, ConstEntityKey key,
214
+ EntityStore store, ConstEntityURI uri);
215
+
150
216
  #define DFTRACER_C_INIT(log_file, data_dirs, process_id) \
151
217
  initialize_main(log_file, data_dirs, process_id); \
152
218
  mark_used("C_APP");
@@ -212,6 +278,24 @@ void update_metadata_string_type(struct DFTracerData* data, const char* key,
212
278
  #define DFTRACER_C_REGION_UPDATE_STR_TYPE(name, key, val, type) \
213
279
  update_metadata_string_type(data_##name, key, val, type);
214
280
 
281
+ // Entities and relations (see dftracer_declare_entity, core/common/entity.h).
282
+ #define DFTRACER_C_ENTITY(type, key, store, uri) \
283
+ dftracer_declare_entity(type, key, store, uri)
284
+ #define DFTRACER_C_ENTITY_TYPE(type, role, description) \
285
+ dftracer_declare_entity_type(type, role, description);
286
+ #define DFTRACER_C_ENTITY_RELATE(relation, subject, object) \
287
+ dftracer_relate_entities(relation, subject, object);
288
+ #define DFTRACER_C_FUNCTION_RELATE(relation, entity) \
289
+ update_relation(data_fn, relation, entity);
290
+ #define DFTRACER_C_FUNCTION_USES(type, key) \
291
+ update_relation_entity(data_fn, DFT_REL_USED, type, key, DFT_STORE_MEMORY, \
292
+ NULL);
293
+ #define DFTRACER_C_FUNCTION_GENERATES(type, key) \
294
+ update_relation_entity(data_fn, DFT_REL_GENERATED, type, key, \
295
+ DFT_STORE_MEMORY, NULL);
296
+ #define DFTRACER_C_REGION_RELATE(name, relation, entity) \
297
+ update_relation(data_##name, relation, entity);
298
+
215
299
  #ifdef __cplusplus
216
300
  }
217
301
  #endif
@@ -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.1.1.post48.dev0'
22
- __version_tuple__ = version_tuple = (2, 1, 1, 'post48', 'dev0')
21
+ __version__ = version = '2.2.0.post1.dev0'
22
+ __version_tuple__ = version_tuple = (2, 2, 0, 'post1', '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.1.1.post48.dev0
3
+ Version: 2.2.0.post1.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