Data Streaming Processing Window Joined With Graphics Processing Units (GPUs)

Data Streaming Processing Window Joined With Graphics Processing Units (GPUs)

Shen Lu (University of South Florida, USA) and Richard S. Segall (Arkansas State University, USA)
Copyright: © 2021 |Pages: 22
DOI: 10.4018/978-1-7998-3479-3.ch043

Abstract

Big data is large-scale data and can be either discrete or continuous. This article entails research that discusses the continuous case of big data often called “data streaming.” More and more businesses will depend on being able to process and make decisions on streams of data. This article utilizes the algorithmic side of data stream processing often called “stream analytics” or “stream mining.” Data streaming Windows Join can be improved by using graphics processing unit (GPU) for higher performance computing. Data streams are generated by two independent threads: one thread can be used to generate Data Stream A, and the other thread can be used to generate Data Stream B. One would use a Windows Join thread to merge the two data streams, which is also the process of “Data Stream Window Join.” The Window Join process can be implemented in parallel that can efficiently improve the computing speed. Experiments are provided for Data Stream Window Joins using both static and dynamic data.
Chapter Preview
Top

Background

A Central Processing Unit (CPU) is the electronic circuitry within a computer that carries out the instructions of a computer program by performing the basic arithmetic, logical, control and input/output (I/O) operations specified by the instructions. The computer industry has used the term “central processing unit” at least since the early 1960s. Traditionally, the term “CPU” refers to a processor, more specifically to its processing unit and Control Unit (CU), distinguishing these core elements of a computer from external components such as main memory and I/O circuitry. (Wikipedia (2018e)).

A Graphics Processing Unit (GPU) is a specialized electronic circuit designed to rapidly manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobile phones, personal computers, workstations, and game consoles. Modern GPUs are very efficient at manipulating computer graphics and image processing, and their highly parallel structure makes them more efficient than general-purpose CPUs for algorithms where the processing of large blocks of data is done in parallel. In a personal computer, a GPU can be present on a video card, or it can be embedded on the motherboard or—in certain CPUs—on the CPU die. (Wikipedia (2018d).

Figure 1 below shows the highlights of comparisons between Central Processing Unit (CPU) versus Graphics Processing Unit (GPU). Note that a CPU has a low compute density and a GPU has a high compute density. A CPU has a low latency tolerance and a GPU has a high latency tolerance, where latency refers to a measure of the time delay required for information to travel across a network. A CPU has shallow pipelines in contrast to a GPU that has high throughput. Hence this article discusses experiments using GPUs that are extremely more efficient than the traditional CPU framework.

Figure 1.

Comparison of CPU (Central Processing Unit) vs. GPU (Graphics Processor Units (GPUs)

978-1-7998-3479-3.ch043.f01

Below is a table of highlights of research advances from 2002 to 2018 in data streaming related to the data streaming processing of Window Joins with Graphics Processing Units (GPUs) and topic of processing algorithms for data analysis of streaming data.

Key Terms in this Chapter

Sliding Windows: Define all possible intervals of equal duration and output aggregations based on actual event stream activity ( Basak et al., 2017 , p. 116).

Streaming Mining: Knowledge discovery from data streams ( Gama, 2010 ).

Hash Table (Hash Map): A data structure which implements an associative array abstract data type, a structure that can map keys to values. A hash table uses a hash function to compute an index into an array of buckets or slots, from which the desired value can be found ( Wikipedia, 2018c ).

ADWIN: Adaptive sliding window algorithm for change detection and value estimation with strong theoretical guarantees ( Gama, 2010 ).

Adaptive Streaming: Technique used in streaming multimedia over computer networks that works by detecting a user's bandwidth and CPU capacity in real time and adjusting the quality of the media stream accordingly ( Wikipedia, 2018a ).

CUDA: Is a parallel computing platform and application programming interface (API) model created by Nvidia. It allows software developers and software engineers to use a CUDA-enabled Graphics Processing Unit (GPU) for general purpose processing – an approach termed GPGPU (General-Purpose computing on Graphics Processing Units; Wikipedia, 2018b ).

Windows Join: Integrates two or more inputs or input-derived data sets, just as in SQL (Structured Query Language) but requires the data sources to be temporarily constrained to match the sources for a window of time ( Basak et al., 2017 , p.111).

Tumbling Windows: Intervals defined to group events for aggregation, and are windows that are contiguous and of equal duration ( Basak et al., 2017 , p. 113).

Graphics Processing Unit (GPU): A specialized computer processor, addresses the demands of real-time high-resolution 3D graphics compute-intensive tasks ( Wikipedia, 2018d ).

cudaMemcpyToSymbol: Used to copy bytes from the memory area pointed to by source to the memory area pointed to by offset bytes from the start of symbol.

Embarrassingly Parallel: Workload or problem (also called perfectly parallel or pleasingly parallel) is one where little or no effort is needed to separate the problem into a number of parallel tasks. This is often the case where there is little or no dependency or need for communication between those parallel tasks, or for results between them ( Wikipedia, 2018f ).

Data Stream: Continuous unbounded sequence of data values that arrive in time at a port on a system ( Govindaraju et al., 2005 , p. 613).

Hopping Windows: Group events for aggregation and are windows of equal duration but overlap at regular intervals ( Basak et al., 2017 , p. 115).

Streaming Data System: A non-hard real-time system that makes its data available at the moment a client application needs it ( Psaltis, 2017 , pp. 8-9).

Complete Chapter List

Search this Book:
Reset