MPI和OpenMP混合编程并行计算--入门程序

Posted 各可

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MPI和OpenMP混合编程并行计算--入门程序相关的知识,希望对你有一定的参考价值。

MPI和OpenMP混合编程,hello

#include "stdio.h"
#include "mpi.h"
#include "omp.h"
#define NUM_THREADS 8
int main(int argc,char*argv[])
{
    int my_rank,numprocs,thread_id,nthreads;
    MPI_Init(&argc,&argv);
    MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
    MPI_Comm_rank(MPI_COMM_WORLD,&my_rank);
     #pragma omp parallel num_threads(NUM_THREADS) private(thread_id, nthreads)
    {
        thread_id=omp_get_thread_num();
        nthreads=omp_get_num_threads();
        printf("Hello,The World!from thread number %d (on %d)for the MPI process number %d (on %d)\\n",thread_id, nthreads, my_rank, numprocs);
    }
    MPI_Finalize();
    return 0;
}
// mpicc demo2.c -o demo2 -fopenmp
// mpirun ./demo2 -up 6

编译运行结果如下,会有6*8=48行若你设置的为4则是32行
在这里插入图片描述

以上是关于MPI和OpenMP混合编程并行计算--入门程序的主要内容,如果未能解决你的问题,请参考以下文章

LSF 中的混合 MPI/OpenMP

Windows和Linux系统下并行计算环境MPI和OpenMP的搭建

MPI简介

openacc 与 openmp 和 mpi 的区别?

OpenMP 和 MPI 混合程序

请看看则个fortran结合openmp并行程序,为啥老出错?