A High-Level Programming Approach for Distributed Systems with Accelerators

被引:0
|
作者
Steuwer, Michel [1 ]
Kegel, Philipp [1 ]
Gorlatch, Sergei [1 ]
机构
[1] Univ Munster, Dept Math & Comp Sci, Munster, Germany
关键词
GPU Computing; Multi-GPU Systems; Skeletons; SkelCL; dOpenCL;
D O I
10.3233/978-1-61499-125-0-430
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Application programming for modern heterogeneous systems which comprise multiple accelerators (multi-core CPUs and GPUs) is complex and error-prone. Popular approaches, like OpenCL and CUDA, are low-level and offer no support for the two most complicated issues: 1) programming multiple GPUs within a stand-alone computer, and 2) managing distributed systems that integrate several such computers. In particular, distributed systems require application developers to use a mix of different programming models, e. g., MPI together with OpenCL or CUDA. We propose a uniform approach based on OpenCL for programming both stand-alone and distributed systems with GPUs. The approach implementation is based on two parts: 1) the SkelCL library for high-level application programming on heterogeneous stand-alone computers with multi-core CPUs and multiple GPUs, and 2) the dOpenCL middleware for transparent execution of OpenCL programs on several stand-alone computers connected over a network. Both SkelCL and dOpenCL are built on top of the OpenCL standard which ensures their high portability across different kinds of processors and GPUs. The dOpenCL middleware extends OpenCL, such that arbitrary computing devices (multi-core CPUs and GPUs) in a distributed system can be used within a single application, with data and program code moved to these devices transparently. The SkelCL library offers a set of pre-implemented patterns (skeletons) of parallel computation and communication which greatly simplify programming for multi-GPU systems. The library also provides an abstract vector data type and a high-level data (re) distribution mechanism to shield the programmer from the low-level data transfers between a system's main memory and multiple GPUs. This paper describes dOpenCL and SkelCL and illustrates how they are used to simplify programming of heterogeneous distributed systems with accelerators.
引用
收藏
页码:430 / 441
页数:12
相关论文
共 50 条
  • [1] NIL: A high-level language for distributed systems programming
    Parr, FN
    Strom, RE
    [J]. IBM SYSTEMS JOURNAL, 1999, 38 (2-3) : 181 - 197
  • [2] NIL - A HIGH-LEVEL LANGUAGE FOR DISTRIBUTED SYSTEMS PROGRAMMING
    PARR, FN
    STROM, RE
    [J]. IBM SYSTEMS JOURNAL, 1983, 22 (1-2) : 111 - 127
  • [3] NIL: A HIGH-LEVEL LANGUAGE FOR DISTRIBUTED SYSTEMS PROGRAMMING.
    Parr, Francis N.
    Strom, Robert E.
    [J]. 1600, (22): : 1 - 2
  • [4] HIGH-LEVEL PROGRAMMING FOR DISTRIBUTED COMPUTING
    FELDMAN, JA
    [J]. COMMUNICATIONS OF THE ACM, 1979, 22 (06) : 353 - 368
  • [5] A HIGH-LEVEL APPROACH TO PROGRAMMING A ROBOT
    WANG, NS
    DAVIES, BJ
    [J]. INTERNATIONAL JOURNAL OF MACHINE TOOLS & MANUFACTURE, 1987, 27 (01): : 57 - 63
  • [6] AN APPROACH TO HIGH-LEVEL DEBUGGING OF DISTRIBUTED SYSTEMS (PRELIMINARY DRAFT)
    BATES, P
    WILEDEN, JC
    [J]. SIGPLAN NOTICES, 1983, 18 (08): : 107 - 111
  • [7] HIGH-LEVEL DEBUGGING OF DISTRIBUTED SYSTEMS - THE BEHAVIORAL ABSTRACTION APPROACH
    BATES, PC
    WILEDEN, JC
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 1983, 3 (04) : 255 - 264
  • [8] A KNOWLEDGE-BASED APPROACH FOR HIGH-LEVEL PROGRAMMING OF CONCURRENT SYSTEMS
    SHEU, PCY
    [J]. JOURNAL OF SYSTEMS AND SOFTWARE, 1990, 11 (01) : 21 - 29
  • [9] Towards high-level programming for distributed problem solving
    Kelly, Ryan F.
    Pearce, Adrian R.
    [J]. 2006 IEEE/WIC/ACM INTERNATIONAL CONFERENCE ON INTELLIGENT AGENT TECHNOLOGY, PROCEEDINGS, 2006, : 490 - +
  • [10] dOCAL: high-level distributed programming with OpenCL and CUDA
    Rasch, Ari
    Bigge, Julian
    Wrodarczyk, Martin
    Schulze, Richard
    Gorlatch, Sergei
    [J]. JOURNAL OF SUPERCOMPUTING, 2020, 76 (07): : 5117 - 5138