8

据我所知,答案是否定的。OpenCL 专为多核系统而设计。

但是,有没有办法在多台计算机上使用 OpenCL(每台计算机都是一个多核系统)?如果没有,是否需要任何其他工具、框架……?

我读了一些关于分布式计算、集群计算、网格计算的文章……但我找不到满意的答案

任何想法将不胜感激

谢谢 :)

4

5 回答 5

8

为此目的有两个框架:VirtualCLCLara。这两个包都让您可以透明地使用远程机器作为本地设备。不幸的是,VirtualCL 只能作为没有源代码的预编译二进制文件提供,并且 CLara 不再积极开发。

于 2012-12-20T10:33:04.350 回答
4

SnuCL 使用 MPI 和 OpenCL 通过 OpenCL API 透明地使用集群。它还添加了一些 OpenCL 扩展来有效地处理内存对象。

它是开源的。见http://aces.snu.ac.kr/Center_for_Manycore_Programming/SnuCL.htmlhttp://tbex.twbbs.org/~tbex/pad/SunCL.pdf

于 2013-02-03T23:17:13.627 回答
3

还有一个上面没有提到的解决方案:dOpenCL

“dOpenCL(分布式 OpenCL)是一种使用加速器对分布式异构系统进行编程的新颖、统一的方法。它将分布式系统的节点透明地集成到单个 OpenCL 平台中。因此,dOpenCL 允许用户在异构中运行未经修改的现有 OpenCL 应用程序分布式环境。此外,它扩展了 OpenCL 编程模型以处理分布式系统的各个节点。

于 2014-11-05T23:24:41.733 回答
1

我已经使用 VirtualCL 形成了一个 GPU 集群,其中 3 个 AMD GPU 作为计算节点,我的 ubuntu intel 桌面作为代理节点运行。我能够启动代理和计算节点。

于 2014-02-14T09:19:05.310 回答
1

除了其他海报已经提到的各种选项之外,这里还有两个您可能感兴趣的开源项目:

  • ocland(处于测试阶段):提供服务器应用程序和 ICD 实现,客户端可以使用它们以透明的方式利用支持 OpenCL 的本地和远程设备。许可证是 GPLv3。

  • Brown Deer Technnology 的COPRTHR SDK(当前版本 1.6):此 SDK 为 x86_64、ARM、Epiphany 和 Intel MIC 提供开源 (GPLv3) OpenCL 实施,包括“计算层远程过程调用”实施。这包括一个支持 rpc ( ) 的客户端 OpenCL 实现libclrpc和一个服务器应用程序 ( clrpcd)。该网站没有提及太多,但文档包含有关此 CLRPC 实现的部分。

于 2014-02-14T18:59:02.153 回答