Timing Application Execution
Tools like CrayPAT, TAU and PerfSuite can be used to time application execution.
The following timing function calls are available on Blue Waters for lighter-weight timing:
MPI_Wtime(): portable. It provides microsecond resolution on BW as shown by MPI_Wtick().
Note the clocks are not required to be highly synchronized across ranks. MPI_WTIME_IS_GLOBAL 's attribute value is 0 as reported by MPI_Comm_get_attr(MPI_COMM_WORLD, MPI_WTIME_IS_GLOBAL, &my_attr_value, &flag ); .
omp_get_time(): can be used in openMP program. It can be used to measures elapsed time in each omp thread.
RDTSC uses inline assembly and it is very fast. However, it is not recommended on BW. It suffers from clock variations and also reports different values based on which core its running on. Its not reliable for general purpose use.