Caliper is a framework for collecting application runtime data (such as
performance measurements). Two Caliper profiles are included in
caliper.config, one each for serial and MPI execution. After building with
Caliper support, measurements can be collected as in the following MPI example:
mkdir -p caliper
num_ranks=4
CALI_CONFIG_PROFILE=bookleaf-mpi \
mpirun -n ${num_ranks} <mpi args> \
build/bookleaf <bookleaf args>
# e.g. to display percentage total time spent in each function for each rank
for rank in $(seq 0 $((num_ranks-1))); do
echo "rank ${rank}"
cali-query -t \
-q "select annotation, loop, function, mpi.function, percent_total(sum#time.duration)" \
caliper/caliper-${rank}.cali
echo
done