PoCL-Remote Allows OpenCL To Be Transparently Used Across Networked Systems
PoCL began as an open-source project providing a CPU-based OpenCL implementation and over the years has added support for various LLVM back-ends such as for targeting AMD HSA, Intel Level Zero, and NVIDIA CUDA/PTX with its OpenCL implementation. The latest back-end merged ahead of Portable Computing Language 5.0 is a remote back-end that allows for OpenCL codes to be transparently utilized on networked systems for distributed computing.
PoCL's new remote back-end with the new networked daemon allows for OpenCL distributed computing that can work with pure OpenCL code and doesn't rely on MPI or other specialized interfaces. This PoCL remote implementation allows for making use of OpenCL on remote, networked systems regardless of the host OpenCL driver on those platforms -- which could be a PoCL driver or another hardware OpenCL driver.
The PoCL daemon can run on any system with TCP/IP and an OpenCL implementation present. This OpenCL support has been successfully tested already with a range of codebases, including advanced OpenCL software like FluidX3D.
Of course, there is the known limitation/overhead of transferring buffers over the network being costly and depending upon the OpenCl code-base that network overhead may be a significant impairment. The network communication is also not encrypted or otherwise secured, thus intended for this remote OpenCL support just to be used on local area networks. In any event this is a fascinating PoCL back-end and will surely lead to some nifty use-cases for OpenCL in a distributed computing world.
More details on this PoCL remote back-end via PortableCL.org. The PoCL remote back-end has been merged ahead of the upcoming PoCL 5.0 release. Very interesting work by the talented folks at the Customized Parallel Computing group at Tampere University.
PoCL's new remote back-end with the new networked daemon allows for OpenCL distributed computing that can work with pure OpenCL code and doesn't rely on MPI or other specialized interfaces. This PoCL remote implementation allows for making use of OpenCL on remote, networked systems regardless of the host OpenCL driver on those platforms -- which could be a PoCL driver or another hardware OpenCL driver.
The PoCL daemon can run on any system with TCP/IP and an OpenCL implementation present. This OpenCL support has been successfully tested already with a range of codebases, including advanced OpenCL software like FluidX3D.
Of course, there is the known limitation/overhead of transferring buffers over the network being costly and depending upon the OpenCl code-base that network overhead may be a significant impairment. The network communication is also not encrypted or otherwise secured, thus intended for this remote OpenCL support just to be used on local area networks. In any event this is a fascinating PoCL back-end and will surely lead to some nifty use-cases for OpenCL in a distributed computing world.
More details on this PoCL remote back-end via PortableCL.org. The PoCL remote back-end has been merged ahead of the upcoming PoCL 5.0 release. Very interesting work by the talented folks at the Customized Parallel Computing group at Tampere University.
12 Comments