Profiling the Thorium actor model engine with LTTng UST
Thorium is an actor model engine in C 1999. It uses MPI and Pthreads.   The latency (in Thorium) when sending small messages between actors recently came to my attention.   In this post, LTTng-UST is used to generate actor message delivery paths annotated with time deltas in each step.    Perf   I have been working with perf for a while now, but found it only useful mostly for hardware counters.   I typically use the following command to record events with perf. Note that ($thread is the Linux LWP (lightweight process) thread number.   perf record -g \     -e cache-references,cache-misses,cpu-cycles,ref-cycles,instructions,branch-instructions,branch-misses \     -t $thread -o $thread.perf.data      As far as I know, perf can not trace things like message delivery paths in userspace.    Tracing with LTTng-UST     This week, I started to read about tracepoints (perf does support "Tracepoint Events"). In particular, I wanted to use tracepoints t...