Possible to use OpenCL on multi-computers?
Asked Answered
G

5

8

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

But, is there any way to use OpenCL on multi-computers ( each computer is a multi-cores system ) ? If not, are any additional tools, frameworks... required?

I read some articles about Distributed computing, Cluster computing, Grid computing... but I can't find a satisfied answer

Any ideas will be appreciated

Thank you :)

Gutta answered 20/12, 2012 at 10:25 Comment(5)
OpenCL is not designed for any system in particular, the power of OpenCL is about abstracting the underlying hardware layer, also OpenCL runs on every capable OpenCL interface meaning that being multi-core it's not a requirement at all. google.com/#q=opencl+distributedTweezers
Thank for your comment. I ask this question because I want to know a way except we manually break the problem into subproblems and compute them in different computers. I forget this detail in the question :)Gutta
Just as an addition, since the question has already been answered. Most people when doing OpenCL across multiple computers will use MPI+OpenCL together, but this is using more than just OpenCL.Berndt
Oh, any ideas welcome :) Can you be more specific? @BerndtGutta
@Gutta People will just use MPI to manually communicate between devices and then perform computation on each device using OpenCL. You would have to write all the load balancing and what not by yourself, so it would likely be very difficult. This is most commonly done in SuperComputing/Academia when they are experimenting with those things anyway.Berndt
L
8

There are two frameworks for this purpose: VirtualCL and CLara. Both packages let you work transparently with remote machines as local devices. Unfortunately, VirtualCL is only available as pre-compiled binaries without sources and CLara is not actively developed anymore.

Leshia answered 20/12, 2012 at 10:33 Comment(2)
Perfect. Thank you :D By the way,if you know, is there any similar frameworks for CUDA ?Gutta
Well, I feel I found the answer. developer.nvidia.com/cluster-managementGutta
B
4

SnuCL uses MPI and OpenCL to transparently use the cluster through the OpenCL API. It also adds a few OpenCL extensions to effectively deal with the 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

Bastard answered 3/2, 2013 at 23:17 Comment(0)
I
3

There is one more solution not mentioned above: dOpenCL.

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

Infrared answered 5/11, 2014 at 23:24 Comment(0)
B
1

I have used VirtualCL to form a GPU cluster with 3 AMD GPU as compute node and my ubuntu intel desktop running as broker node. I was able to start both the broker and compute nodes.

Bogusz answered 14/2, 2014 at 9:19 Comment(0)
S
1

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

  • ocland (in beta stage): offers a server application and an ICD implementation that the clients can use to take advantage of local and remote devices that support OpenCL in a transparent fashion. The license is GPLv3.

  • COPRTHR SDK by Brown Deer Technnology (currently version 1.6): this SDK which offers an open source (GPLv3) OpenCL implementation for x86_64, ARM, Epiphany and Intel MIC includes a "Compute Layer Remote Procedure Call" implementation. This consists of a client-side OpenCL implementation that supports rpc (libclrpc) and a server application (clrpcd). The website doesn't mention much about it but the documentation contains a section about this CLRPC implementation.

Statis answered 14/2, 2014 at 18:59 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.