Can I use OpenCL on multiple computers?

As far as I know, the answer is no. OpenCL is designed for multi-core systems.

But is there a way to use OpenCL on multiple computers (each computer is a multi-core system)? If not, do you need any additional tools, framework ...?

I read several articles about distributed computing, cluster computing, grid computing ... but I can't find a satisfied answer

Any ideas would be appreciated.

Thanks:)

+7
source share
5 answers

There are two structures for this purpose: VirtualCL and CLara . Both packages allow you to work transparently with remote machines as local devices. Unfortunately, VirtualCL is only available as precompiled binaries without sources, and CLara is no longer actively developing.

+8
source

SnuCL uses MPI and OpenCL to transparently use the cluster through the OpenCL API. It also adds several OpenCL extensions for efficient use of memory objects.

It is open source. See http://aces.snu.ac.kr/Center_for_Manycore_Programming/SnuCL.html and http://tbex.twbbs.org/~tbex/pad/SunCL.pdf

+4
source

There is another solution not mentioned above: dOpenCL .

"dOpenCL (distributed OpenCL) is a new uniform approach to programming distributed heterogeneous systems with accelerators. It transparently integrates distributed system nodes into a single OpenCL platform. Thus, dOpenCL allows the user to run unmodified existing OpenCL applications in a heterogeneous distributed environment. In addition, it extends the OpenCL programming model to work with individual nodes of a distributed system. "

+3
source

I used VirtualCL to create a GPU cluster with 3 AMD GPUs as a compute node and my Ubuntu desktop working as a node broker. I was able to run both a broker and calculate nodes.

+1
source

In addition to the various options already mentioned by other posters, here are two more open source projects that may interest you:

  • ocland (beta): Offers a server application and an ICD implementation that clients can use to use local and remote devices that support OpenCL in a transparent way. License - GPLv3.

  • Brown Deer COPRTHR SDK (currently version 1.6): This SDK, which offers an open source implementation of OpenCL (GPLv3) for x86_64, ARM, Epiphany, and Intel MIC, includes the implementation of Remote Procedure Call Invocation. This consists of an OpenCL client implementation that supports rpc ( libclrpc ) and a server application ( clrpcd ). The site does not mention much about this, but the documentation contains a section about this CLRPC implementation.

+1
source

All Articles