JCL: An OpenCL Programming Toolkit for Heterogeneous Computing

  • Tyng-Yeu Liang
  • Yu-Jie Lin
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7861)


In this paper, we propose a new OpenCL toolkit called JCL for heterogeneous clusters. Using this toolkit, users can make use of multiple remote heterogeneous processors including CPUs and GPUs for the execution of their OpenCL programs. Since load balance is an important issue for the performance of the user programs executed by heterogeneous processors, the proposed toolkit provides users with a set of load-balancing functions to automatically adjust the amount of data assigned to each processor according to processor’s computation power. We have evaluated the performance of the proposed toolkit in this paper. Our experimental result shows that the proposed toolkit really can enable the test programs to effectively exploit heterogeneous processors for enhancing their execution performance.


heterogeneous cluster computing GPU OpenCL load balance 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Owens, J.D., Luebke, D., Govindaraju, N., Harris, M., Krüger, J., Lefohn, A.E., Purcell, T.J.: A Survey of General-Purpose Computation on Graphics Hardware. Computer Graphics Forum, 80–113 (2007)Google Scholar
  2. 2.
  3. 3.
    Buck, I., Foley, T., Horn, D., Sugerman, J., Fatahalian, K., Houston, M., Hanrahan, P.: Brook for GPUs: Stream Computing on Graphics Hardware. SIGGRAPH (2004)Google Scholar
  4. 4.
    Quinn, M.J.: Parallel Programming in C with MPI and OpenMP. McGraw-Hill (2004)Google Scholar
  5. 5.
    Buttlar, D., Farrell, J., Nichols, B.: PThreads Program Programing. O’Reilly Media (1996)Google Scholar
  6. 6.
    Khronos OpenCL Working Group, The OpenCL Specification (2011),
  7. 7.
    Kurzak, J., Buttari, A.: Introduction to Programming High Performance Applications on the CELL Broadband Engine. In: 15th IEEE Symposium on High-Performance Interconnects, p. 11 (2007)Google Scholar
  8. 8.
    Altera Corporation, Implementing FPGA Design with the OpenCL Standard (2011),
  9. 9.
    The MPI Forum, MPI: A Message Passing Interface. In: Proceedings of Super Computing, pp. 878–883 (1993)Google Scholar
  10. 10.
    Xue, M., Zhu, C.: The Socket Programming and Software Design for Communication Based on Client/Server. In: Proceedings of the 2009 Pacific-Asia Conference on Circuits, Communications and Systems, pp. 775–777 (2009)Google Scholar
  11. 11.
    Duato, J., Peña, A.J., Silla, F., Mayo, R., Quintana-Ort́, E.S.: Modeling the CUDA remote Virtualization Behaviors in High Performance Networks. In: First Workshop on Language, Compiler, and Architecture Support for GPGPU (2010)Google Scholar
  12. 12.
    Shi, L., Chen, H., Sun, J.: vCUDA: GPU accelerated high performance computing in virtual machines. In: International Parallel and Distributed Processing Symposium, pp. 1–11 (2009)Google Scholar
  13. 13.
    Aoki, R., Oikawa, S., Tsuchiyama, R., Nakamura, T.: Hybrid OpenCL: Connecting Different OpenCL Implementations over Network. In: 10th IEEE International Conference on Computer and Information Technology, pp. 2729–2735 (2010)Google Scholar
  14. 14.
    Barak, A., Shiloh, A.: The Virtual OpenCL (VCL) Cluster Platform. In: Proc. Intel European Research & Innovation Conf., Leixlip, p. 196 (October 2011)Google Scholar
  15. 15.
    Vecchiola, C., Pandey, S., Buyya, R.: High-Performance Cloud Computing: A View of Scientific Applications. In: 10th International Symposium on Pervasive Systems, Algorithms, and Networks (ISPAN), pp. 4–16 (2009)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Tyng-Yeu Liang
    • 1
  • Yu-Jie Lin
    • 1
  1. 1.Department of Electrical EngineeringNational Kaohsiung University of Applied SciencesTaiwan

Personalised recommendations