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.
- {dftracer-2.2.0.post8.dev0/python/dftracer.egg-info → dftracer-2.2.0.post14.dev0}/PKG-INFO +1 -1
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/dependency/CMakeLists.txt +1 -1
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/dependency/manifest.txt +1 -1
- dftracer-2.2.0.post14.dev0/docs/provenance.rst +367 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/dfanalyzer-ideas.ipynb +1 -1
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/enumeration.h +3 -12
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer/_version.py +2 -2
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0/python/dftracer.egg-info}/PKG-INFO +1 -1
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/SOURCES.txt +6 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/scm_file_list.json +6 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/test_wheel.py +42 -2
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/posix.cpp +1041 -1
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/posix.h +262 -1
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/stdio.cpp +400 -1
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/stdio.h +77 -4
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/df_logger.h +2 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/configuration_manager.h +15 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/stdio_bypass.cpp +58 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/stdio_bypass.h +24 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/utils.h +33 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/CMakeLists.txt +100 -0
- dftracer-2.2.0.post14.dev0/test/c/check.h +18 -0
- dftracer-2.2.0.post14.dev0/test/c/test_extra_io.c +179 -0
- dftracer-2.2.0.post14.dev0/test/c/test_fd_tracking.c +67 -0
- dftracer-2.2.0.post14.dev0/test/c/test_more_io.c +77 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_posix_fortify.c +20 -26
- dftracer-2.2.0.post14.dev0/test/c/test_posix_parity.c +132 -0
- dftracer-2.2.0.post14.dev0/test/c/test_relative_path.c +38 -0
- dftracer-2.2.0.post14.dev0/test/check_public_headers.cmake +71 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/valgrind/test_cpp_known_syscall.supp +19 -0
- dftracer-2.2.0.post8.dev0/docs/provenance.rst +0 -213
- dftracer-2.2.0.post8.dev0/test/c/test_posix_parity.c +0 -138
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.actrc +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.clang-format +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.coveragerc +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.devcontainer/README.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.devcontainer/devcontainer-dockerfile.json +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.devcontainer/devcontainer.json +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.devcontainer/docker-compose.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/benchmark.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/ci.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/dlio-benchmark.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/docker-publish.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/format-check.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/hdf5-mpi-trace-ci.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/prerelease.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/pull_request_event.json +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/python-publish.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/valgrind-ci.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.github/workflows/wheels.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitignore +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/benchmark.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/build-test.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/distribute.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/dlio-benchmark.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/docs.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/format-check.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/hdf5-mpi-trace.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/run-in-podman.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/toolchain.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/valgrind-gates.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/flux-ci/wheels.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/build.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/build_dft.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/common.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/compare_summary.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/create_log_dir.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/dlio_benchmark_test.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/dlio_setup.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/generate_dlio_job.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/generate_dlio_jobs.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/generate_summary.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/hip_corona_requirements.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/hip_tuo_requirements.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/post.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/pre.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/requirements.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/run_dft_hip_test.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/run_dlio_training_with_service.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab/scripts/variables.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitlab-ci.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.gitpod.yml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.migration/REVERT.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.migration/dftracer.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.readthedocs.yaml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.vscode/launch.json +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/.vscode/settings.json +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/CITATION.cff +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/COVERAGE_QUICKREF.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/DOCKER_SETUP_SUMMARY.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/Dockerfile +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/LICENSE +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/MANIFEST.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/NOTICE +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/PACKAGE_VERSION +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/README.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/VERSION +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/autobuild.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer-config-version.cmake.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer-config.cmake.build.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer-config.cmake.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer-config.cmake.install.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer_config.hpp.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer_config_dbg.hpp.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/configure_files/dftracer_module.lua.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/DFTracerVariorum.cmake +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/FindCUPTI.cmake +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/FindHWLOC.cmake +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/FindPAPI.cmake +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/FindVariorum.cmake +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/SetupCompiler.cmake +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/modules/dftracer-utils.cmake +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/patches/brahma_version_override.cmake +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/probes/papi_probe.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/tests/has_fd.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/tests/has_filesystem.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/cmake/tests/mpi_detect.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/compose-dev.yaml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docker/dl.Dockerfile +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docker/ior.Dockerfile +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/.clang-format +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/.gitignore +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/Makefile +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/_static/theme_overrides.css +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/ai_logging.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/api.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/bash_utilities.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/build.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/building_applications.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/conf.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/coverage.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/debugging.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/definitions.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/developer-guide.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_alcf_polaris.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_build.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_conf.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_custom_columns.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_distributed.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dfanalyzer_overlap_analysis.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/dftracer_service.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/docker.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/examples.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/gpu_tracing.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/overlap-analysis/overlap-analysis-summary.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/dask-scheduler-monitoring.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/run-scheduler.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/vscode-add-port-button.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/vscode-added-port.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dfanalyzer/polaris/vscode-ports-tab.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dftracer-logo-light.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dftracer-logo.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/dlio-profiler-logo.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-flags-confirm-1.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-flags-confirm-2.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-interface.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-sql-result-example-pread.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-sql-textbox-2.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-sql-textbox.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-ui-confirm.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/perfetto/perfetto-viz.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/1000genome.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/Montage_dur.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/Montage_graph.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/Montage_summary.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/images/tracing/trace.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/index.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/limitations.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/migration.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/models.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/omnistat.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/overview.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/pegasus_genome.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/pegasus_montage.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/perfetto.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/requirements.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/style-guides.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/testing.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/trace_format.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/utilities.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/docs/variorum.rst +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/dfanalyzer-distributed.ipynb +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/dfanalyzer.ipynb +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/images/bw_timeline.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/images/dask-dashboard-load.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/images/xfer_timeline.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/requirements.txt +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/test-trace.pfw.gz +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/README.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/data.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/example.ipynb +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/requirement.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/test_data1.pfw +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/graph_visualization/vis.png +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/papi_standalone/Makefile +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/papi_standalone/README.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/papi_standalone/papi_mpi.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/papi_standalone/papi_single_node.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/constants.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/cpp_typedefs.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/entity.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/typedef.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/dftracer.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/Dockerfile.dev +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/Dockerfile.prod +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/QUICK_REFERENCE.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/README.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/infrastructure/docker/build-multiplatform.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/pyproject.toml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer/__init__.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/dependency_links.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/not-zip-safe +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/requires.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/top_level.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/results/cases.csv +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/results/overhead.csv +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/README_COVERAGE.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/check_coverage.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/coverage_after_autobuild.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_anonymize +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_compact +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_compact_by_pid +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_create_index +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_event_count +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_merge +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_pgzip +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_sanitize +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_split +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/dftracer_validate +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/formatting/autoformat.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/formatting/check-formatting.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/generate_coverage.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/generate_coverage_report.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/git_sparse_clone_interactive +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/git_sparse_push_interactive +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/repo/README.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/repo/update_version.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/script/valgrind_gate.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/check_papi_trace.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/check_variorum_trace.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/dlio_non_valgrind_runner.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/requirements-valgrind-runners.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/run_hdf5_mpi_ci_local.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/valgrind_ctest_python_runner.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/valgrind_ctest_runner.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/valgrind_dlio_runner.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/README.md +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/build_deps.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/build_wheels.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/bundle_wheel.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/manifest.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/scripts/wheel/repair_wheel.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/setup.cfg +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/setup.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/aggregator/aggregator.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/aggregator/aggregator.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/aggregator/rules.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/aggregator/rules.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/hdf5.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/hdf5.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/mpi.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/mpi.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/mpiio.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/brahma/mpiio.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/buffer/buffer.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/buffer/buffer.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/datastructure.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/datastructure.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/dftracer_main.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/dftracer_main.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/error.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/event_loop.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/event_loop.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/logging.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/macros.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/common/singleton.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/compression/zlib_compression.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/compression/zlib_compression.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/datastructure.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/df_logger.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/dftracer.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/dftracer_preload.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/dftracer_preload.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/finstrument/functions.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/finstrument/functions.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/cuda/intercept.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/cuda/intercept.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/generic_function.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/hip/intercept.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/hip/intercept.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/papi/counters.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/function/papi/counters.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/serialization/json_line.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/serialization/json_line.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/configuration_manager.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/md5.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/md5.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/posix_bypass.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/posix_bypass.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/utils/utils.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/writer/stdio_writer.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/core/writer/stdio_writer.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/python/dftracer.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/python/dftracer.cpp.in +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/python/dftracer_dbg.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/common/datastructure.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/service.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/service.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/cpu_collector.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/cpu_collector.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/io_collector.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/io_collector.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/memory_collector.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/memory_collector.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/network_collector.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/network_collector.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/omnistat_collector.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/omnistat_collector.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/telemetry_factory.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/telemetry_factory.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/telemetry_interface.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/variorum_collector.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/variorum_collector.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/src/dftracer/service/telemetry/variorum_power_layout.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/analysis_ior.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_c_api_coverage.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_entity.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_hdf5.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_hdf5_mpi.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_hdf5_parallel.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/test_mpi.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/c/testlib.c +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_entity_trace.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_events_present.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_file.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_file_at_least.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/check_file_not.sh +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_cpp_api_coverage.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_entity.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_hdf5.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_hdf5_mpi.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_hdf5_parallel.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cpp/test_mpi.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cuda/check_cuda_trace.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/cuda/test_cuda.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/dfanalyzer/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/dlio_benchmark/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/ignore_result.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/test_external.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_compatible/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_compatible/test_version.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_exact/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_exact/test_version.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_higher_minor/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_higher_minor/test_version.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_incompatible_major/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_incompatible_major/test_version.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_minimum/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_minimum/test_version.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_old_major/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_old_major/test_version.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_wrong_exact/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/package_find/version_wrong_exact/test_version.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/analysis/darshan_analyzer_main.ipynb +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/analysis/otf2_distributed_reader.ipynb +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/analysis/recorder_distributed_reader.ipynb +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/load_darshan.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/load_recorder.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/load_scorep.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/overhead.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/overhead.csv +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/paper/overhead.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/ai_logging.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/cuda_test.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/dynamo_test.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/hip_test.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/python_test.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/requirements.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/test.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/py/test_python_api_coverage.py +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/CMakeLists.txt +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/check.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/file.dat +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/mmap +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/mmap.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_aggregated_key_hash.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_aggregated_value.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_aggregator.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_configuration.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_entity.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_omnistat.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_serialization.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_service.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_trace_event_type.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/unit/test_variorum.cpp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/util.h +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/valgrind/dlio_known_external.supp +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/yaml/benchmark-rules.yaml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/yaml/conf.yaml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/yaml/rules.yaml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/test/yaml/selective-aggregation-rules.yaml +0 -0
- {dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/tools/CMakeLists.txt +0 -0
- {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.
|
|
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
|
|
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
|
|
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.
|
{dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/examples/dfanalyzer/dfanalyzer-ideas.ipynb
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
[diffend] Oversized file quarantined before diffing.
|
|
2
|
-
name: dftracer-2.2.0.
|
|
2
|
+
name: dftracer-2.2.0.post14.dev0/examples/dfanalyzer/dfanalyzer-ideas.ipynb
|
|
3
3
|
size: 52418033 bytes
|
|
4
4
|
sha256: e4b283c4e2e7dd17e9f5452b2fb101d1d9f32d4dd13fa56742629faea6700b55
|
{dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/include/dftracer/core/common/enumeration.h
RENAMED
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
#ifndef DFTRACER_ENUMERATION_H
|
|
6
6
|
#define DFTRACER_ENUMERATION_H
|
|
7
|
-
#include <
|
|
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.
|
|
22
|
-
__version_tuple__ = version_tuple = (2, 2, 0, '
|
|
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.
|
|
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
|
{dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/SOURCES.txt
RENAMED
|
@@ -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
|
{dftracer-2.2.0.post8.dev0 → dftracer-2.2.0.post14.dev0}/python/dftracer.egg-info/scm_file_list.json
RENAMED
|
@@ -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.
|
|
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
|
-
|
|
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()
|