Build Instructions

Python Install

The minimum Python version needed is 3.8. You can get PerfFlowAspect from its GitHub repository using this command:

$ git clone https://github.com/flux-framework/PerfFlowAspect

This will create a directory called PerfFlowAspect.

To use PerfFlowAspect, you will need to update your PYTHONPATH with the path to the PerfFlowAspect python directory:

$ cd src/python
$ export PYTHONPATH=$PWD:$PYTHONPATH

C Build

Host Config Files

To handle build options, third-party library paths, and other environment-specific configurations, PerfFlowAspect relies on CMake’s initial-cache file mechanism.

These initial-cache files are called host-config files in PerfFlowAspect, since we typically create a file for each platform or specific system if necessary.

Example configuration files can be found in the host-configs/ directory. Assuming you are in a build/ directory, you can call the host-config file as follows:

$ cmake -C host-configs/{config_file}.cmake ../

Build Dependencies and Versions

redhat

ubuntu

version

clang

clang

>= 6.0

llvm-devel

llvm-dev

>= 6.0

jansson-devel

libjansson-dev

>= 2.6

openssl-devel

libssl-dev

>= 1.0.2

cmake

cmake

>= 3.10

flex

flex

>= 2.5.37

bison

bison

>= 3.0.4

make

make

>= 3.82

Building PerfFlowAspect

PerfFlowAspect uses CMake and requires Clang and LLVM development packages as well as a jansson-devel package for JSON manipulation. It additionally requires the dependencies of our annotation parser code: i.e., flex and bison. Note that LLVM_DIR must be set to the corresponding LLVM cmake directory which may differ across different Linux distributions.

$ module load clang/10.0.1-gcc-8.3.1 (on LLNL systems only)
$ cd PerfFlowAspect/src/c
$ mkdir build && cd build
$ cmake -DCMAKE_CXX_COMPILER=clang++ ../
$ make (note: parallel make (make -j) not supported yet)

$ find . -print | grep lib # successful build produces 3 libraries
./build/parser/libperfflow_parser.so
./build/runtime/libperfflow_runtime.so
./build/weaver/weave/libWeavePass.so