MPI OpenMp混合 [英] MPI OpenMp hybrid

查看:24
本文介绍了MPI OpenMp混合的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在Linux双核集群上运行一个为MPI和OpenMP编写的程序。

当我尝试设置OMP_NUM_THREADS变量时

export OMP_NUM_THREADS=2

我收到一条消息

OMP_NUM_THREADS:未定义变量。

我在使用OpenMP时没有获得更好的性能...我也试过了:

mpiexec -n 10 -genv OMP_NUM_THREADS 2 ./binary

omp_set_num_threads(2),但并没有变得更好... 有什么想法吗?

更新:omp_set_num_threads(2)运行mpiexec -n 1 ./binary时执行时间为4s,运行mpiexec -f machines -n 1 ./binary时执行时间为8s。

推荐答案

我建议先执行$echo OMP_NUM_THREADS,然后进一步查询程序中的线程数,以确保正在生成线程。为此,请使用omp_get_num_threads()函数。此外,如果你使用的是MacOS,那么这篇博文可以帮助你: https://whiteinkdotorg.wordpress.com/2014/07/09/installing-mpich-using-macports-on-mac-os-x/ 本文的后半部分将帮助您成功编译和运行混合程序。混合程序能否获得更好的性能在很大程度上取决于对资源的争夺。过度使用锁、障碍--会进一步减慢程序的运行速度。如果你把你的代码张贴在这里,让其他人查看并真正帮助你,那就太好了。

这篇关于MPI OpenMp混合的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆