Indicate that lttng-ust 2.13+ is required
[deliverable/lttng-ust-mpi.git] / README.md
CommitLineData
e8418583
MJ
1<!--
2SPDX-FileCopyrightText: 2024 EfficiOS, Inc.
3
4SPDX-License-Identifier: MIT
5-->
6
66e983e2
OD
7# lttng-ust-mpi
8
9Auto generation of instrumentation library for MPI with LTTng.
10
11# Requirements
12
13- babeltrace (check program)
14- clang
15- gcc
16- lttng-tools (check program)
493dd0dd 17- lttng-ust (>= 2.13)
66e983e2
OD
18- make
19- openmpi or craympi
20- openssh or srun (check program)
21- pkg-config
22- python-clang
23
24# Build
25
26Call `make` and that is it. You can pass `MPI_HEADER=path-to-mpi.h`. This will
27bypass the pkg-config finding of mpi.h. You can also pass
28`PROVIDER=my_provider` if you want to change the default provider name (mpi).
29
30The resulting `lttng-ust-mpi.so` can be used to instrument OpenMPI or CrayMPI
31with LTTng. See the `check` script for usage example.
32
b1b8fdad
KS
33# Usage
34
35For programs that have a direct dependency on `libmpi.so` (e.g. they are listed
36as NEEDED in the dynamic section of an ELF binary), the following can be used
37to activate tracing:
38
39```
40LD_PRELOAD=liblttng-ust-mpi.so ./program
41```
42
43However, if the the program in question loads `libmpi.so` dynamically during
44execution a work around is required to ensure the library is already. The
45following command can be used as a work-around until a more robust solution
46is put in place:
47
48```
49LD_PRELOAD=liblttng-ust-mpi.so:libmpi.so ./program
50```
51
66e983e2
OD
52# Set of ignored functions
53
54The only function ignored is `MPI_Pcontrol`. One can extend the `forbiden_list`
55in `lttng-auto-mpi-wrappers` to ignore more functions.
56
57# Development
58
59If using the `guix` package manager, simply do `./dev-env`.
This page took 0.024622 seconds and 4 git commands to generate.