Instrument Your Code

 Insert the MPI_Pcontrol function call into your application to turn the trace collection on and off.

To collect the data on the exchange function of the poisson application, do the following:

  1. Go to <installdir>/examples/poisson/pardat.f90

  2. Edit the pardat.f90 file:

    1. Right after the MPI_Init call, turn the trace collection off:

      MPI_Pcontrol(0);
      
    2. At the beginning of the poisson_red_black subroutine, turn the trace collection on:

      MPI_Pcontrol(1);
      
    3. At the end of the poisson_red_black subroutine, turn the trace collection off

  3. Save the pardat.f90 file.

  4. Rebuild the application.

  5. Run the application.

    Linux* OS:

    $ mpirun -trace -n 4 ./poisson
    

    Windows* OS:

    > mpiexec -n 4 poisson.exe
    

Check your work:

  1. Open the resulting trace file poisson.stf in Intel® Trace Analyzer.

  2. In the Function Profile, right-click Group MPI and select Ungroup Group MPI from the context menu.

  3. Go to the Load Balance tab of the Function Profile to see how the MPI_Finalize, MPI_Sendrecv and MPI_Allreduce functions are distributed among the four processes.

  4. Go to Charts > Event Timeline to see the activities in each of the four processes individually.

You can see that the trace data was collected only for a particular part of the code. Note the VT_API group: it stands for the part of the code where trace data collection was turned off:

Key Terms

Configuration File
Event Timeline
Function Profile

For more complete information about compiler optimizations, see our Optimization Notice.