DistributedCL is a middleware which enables transparent parallel processing on distributed GPUs. With the support of the DistributedCL middleware an application designed to use the OpenCL API can run in a distributed manner and transparently use remote GPUs without having to change or rebuild the code. The proposed architecture for the DistributedCL middleware is modular, with well-defined layers. A prototype was built according to the architecture, which considered various optimization points, including sending data in batches, network asynchronous communication and asynchronous request to the OpenCL API. The prototype was evaluated using available benchmarks and a specific benchmark, the CLBench, was developed to facilitate the evaluations according to the amount of processed data. The prototype presented good performance, higher when compared to similar proposals, which also consider transparent use of remote GPUs. The data size to be transmitted over the network was the major limiting factor.
['Andre Luiz Rocha Tupinamba', 'Alexandre Sztajnberg']
Transparent and Optimized Distributed Processing on GPUs