dOCAL: high-level distributed programming with OpenCL and CUDA

被引:6
|
作者
Rasch, Ari [1 ]
Bigge, Julian [1 ]
Wrodarczyk, Martin [1 ]
Schulze, Richard [1 ]
Gorlatch, Sergei [1 ]
机构
[1] Univ Munster, Dept Math & Comp Sci, Munster, Germany
来源
JOURNAL OF SUPERCOMPUTING | 2020年 / 76卷 / 07期
关键词
OpenCL; CUDA; Host code; Distributed system; Heterogenous system; Interoperability; Data transfer optimization;
D O I
10.1007/s11227-019-02829-2
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
In the state-of-the-art parallel programming approaches OpenCL and CUDA, so-called host code is required for program's execution. Efficiently implementing host code is often a cumbersome task, especially when executing OpenCL and CUDA programs on systems with multiple nodes, each comprising different devices, e.g., multi-core CPU and graphics processing units; the programmer is responsible for explicitly managing node's and device's memory, synchronizing computations with data transfers between devices of potentially different nodes and for optimizing data transfers between devices' memories and nodes' main memories, e.g., by using pinned main memory for accelerating data transfers and overlapping the transfers with computations. We develop distributed OpenCL/CUDA abstraction layer (dOCAL)-a novel high-level C++ library that simplifies the development of host code. dOCAL combines major advantages over the state-of-the-art high-level approaches: (1) it simplifies implementing both OpenCL and CUDA host code by providing a simple-to-use, high-level abstraction API; (2) it supports executing arbitrary OpenCL and CUDA programs; (3) it allows conveniently targeting the devices of different nodes by automatically managing node-to-node communications; (4) it simplifies implementing data transfer optimizations by providing different, specially allocated memory regions, e.g., pinned main memory for overlapping data transfers with computations; (5) it optimizes memory management by automatically avoiding unnecessary data transfers; (6) it enables interoperability between OpenCL and CUDA host code for systems with devices from different vendors. Our experiments show that dOCAL significantly simplifies the development of host code for heterogeneous and distributed systems, with a low runtime overhead.
引用
收藏
页码:5117 / 5138
页数:22
相关论文
共 50 条
  • [41] SkelCL: a high-level extension of OpenCL for multi-GPU systems
    Michel Steuwer
    Sergei Gorlatch
    The Journal of Supercomputing, 2014, 69 : 25 - 33
  • [42] ProfCounter: Line-Level Cycle Counter for Xilinx OpenCL High-Level Synthesis
    Perina, Andre Bannwart
    Becker, Juergen
    Bonato, Vanderlei
    2019 26TH IEEE INTERNATIONAL CONFERENCE ON ELECTRONICS, CIRCUITS AND SYSTEMS (ICECS), 2019, : 618 - 621
  • [43] Tight Coupling of R and Distributed Linear Algebra for High-Level Programming with Big Data
    Schmidt, Drew
    Ostrouchov, George
    Chen, Wei-Chen
    Patel, Pragneshkumar
    2012 SC COMPANION: HIGH PERFORMANCE COMPUTING, NETWORKING, STORAGE AND ANALYSIS (SCC), 2012, : 811 - 815
  • [44] Efficient High-Level Abstractions for Web Programming
    Richard-Foy, Julien
    Barais, Olivier
    Jezequel, Jean-Marc
    ACM SIGPLAN NOTICES, 2014, 49 (03) : 53 - 60
  • [45] High-Level Multicore Programming with XJava']Java
    Otto, Frank
    Pankratius, Victor
    Tichy, Walter F.
    2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, COMPANION VOLUME, 2009, : 319 - 322
  • [46] HIGH-LEVEL LANGUAGES EASE MICROCOMPUTER PROGRAMMING
    SAUNDERS, JL
    LEWIS, LE
    ELECTRONICS, 1978, 51 (16): : 115 - 118
  • [47] ADDING GRAPHICS TO A HIGH-LEVEL PROGRAMMING LANGUAGE
    JEFFERY, CL
    GRISWOLD, RE
    TOWNSEND, GM
    SOFTWARE-PRACTICE & EXPERIENCE, 1995, 25 (06): : 637 - 655
  • [48] High-level parallel programming in a heterogeneous world
    Daniel Garcia, J.
    Llanos, Diego R.
    CONCURRENCY AND COMPUTATION-PRACTICE & EXPERIENCE, 2019, 31 (05):
  • [49] EFFICIENT HIGH-LEVEL PROGRAMMING ON THE AMT DAP
    FLANDERS, PM
    HELLIER, RL
    JENKINS, HD
    PAVELIN, CJ
    VANDENBERGHE, S
    PROCEEDINGS OF THE IEEE, 1991, 79 (04) : 524 - 536
  • [50] MICROCOMPUTER PROGRAMMING - CASE FOR HIGH-LEVEL LANGUAGE
    ROSENFELD, P
    INSTRUMENTS & CONTROL SYSTEMS, 1977, 50 (09): : 83 - 86