來源自 這裡
Preface:
下面範例說明如何在 MPI 上使用 OpenMP. 程式的邏輯是每個 process 都執行 rank+1 次的 for loop, 並將該 for loop 使用 OpenMP 平行化並列印 Hello 訊息.
Example:
- 範例代碼 mpi_with_openmp.c:
接著可以如下編譯與執行:
Preface:
下面範例說明如何在 MPI 上使用 OpenMP. 程式的邏輯是每個 process 都執行 rank+1 次的 for loop, 並將該 for loop 使用 OpenMP 平行化並列印 Hello 訊息.
Example:
- 範例代碼 mpi_with_openmp.c:
- #include
- #include
- #include
- int main(int argc, char *argv[])
- {
- int numprocs, rank, namelen;
- char processor_name[MPI_MAX_PROCESSOR_NAME];
- int iam=0, np=1, i;
- MPI_Init(&argc, &argv);
- MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
- MPI_Comm_rank(MPI_COMM_WORLD, &rank);
- MPI_Get_processor_name(processor_name, &namelen);
- #pragma omp parallel for private(iam, np)
- for(i=0; i
1; i++) - {
- np = omp_get_num_threads();
- iam = omp_get_thread_num();
- printf("Hello from thread %d out of %d from process %d out of %d on %s - Round%d\n",
- iam, np, rank, numprocs, processor_name, i);
- }
- MPI_Finalize();
- }
沒有留言:
張貼留言