1 环境配置与安装
vs下的openmp只需去项目->属性->c/c++->openmp支持打开即可
而mpi的安装建议参考博文(一)MS-MPI入门及第一个程序_xinwuya_的博客-CSDN博客
2 mpi与openmp混合编程
混合编程首先要对两种都有一定的了解
openmp是基于共享内存下的并行操作,采用openmp执行并行的程序优点在于可以不用给所有线程都给予它自己的内存空间来存储变量(但是请注意如果多个线程反复读写同一块区域会造成排队现象而大幅度的减少并行效率,有时甚至可能更慢),也正因为openmp程序是共享内存,自然可以得知openmp是不能在多cpu多主机上跑的。
而mpi则是进程级别的并行,每个进程都需要自己独立的内存空间,进程之间通过mpi提供的接口来进行信息的交换与发送。显然基于这一特点可以明白,mpi虽然可以在多主机,多cpu,甚至多gpu上进行并行,但是对于内存的占用量是很大的。
而在结合了上述两点自然而然就会想到运用mpi与openmp的混合编程来同时获取两者的优点,但请注意openmp+MPI混合编程在MPI基础上加大了复杂度,采用它的目的,是减少内存占用,而非提高性能。即使是在单个节点,纯粹的共享内存系统,MPI程序在性能上也不输ope