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 条
  • [21] High-level programming in MPI
    Gropp, WD
    Lusk, E
    RECENT ADVANCES IN PARALLEL VIRTUAL MACHINE AND MESSAGE PASSING INTERFACE, 2003, 2840 : 27 - 27
  • [22] High-Level Logic Programming
    Osorio, M
    Zacarias, F
    FOUNDATIONS OF INFORMATION AND KNOWLEDGE SYSTEMS, 2000, 1762 : 226 - 240
  • [23] HIGH-LEVEL PROGRAMMING LANGUAGES
    BARNETT, GO
    GREENES, RA
    COMPUTERS AND BIOMEDICAL RESEARCH, 1970, 3 (05): : 488 - &
  • [24] Programming the Web with high-level programming languages
    Graunke, P
    Krishnamurthi, S
    Van der Hoeven, S
    Felleisen, M
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2001, 2028 : 122 - 136
  • [25] OCAL: An Abstraction for Host-Code Programming with OpenCL and CUDA
    Rasch, Ari
    Wrodarczyk, Martin
    Schulze, Richard
    Gorlatch, Sergei
    2018 IEEE 24TH INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS (ICPADS 2018), 2018, : 408 - 416
  • [26] High-Level Manipulation of OpenCL-Based Subvectors and Submatrices
    Rupp, Karl
    PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE, ICCS 2012, 2012, 9 : 1857 - 1866
  • [27] An FPGA Memory Hierarchy for High-level Synthesized OpenCL Kernels
    Tseng, Hsiang-Yu
    Liu, Ssu-Ting
    Wang, Sheng-De
    2015 IEEE 17TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING AND COMMUNICATIONS, 2015 IEEE 7TH INTERNATIONAL SYMPOSIUM ON CYBERSPACE SAFETY AND SECURITY, AND 2015 IEEE 12TH INTERNATIONAL CONFERENCE ON EMBEDDED SOFTWARE AND SYSTEMS (ICESS), 2015, : 1719 - 1724
  • [28] GSParLib: A multi-level programming interface unifying OpenCL and CUDA for expressing stream and data parallelism
    Rockenbach, Dinei A.
    Araujo, Gabriell
    Griebler, Dalvan
    Fernandes, Luiz Gustavo
    COMPUTER STANDARDS & INTERFACES, 2025, 92
  • [29] Alchemy: Distributed financial quantitative analysis system with high-level programming model
    Gu, Rong
    Zhang, Zhixiang
    Xu, Zhihao
    Wang, Zhaokang
    Zhang, Kai
    Yuan, Chunfeng
    Huang, Yihua
    SOFTWARE-PRACTICE & EXPERIENCE, 2021, 51 (08): : 1676 - 1699
  • [30] Distributed Data-Parallel Computing Using a High-Level Programming Language
    Isard, Michael
    Yu, Yuan
    ACM SIGMOD/PODS 2009 CONFERENCE, 2009, : 987 - 994