Getting Started


Hatchet has the following minimum requirements, which must be installed before Hatchet is run:

  1. Python 2 (2.7) or 3 (3.5 - 3.8)
  2. matplotlib
  3. pydot
  4. numpy, and
  5. pandas

Hatchet is available on GitHub.


You can get hatchet from its GitHub repository using this command:

$ git clone

This will create a directory called hatchet.

Install and Build Hatchet

To build hatchet and update your PYTHONPATH, run the following shell script from the hatchet root directory:

$ source ./

Note: The source keyword is required to update your PYTHONPATH environment variable. It is not necessary if you have already manually added the hatchet directory to your PYTHONPATH.

Alternatively, you can install hatchet using pip:

$ pip install hatchet

Check Installation

After installing hatchet, you should be able to import hatchet when running the Python interpreter in interactive mode:

$ python
Python 3.7.4 (default, Jul 11 2019, 01:08:00)
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

Typing import hatchet at the prompt should succeed without any error messages:

>>> import hatchet

Supported data formats

Currently, hatchet supports the following data formats as input:

  • HPCToolkit database: This is generated by using hpcprof-mpi to post-process the raw measurements directory output by HPCToolkit.
  • Caliper Cali file: This is the format in which caliper outputs raw performance data by default.
  • Caliper Json-split file: This is generated by either running cali-query on the raw caliper data or by enabling the mpireport service when using caliper.
  • DOT format: This is generated by using gprof2dot on gprof or callgrind output.
  • String literal: Hatchet can read as input a list of dictionaries that represents a graph.
  • List: Hatchet can also read a list of lists that represents a graph.

For more details on the different input file formats, refer to the User Guide.