2012-05-08 52 views
2

我在群集上使用openmp。当我使用MPI_INIT_THREAD与所需级别的线程支持MPI_THREAD_MULTIPLE时,提供的级别是支持只有2.我不知道,我是否犯了一些错误或缺少编译器标志。在这个集群上,可以使用mpi,openmp等。mpi:MPI_INIT_THREAD提供的支持级别

在我用mpich2的ubuntu笔记本电脑上,我得到的支持级别为3,代码相同。但是,我需要使用该群集进行研究。我的程序是C++。

你能告诉我,如果我需要改变一些东西。谢谢。让我知道,如果我需要提供更多信息。

+1

你有什么mpi? – Anycorn

+0

我认为这是openmp,我使用aprun运行。在另一个集群上,它绝对是openmp,因为我亲自安装它。 – user984260

+1

aprun?它是否是cray机器? – Anycorn

回答

4

在最新的Cray机器,你可以通过设置环境变量

MPICH_MAX_THREAD_SAFETY=multiple 

对于克雷XT4启用所需MPI_THREAD_MULTIPLE,你必须加载模块来启用它(它会替换默认的MPI库) ;我再也无法访问XT4,所以我不记得模块的名称。

+0

谢谢,我很感激这个绊脚石。为什么这个记录很差?我没有在任何Cray文档中找到这个。有一个upvote。 –

+1

相关的Cray文档通常在手册页中。做一个“男人mpi”会给出很多有趣的信息。 – ipapadop