#include <stdio.h> #include <string.h> #include "mpi.h" int main(int argc, char *argv[]) { int provided, err; int numPvar, nameLen, descLen, verbosity, varClass; int binding, isReadonly, isContinuous, isAtomic, i; char name[128], desc[1024]; MPI_T_enum enumtype; MPI_Datatype datatype; MPI_Init_thread(0, 0, MPI_THREAD_SINGLE, &provided); err = MPI_T_init_thread(MPI_THREAD_SINGLE, &provided); if (err) MPI_Abort(MPI_COMM_WORLD, 0); err = MPI_T_pvar_get_num(&numPvar); if (err) MPI_Abort(MPI_COMM_WORLD, 0); printf("%d MPI Performance Variables\n", numPvar); for (i=0; i<numPvar; i++) { nameLen = sizeof(name); descLen = sizeof(desc); err = MPI_T_pvar_get_info(i, name, &nameLen, &verbosity, &varClass, &datatype, &enumtype, desc, &descLen, &binding, &isReadonly, &isContinuous, &isAtomic); if (err) MPI_Abort(MPI_COMM_WORLD, 0); printf("\t%s\tClass=%d\tReadonly=%s\tContinuous=%s\tAtomic=%s\t%s\n", name, varClass, isReadonly ? "T" : "F", isContinuous ? "T" : "F", isAtomic ? "T" : "F", desc); } MPI_T_finalize(); /* No test on return because we're about to exit */ MPI_Finalize(); return 0; }