visual studio c++环境下应用mpi与openmp混合编程的简单程序

本文介绍了如何在Visual Studio下配置OpenMP,并推荐MS-MPI的安装指南。重点讨论了OpenMP基于共享内存的并行与MPI进程级并行的区别,以及如何通过混合编程利用两者优势降低内存消耗。通过实例演示了一个三维点阵求和程序,展示了如何在MPI并行中使用OpenMP线程。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值