Scheduling processing of real-time data streams on heterogeneous multi-GPU systems

Scheduling processing of real-time data streams on heterogeneous multi-GPU systems
复制标题

异构多GPU系统上实时数据流的调度处理

DOI:
10.1145/2367589.2367596
复制
发表时间:
2012
期刊:
2011 International Conference on High Performance Computing & Simulation
影响因子:
--
通讯作者:
A. Mendelson
A. Mendelson
中科院分区:
--
文献类型:
--
作者:
Uri Verner;A. Schuster;M. Silberstein;A. Mendelson

文献摘要

被引文献

相似文献

处理大量数据流是现代计算机系统中的常见问题,被称为“在线大数据问题”。向处理添加硬实时约束使得调度问题成为本文旨在解决的非常具有挑战性的任务。在这样的环境中,每个数据流都由(不同的)应用程序操作,并且每个数据(数据包)需要在生成后的已知期限内进行处理。这项工作假设一个中央计算引擎由一组 CPU 和一组 GPU 组成。系统接收多个传入流的配置并在CPU端执行调度程序。调度程序决定每个数据流的操作位置(在 CPU 上或在其中一个 GPU 上)以及执行顺序,以确保不会错过最后期限。即使对于需要整个系统(CPU 和 GPU)高利用率的工作负载,我们的调度程序也能找到这样的调度。 本文重点讨论所有 CPU 共享主内存并由单个操作系统(和调度程序)控制的环境。该系统使用一组独立显卡,每个显卡都有自己的专用主内存。不同的内存区域不共享信息,并且通过使用显式内存复制操作来保持一致性。本文提出了一种用于分发数据和调度应用程序的新算法,该算法可实现整个系统(CPU 和 GPU)的高利用率,同时生成满足硬实时约束的调度表。 我们通过在数千个流上使用 AES-CBC 加密内核来评估我们新提出的算法,并具有实际的速率和截止日期分布。该论文表明,在具有 CPU 和两个 GPU 卡的系统上,我们当前的框架比类似的单 GPU 系统每时间单位处理的数据量多出 87%。
Processing vast numbers of data streams is a common problem in modern computer systems and is known as the "online big data problem." Adding hard real-time constraints to the processing makes the scheduling problem a very challenging task that this paper aims to address. In such an environment, each data stream is manipulated by a (different) application and each datum (data packet) needs to be processed within a known deadline from the time it was generated. This work assumes a central compute engine which consists of a set of CPUs and a set of GPUs. The system receives a configuration of multiple incoming streams and executes a scheduler on the CPU side. The scheduler decides where each data stream will be manipulated (on the CPUs or on one of the GPUs), and the order of execution, in a way that guarantees that no deadlines will be missed. Our scheduler finds such schedules even for workloads that require high utilization of the entire system (CPUs and GPUs). This paper focuses on an environment where all CPUs share a main memory, and are controlled by a single operating system (and a scheduler). The system uses a set of discrete graphic cards, each with its own private main memory. Different memory regions do not share information, and coherency is maintained by the use of explicit memory-copy operations. The paper presents a new algorithm for distributing data and scheduling applications that achieves high utilization of the entire system (CPUs and GPUs), while producing schedules that meet hard real-time constraints. We evaluate our new proposed algorithm by using the AES-CBC encryption kernel on thousands of streams with realistic distribution of rates and deadlines. The paper shows that on a system with a CPU and two GPU cards, our current framework allows up to 87% more data to be processed per time unit than a similar single-GPU system.