[lttng-dev] Using Babeltrace to write CTF for MPI application

Rocky Dunlap rsdunlapiv at gmail.com
Tue Apr 4 21:29:19 UTC 2017


I am instrumenting an MPI application to output a custom application trace
in CTF using Babeltrace 1.5.2.  I would like to end up with a single trace
with multiple streams, one per process.  All streams share the same stream
class (and metadata). All processes have access to the same file system.  I
am using the C CTF writer API using this test as an example:
https://github.com/efficios/babeltrace/blob/stable-1.5/tests/lib/test_ctf_writer.c

What I have in mind is something like this: process 0 would be responsible
for writing the metadata and its own stream, while all other processes
would only need to write their own stream.

The issue I have run into is that the individual stream file names are
determined by appending stream->id to the stream filename and the stream id
is determined behind the scenes as stream->id =
stream_class->next_stream_id++.  Since each process has its own address
space, all processes want stream id of 0.

Is there a way using the current API to explicitly set the stream id so
that each process will write to a separate file?

I'm also open for suggestions on the overall approach.  The main reason to
have each process as a separate stream in a single trace is so that I can
open the entire trace in an analysis tool like TraceCompass and see all
processes together.

Rocky
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20170404/1f35d39b/attachment.html>


More information about the lttng-dev mailing list