bsc-performance-tools / wxparaver

wxParaver is a trace-based visualization and analysis tool designed to study quantitative detailed metrics and obtain qualitative knowledge of the performance of applications, libraries, processors and whole architectures.
http://tools.bsc.es/paraver
GNU Lesser General Public License v2.1
26 stars 3 forks source link

Documentation / improvement #1

Closed incardon closed 5 years ago

incardon commented 6 years ago

Is some day that I am playing with paraver.

I am stuck in understanding how to create a trace graph that combine Mpi calls and my manual instrumented functions.

While I am able to create two graph 1 with MPI Calls, and one with my events from Extrae_user_function(). I have serious difficulties to combine them. Now MPI_Calls are visualized by value using Last Evt Val and my event are also visualized using Last Evt Val. Unfortunately the event value of MPI_Calls is overlapping my events value. So every attempt to combine the events show my events as MPI_Calls.

The obvious solution to me would be: either create not overlapping event values, but in do not see how to do it with Extrae_user_function(), the second would be having paraver able to distinguish by Event type and Value in the sense that one Event value from one type is different from an event value of another type, but I also do not see this option (Either you use value either you use type).

Thanks Pietro

executre commented 5 years ago

Usually timelines in paraver are not used to show two or more different types or kind of semantic values. Various timelines are needed and then you can synchronise them using the context menu option.

Anyway, you can change Extrae_user_function() to Extrae_event() in your code. This call let you decide the type and value for the event, but then you need to specify manually the label for every value using Extrae_define_event_type().

Regards, Eloy

incardon commented 5 years ago

Thanks for the answer.

Extrae_user_function does the nice thing to attach the name of the function as information in the profiling file. Can I do the same with Extrae_event() ?

Various timelines are needed and then you can synchronise them using the context menu option.

For use the "context menu option", you mean create a derived time line out of two time lines ?

executre commented 5 years ago

As I know Extrae_user_function set the entry and exit events and attach the symbolic information in the pcf file automatically. But with Extrae_event you have to do all this by your own, adding a Extrae_event at the entry of the function with some type and value, and a Extrae_event just before the exit with the same type but value 0. Then in some point of your code you have to call Extrae_define_event_type to add the symbolic information. Please, refer to Extrae manual or ask the developers for better answering (https://github.com/bsc-performance-tools/extrae or tools@bsc.es).

I mean the menu showed when you click the right mouse button over a timeline. There you can find the synchronisation options. Then add two or more timelines to the same synchronisation group to have them showing the same portion of the trace.