我在群集上使用openmp。当我使用具有所需级别的线程支持的MPI_INIT_THREAD 作为MPI_THREAD_MULTIPLE时,提供的级别是支持仅为2.我不知道,我是在做错误还是缺少编译器标志。在这个集群上,可以使用mpi,openmp等。
在我的带有mpich2的ubuntu笔记本电脑上,我提供的支持级别为3,代码相同。但是,我需要使用群集进行研究。我的程序是C ++。
如果我需要改变什么,请告诉我。谢谢。如果我需要提供更多信息,请告诉我。
答案 0 :(得分:4)
在大多数当前的Cray机器上,您可以通过设置环境变量来启用所需的MPI_THREAD_MULTIPLE
MPICH_MAX_THREAD_SAFETY=multiple
对于Cray XT4,您必须加载一个模块才能启用它(它将替换默认的MPI库);我再也无法访问XT4了,所以我不记得该模块的名称。