Getting Started

Prerequisites

The callflow (python package) requires python (>= 3.6) and pip (>= 20.1.1). Other dependencies are checked/installed during the installation of callflow using pip.

Other dependencies are:

  1. hatchet
  2. pandas
  3. networkx (2.2)
  4. numpy
  5. flask
  6. statsmodels, and
  7. sklearn

CallFlow is available on GitHub

The callflow app (visualization component) requires node.js (>= 13.7.0) and npm (>= 6.13.7). If there is an older version of node installed, install nvm and use the following command to change version.

$ nvm use 13.7.0.

Installation

You can get CallFlow from its GitHub using this command:

$ git clone https://github.com/LLNL/CallFlow.git

Install callflow python package

To install callflow python package, run the following command using pip.

$ pip install .

To install in the dev mode,

$ pip install -e . --prefix=/path/to/install

Check Installation of callflow python package

After installing callflow, make sure you update your PYTHONPATH environment variable to point to directory where callflow was installed.

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

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

>>> import callflow
>>>

Install the Visualization client

$ cd app
$ npm install

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.

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