--- trunk/escript/src/Utils.cpp 2008/05/21 05:55:30 1560 +++ trunk/escript/src/Utils.cpp 2008/05/21 06:58:52 1561 @@ -20,6 +20,10 @@ #include #endif +#ifdef PASO_MPI +#include +#endif + namespace escript { int getSvnVersion() @@ -31,6 +35,28 @@ #endif } +void printParallelThreadCnt() +{ + int mpi_iam=0, mpi_num=1; + + #ifdef PASO_MPI + MPI_Comm_rank(MPI_COMM_WORLD, &mpi_iam); + MPI_Comm_size(MPI_COMM_WORLD, &mpi_num); + #endif + + #ifdef _OPENMP + #pragma omp parallel + #endif + { + int omp_iam=0, omp_num=1; + #ifdef _OPENMP + omp_iam = omp_get_thread_num(); /* Call in a parallel region */ + omp_num = omp_get_num_threads(); + #endif + printf("printParallelThreadCounts: OpenMP=%d/%d MPI=%d/%d\n", omp_iam, omp_num, mpi_iam, mpi_num); + } +} + void setNumberOfThreads(const int num_threads) {