英特尔集群OpenMP的类比

时间:2010-03-03 09:07:10

标签: openmp shared-memory cluster-computing distributed-system

是否有Intel Cluster OpenMP的模拟?该库在分布式内存机器(如以太网连接的PC集群)上运行时模拟共享内存机器(如SMP或NUMA)。

该库允许直接在群集上启动openmp程序。

我搜索

  • 库,允许多线程程序在分布式集群上运行
  • 或库(替代例如libgomp),允许OpenMP程序在分布式集群上运行
  • 或编译器,除英特尔C ++外,还能够从openmp程序生成集群代码

1 个答案:

答案 0 :(得分:3)

您要搜索的关键字是“分布式共享内存”;这个主题有一个Wikipedia page。成为openMOSIX的MOSIX,现在正作为LinuxPMI的一部分开发,是我所知道的最接近的东西;但我对当前的LinuxPMI项目没有多少经验。

您需要注意的一件事是,这些系统中没有一个能够在性能方面表现得特别好。 (也许是一种更乐观的方式,说这是开发人员对这些事情起作用的致敬)。您不仅可以抽象出访问节点内存与网络上某些其他节点上的内存非常不同的事实。即使快速制作本地存储系统也很困难,并且需要大量硬件;你不能只希望一点点软件会隐藏你现在通过网络做事的事实。

当您考虑到您可能想要运行的OpenMP程序几乎总是要写入假设内存访问是本地的并因此便宜时,性能分支尤其重要,因为,这就是OpenMP的用途。当您谈论访问公共缓存行的不同套接字时,虚假共享已经够糟糕了 - 网络中基于页面的虚假共享非常灾难。

现在,很可能你有一个非常简单的程序,只有很少的实际共享状态,而分布式共享内存系统也不会那么糟糕 - 但在这种情况下,我必须认为你是从长远来看,只需将问题从基于共享内存的模型(如OpenMP)转移到在集群环境中无论如何都能更好地运行的东西,这样做会更好。