thread_split_omp_for.c

#include <mpi.h>
#include <omp.h>
#define n 2
MPI_Comm split_comm[n];
int main()
{
int i, provided;
MPI_Init_thread(NULL, NULL, MPI_THREAD_MULTIPLE, &provided);
for (i = 0; i < n; i++)
MPI_Comm_dup(MPI_COMM_WORLD, &split_comm[i]);
#pragma omp parallel for num_threads(n)
for (i = 0; i < n; i++) {
int j = i;
MPI_Allreduce(MPI_IN_PLACE, &j, 1, MPI_INT, MPI_SUM, split_comm[i]);
printf("Thread %d: allreduce returned %d\n", i, j);
}
MPI_Finalize();
}

See Also

thread_split_omp_task.c

thread_split_pthreads.c

Threading Runtimes Support

For more complete information about compiler optimizations, see our Optimization Notice.
Select sticky button color: 
Orange (only for download buttons)