{"id":19705796,"url":"https://github.com/llnl/hatchet","last_synced_at":"2025-04-05T13:03:04.501Z","repository":{"id":37686844,"uuid":"454508482","full_name":"LLNL/hatchet","owner":"LLNL","description":"Graph-indexed Pandas DataFrames for analyzing hierarchical performance data","archived":false,"fork":false,"pushed_at":"2024-10-29T17:46:14.000Z","size":33006,"stargazers_count":29,"open_issues_count":31,"forks_count":18,"subscribers_count":8,"default_branch":"develop","last_synced_at":"2024-10-29T20:57:08.327Z","etag":null,"topics":["comparative-analysis","data-analytics","graphs","hierarchical-data","hpc","performance","performance-analysis","python","radiuss","trees"],"latest_commit_sha":null,"homepage":"https://llnl-hatchet.readthedocs.io","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LLNL.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-01T18:43:00.000Z","updated_at":"2024-10-29T17:45:26.000Z","dependencies_parsed_at":"2023-10-05T05:46:49.603Z","dependency_job_id":"2c8d487d-6360-42c8-b7f1-eed0d31a24d7","html_url":"https://github.com/LLNL/hatchet","commit_stats":{"total_commits":524,"total_committers":26,"mean_commits":"20.153846153846153","dds":0.6927480916030535,"last_synced_commit":"a7e0eb4056c107290f0648e657ea2e985328af86"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fhatchet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fhatchet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fhatchet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2Fhatchet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/hatchet/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339149,"owners_count":20923014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comparative-analysis","data-analytics","graphs","hierarchical-data","hpc","performance","performance-analysis","python","radiuss","trees"],"created_at":"2024-11-11T21:30:13.298Z","updated_at":"2025-04-05T13:03:04.476Z","avatar_url":"https://github.com/LLNL.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# \u003cimg src=\"https://raw.githubusercontent.com/llnl/hatchet/develop/logo-hex.png\" width=\"64\" valign=\"middle\" alt=\"hatchet\"/\u003e Hatchet\n\n[![Build Status](https://github.com/llnl/hatchet/actions/workflows/unit-tests.yaml/badge.svg)](https://github.com/llnl/hatchet/actions)\n[![Read the Docs](http://readthedocs.org/projects/llnl-hatchet/badge/?version=latest)](http://llnl-hatchet.readthedocs.io)\n[![codecov](https://codecov.io/gh/llnl/hatchet/branch/develop/graph/badge.svg)](https://codecov.io/gh/llnl/hatchet)\n[![Code Style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n\nHatchet is a Python-based library that allows [Pandas](https://pandas.pydata.org) dataframes to be indexed by structured tree and graph data. It is intended for analyzing performance data that has a hierarchy (for example, serial or parallel profiles that represent calling context trees, call graphs, nested regions’ timers, etc.). Hatchet implements various operations to analyze a single hierarchical data set or compare multiple data sets, and its API facilitates analyzing such data programmatically.\n\nTo use hatchet, install it with pip:\n\n```\n$ pip install llnl-hatchet\n```\n\nOr, if you want to develop with this repo directly, run the install script from\nthe root directory, which will build the cython modules and add the cloned\ndirectory to your `PYTHONPATH`:\n\n```\n$ source install.sh\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/llnl/hatchet/develop/screenshot.png\" width=800\u003e\n\u003c/p\u003e\n\n\n### Documentation\n\nSee the [Getting Started](https://llnl-hatchet.readthedocs.io/en/latest/getting_started.html) page for basic examples and usage. Full documentation is available in the [User Guide](https://llnl-hatchet.readthedocs.io/en/latest/user_guide.html).\n\nExamples of performance analysis using hatchet are available [here](https://llnl-hatchet.readthedocs.io/en/latest/analysis_examples.html).\n\nThe [hatchet tutorial](https://github.com/llnl/hatchet-tutorial) provides a step by step introduction to hatchet features through a live interactive environment in BinderHub.\n\n### Interactive Visualization\n\nHatchet now provides an interactive visualization which can be run inside of your Jupyter notebooks. It is dependant on different mechanisms for building which we describe here:\n\n\nThe software in the `hatchet/vis` subdirectory requires [Node.js and Node Package Manager](https://nodejs.org/en/download/) for the development and building of javascript code.\n\n#### Installing node packages\n\nOne you have Node and NPM installed on your system, you can install all necessary node packages by running the following line in your terminal from the `hatchet/vis/` directory:\n\n```\nnpm install\n```\n\n#### Building out javascript code with webpack\n\nTo build out javascript into the static bundles used by the Jupyter visualizations, run the following line from the `hatchet/vis` directory in your terminal:\n\n```\nnpm run build\n```\n\nAlterntinatively if you are developing a visualization, you can run the following line to force bundles to automatically update when you change the javascript source code:\n\n```\nnpm run watch\n```\n\n### Contributing\n\nHatchet is an open source project. We welcome contributions via pull requests,\nand questions, feature requests, or bug reports via issues.\n\n### Authors\n\nMany thanks go to Hatchet's\n[contributors](https://github.com/llnl/hatchet/graphs/contributors).\n\n### Citing Hatchet\n\nIf you are referencing Hatchet in a publication, please cite the\nfollowing [paper](http://www.cs.umd.edu/~bhatele/pubs/pdf/2019/sc2019.pdf):\n\n * Abhinav Bhatele, Stephanie Brink, and Todd Gamblin. Hatchet: Pruning\n   the Overgrowth in Parallel Profiles. In Proceedings of the International\n   Conference for High Performance Computing, Networking, Storage and Analysis\n   (SC '19). ACM, New York, NY, USA. [DOI](\n   http://doi.acm.org/10.1145/3295500.3356219)\n\n### License\n\nHatchet is distributed under the terms of the MIT license.\n\nAll contributions must be made under the MIT license.  Copyrights in the\nHatchet project are retained by contributors.  No copyright assignment is\nrequired to contribute to Hatchet.\n\nSee [LICENSE](https://github.com/llnl/hatchet/blob/develop/LICENSE) and\n[NOTICE](https://github.com/llnl/hatchet/blob/develop/NOTICE) for details.\n\nSPDX-License-Identifier: MIT\n\nLLNL-CODE-741008\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fhatchet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Fhatchet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fhatchet/lists"}