<p>We present SkePU-Streaming, a two-layer high-level programming framework for specifying complex pipelines composed of portable multi-backend stream processing tasks, each expressed by algorithmic skeletons or user-provided implementations, and its deployment toolchain for distributed heterogeneous parallel systems. Pipeline tasks can have multiple implementation variants to more flexibly exploit the resources of heterogeneous nodes; the convenient expression of multi-variant tasks is achieved by integrating the high-level C++-based skeleton programming framework <i>SkePU</i> with its multiple backends as the main method for portable programming of the stream-processing tasks. Concretely, SkePU-Streaming adds an abstraction layer for pipeline workflow specifications atop SkePU-based task specifications. It extends the SkePU data-container API with stream access operators for use within SkePU and other C++ task code. We present the SkePU-Streaming design and its implementation in a deployment framework for distributed heterogeneous parallel systems, and demonstrate its use with two different video processing applications.</p>

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

SkePU-Streaming: Distributed Pipelining of Portable Data-Parallel Skeleton Computations for the Heterogeneous Edge-Cloud Continuum

  • August Svensson,
  • Fabio Crugnola,
  • August Ernstsson,
  • Sajad Khosravi,
  • Sebastian Litzinger,
  • Alexander Lindskog,
  • Christoph Kessler

摘要

We present SkePU-Streaming, a two-layer high-level programming framework for specifying complex pipelines composed of portable multi-backend stream processing tasks, each expressed by algorithmic skeletons or user-provided implementations, and its deployment toolchain for distributed heterogeneous parallel systems. Pipeline tasks can have multiple implementation variants to more flexibly exploit the resources of heterogeneous nodes; the convenient expression of multi-variant tasks is achieved by integrating the high-level C++-based skeleton programming framework SkePU with its multiple backends as the main method for portable programming of the stream-processing tasks. Concretely, SkePU-Streaming adds an abstraction layer for pipeline workflow specifications atop SkePU-based task specifications. It extends the SkePU data-container API with stream access operators for use within SkePU and other C++ task code. We present the SkePU-Streaming design and its implementation in a deployment framework for distributed heterogeneous parallel systems, and demonstrate its use with two different video processing applications.