Hatchet is a Python-based library that allows Pandas 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.
This repository contains materials for Hatchet's hands-on tutorial. You can do all of the exercises on your own laptop using BinderHub.
We use BinderHub to create a shareable and interactive environment of the notebooks within a live JupyterHub instance.
You can access the interactive environment at this link or by clicking the badge at the top of this file.
To run the notebooks on Cori, you will need to install Caliper, create a conda environment with Hatchet and its dependencies, and install the environment so that it can be accessed in JupyterHub.
To build and install Caliper:
$ git clone https://github.com/hatchet/hatchet-tutorial
$ cd hatchet-tutorial
$ ./build_and_install_caliper
To setup your local conda environment with Hatchet and its dependencies:
$ module load python
$ conda create --name hatchet-sc21-env python=3.8 ipykernel multiprocess
$ source activate hatchet-sc21-env
$ pip install hatchet==1.3.1a0
Lastly, we install our conda environment so we can use it in JupyterHub:
$ python -m ipykernel install --user --name hatchet-sc21-env-jupyter
To access the notebooks, navigate to https://jupyter.nersc.gov, and switch to kernel "hatchet-sc21-env-jupyter" in the kernel list.
This repository is distributed under the terms of the MIT license.
All contributions must be made under the MIT license. Copyrights are retained by contributors. No copyright assignment is required to contribute to this project.
See LICENSE.
SPDX-License-Identifier: MIT
LLNL-CODE-741008