不同主机上的OpenMP程序 [英] OpenMP program on different hosts

查看:97
本文介绍了不同主机上的OpenMP程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否可以在多个主机上运行OpenMP程序.到目前为止,我只听说过可以在多线程上执行但所有程序都在同一台物理计算机上执行的程序.是否可以在两个(或更多)客户端上执行程序?我不想使用MPI.

I want to know if it would be possible to run an OpenMP program on multiple hosts. So far I only heard of programs that can be executed on multiple thread but all within the same physical computer. Is it possible to execute a program on two (or more) clients? I don't want to use MPI.

推荐答案

是的,可以在分布式系统上运行OpenMP程序,但是我怀疑它是否在周围每个用户的能力范围之内. ScaleMP提供了vSMP-一种昂贵的商业虚拟机管理程序软件,该软件可以使它在许多联网主机上创建虚拟NUMA计算机,然后在此VM内运行常规OS(Linux或Windows).它需要快速的网络互连(例如InfiniBand)和专用主机(因为它在常规OS下作为虚拟机监控程序运行).我们这里有一个可运行的vSMP集群,它可以运行未经修改的OpenMP应用程序,但是性能在很大程度上取决于数据层次结构和访问模式.

Yes, it is possible to run OpenMP programs on a distributed system, but I doubt it is within the reach of every user around. ScaleMP offers vSMP - an expensive commercial hypervisor software that allows one to create a virtual NUMA machine on top of many networked hosts, then run a regular OS (Linux or Windows) inside this VM. It requires a fast network interconnect (e.g. InfiniBand) and dedicated hosts (since it runs as a hypervisor beneath the normal OS). We have an operational vSMP cluster here and it runs unmodified OpenMP applications, but performance is strongly dependent on data hierarchy and access patterns.

NICTA过去曾开发过类似的名为vNUMA的SSI虚拟机管理程序,但开发也停止了.除了他们的解决方案是特定于IA64之外(IA64是Intel Itanium,不要误以为Intel64,这是他们当前的x86 CPU).

NICTA used to develop similar SSI hypervisor named vNUMA, but development also stopped. Besides their solution was IA64-specific (IA64 is Intel Itanium, not to be mistaken with Intel64, which is their current generation of x86 CPUs).

英特尔曾经开发过集群OpenMP(ClOMP;不要误以为将OpenMP支持带给Clang的类似名称的项目),但由于客户普遍缺乏兴趣并且案例少于预期,因此被放弃了"好处"(摘自此处). ClOMP是Intel对OpenMP的扩展,它内置于Intel编译器套件中,例如您不能将其与GCC一起使用(此请求为GCC启动ClOMP开发已在边缘).如果您可以访问旧版本的Intel编译器(从9.1到11.1版本),则必须获得(试用)ClOMP许可证,鉴于该产品已失效并且旧(试用)许可证已经存在,这可能几乎是不可能的.已到期.再从12.0版开始,英特尔编译器不再支持ClOMP.

Intel used to develop Cluster OpenMP (ClOMP; not to be mistaken with the similarly named project to bring OpenMP support to Clang), but it was abandoned due to "general lack of interest among customers and fewer cases than expected where it showed a benefit" (from here). ClOMP was an Intel extension to OpenMP and it was built into the Intel compiler suite, e.g. you couldn't use it with GCC (this request to start ClOMP development for GCC went in the limbo). If you have access to old versions of Intel compilers (versions from 9.1 to 11.1), you would have to obtain a (trial) ClOMP license, which might be next to impossible given that the product is dead and old (trial) licenses have already expired. Then again, starting with version 12.0, Intel compilers no longer support ClOMP.

还存在其他研究项目(仅搜索分布式共享内存"),但只有vSMP(ScaleMP解决方案)对于生产HPC环境而言似乎已经足够成熟(并相应定价).似乎现在大多数努力都转而用于协数组语言(Co-Array Fortran,Unified Parallel C等)的开发.我建议您看看 Berkeley UPC 或花一些时间来学习MPI,因为它多年来肯定不会消失来.

Other research projects exist (just search for "distributed shared memory"), but only vSMP (the ScaleMP solution) seems to be mature enough for production HPC environments (and it's priced accordingly). Seems like most efforts now go into development of co-array languages (Co-Array Fortran, Unified Parallel C, etc.) instead. I would suggest that you have a look at Berkeley UPC or invest some time in learning MPI as it is definitely not going away in the years to come.

这篇关于不同主机上的OpenMP程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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