MPI OpenMp混合

时间:2015-01-27 22:15:49

标签: mpi cluster-computing 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),但它没有变得更好...... 有什么想法吗?

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

1 个答案:

答案 0 :(得分:0)

我建议首先进行$echo OMP_NUM_THREADS并进一步查询程序中的线程数,以确保生成线程。使用omp_get_num_threads()功能。此外,如果您使用的是MacOS,那么此博文可以提供帮助: https://whiteinkdotorg.wordpress.com/2014/07/09/installing-mpich-using-macports-on-mac-os-x/ 本文的后半部分将帮助您成功编译和运行混合程序。混合程序是否获得更好的性能取决于资源的争用。过度使用锁,障碍 - 可能会进一步降低程序的速度。如果您在此处发布代码供其他人查看并实际帮助您,那将会很棒。