By default ITAC only displays "MPI" and "APPLICATION" in the event display.
None to any avail. What am I missing? What file should contain my routine names?
Yes. This is my typical compile line:
mpicxx -O2 -g -std=c++11 -trace -DVT -I/home1/apps/intel/itac/9.0.3.049/intel64/include -I../imp -I/work/00434/eijkhout/cppformat/cppformat -fpermissive -I.. -c mpi_base.cxx
I'm using Intel 15.0.2
Ok, now I can see the call stack. Thanks.
VT_funcdef is used to define a function handle. That handle needs to be seen by the routine at the time of calling VT_begin/VT_end. I'm attaching a simple example where I use VT_funcdef to define my functions and VT_begin/VT_end to signal the beginning and ending of each function. Anything not labeled will end up as Application:User_Code. To help differentiate, I also defined a separate class "myclass", but you can define your functions as part of the Application class if you want.
Try using the "Layout" option to change how the charts are arranged.
James, thanks for all the help.
Turning on the Message Profile (empty for my example) and the Event Timeline, and turning off the Performance Assistant, when I chose Layout->Timelines to the Right, I got this.
If you are using MPI_Init and MPI_Finalize, the collection library will call VT_initialize and VT_finalize underneath those. You only need to explicitly call them if you aren't using MPI_Init and MPI_Finalize.
Using VT_NOCLASS will simply put it into the Application class alongside User Code. If you use xstftool, you can get a dump of the trace file which will include the functions. What I did for the example code I provided
xstftool a.out.single.stf --dump | grep foo
This gives me a line showing that I defined the state foo, then a line for every time I entered it, along with the movement direction on the stack and which rank did that.