Mitos is a library and a tool for collecting sampled memory performance data to view with MemAxes
Mitos requires:
-
A Linux kernel with perf_events support for memory sampling. This originated in the 3.10 Linux kernel, but is backported to some versions of RHEL6.6.
-
Dyninst version 8.2 or higher.
-
Make sure that Dyninst is installed and its location is added to the
CMAKE_PREFIX_PATH
environment variable. -
Run the following commands from the root of the MemAxes source:
mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/location .. make make install
-
Find the
mitosrun
command in thebin
directory in the install directory. -
Run any binary with
mitosrun
like this to generate a folder of mitos output data. For example:mitosrun ./examples/matmul
The above command will run the matmul example and create a folder called mitos_###, where ### is the number of seconds since the epoch. The folder will contain:
mitos_###/ data/ samples.csv src/ <empty> hardware.xml
Where
samples.csv
contains a comma-separated list of memory samples, hardware.xml describes the hardware topology (using hwloc) and src is an empty directory where you can put the program source files for use in MemAxes.mitosrun
can also be fine-tuned with the following parameters:[options]: -b sample buffer size (default 4096) -p sample period (default 4000) -t sample latency threshold (default 10)
Mitos and MemAxes were originally written by Alfredo Gimenez.
Thanks to Todd Gamblin for suggestions and for giving Mitos a proper build setup.
Mitos is distributed under the Apache-2.0 license with the LLVM exception. All new contributions must be made under this license. Copyrights and patents in the Mitos project are retained by contributors. No copyright assignment is required to contribute to Mitos.
See LICENSE and NOTICE for details.
SPDX-License-Identifier: (Apache-2.0 WITH LLVM-exception)
LLNL-CODE-838491