Parallel processing 可以在多台计算机上使用OpenCL吗?

Parallel processing 可以在多台计算机上使用OpenCL吗?,parallel-processing,cluster-computing,opencl,distributed-computing,grid-computing,Parallel Processing,Cluster Computing,Opencl,Distributed Computing,Grid Computing,据我所知,答案是否定的。OpenCL是为多核系统设计的 但是,有没有办法在多台计算机上使用OpenCL(每台计算机都是一个多核系统)?如果没有,是否有其他工具、框架。。。需要吗 我读了一些关于分布式计算、集群计算、网格计算的文章。。。但我找不到满意的答案 如有任何意见,将不胜感激 谢谢:)有两个框架用于此目的:和。这两个包都允许您透明地将远程计算机作为本地设备使用。不幸的是,VirtualCL只能作为没有源代码的预编译二进制文件提供,并且CLara不再积极开发。SnuCL使用MPI和OpenCL

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

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

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

如有任何意见,将不胜感激


谢谢:)

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

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

它是开源的。看见
而且

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

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

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

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


还有一个以上未提及的解决方案:


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

OpenCL并不是专门为任何系统设计的,OpenCL的强大之处在于抽象底层硬件层,而且OpenCL运行在每个功能强大的OpenCL接口上,这意味着作为多核,它根本不是一个要求。谢谢你的评论。我问这个问题是因为我想知道一种方法,除了我们手动将问题分解成子问题,然后在不同的计算机上进行计算。我忘记了问题中的这个细节:)只是作为补充,因为问题已经得到了回答。大多数人在跨多台计算机执行OpenCL时会同时使用MPI+OpenCL,但这不仅仅是使用OpenCL。哦,欢迎任何想法:)你能更具体一点吗@KLee1@Tiana987642人们只需使用MPI在设备之间手动通信,然后使用OpenCL在每个设备上执行计算。您必须编写所有负载平衡之类的内容,而不是自己编写,因此这可能非常困难。这是超级计算/学术界最常做的事情,不管怎样,他们在试验这些东西。谢谢:顺便问一下,如果你知道的话,CUDA有没有类似的框架?我觉得我找到了答案。