Easing the benchmarking of parallel stream processing on multi-cores

Bibliographic Details
Main Author: Garcia, Adriano Marques
Publication Date: 2023
Format: Doctoral thesis
Language: eng
Source: Biblioteca Digital de Teses e Dissertações da PUC_RS
Download full: https://tede2.pucrs.br/tede2/handle/tede/10884
Summary: In today’s fast-changing data-driven world, there is increasing demand for realtime/low-latency data processing. Stream processing is a technique that envisages processing data as it becomes available, enabling near real-time data processing. Stream processing applications must resort to parallelism techniques to speed up processing and to cope with processing large volumes of data. Although there are parallel programming interfaces (PPIs) that add several abstraction layers, parallelism in stream processing is still a difficult task, usually demanding expert knowledge to achieve desired performance levels. This generates a lot of research effort toward boosting parallel stream processing performance and making parallel programming more accessible. Typically, benchmarks are used to evaluate the PPIs and new solutions in this context. However, there are a number of limitations in existing benchmarks, including not addressing some categories of stream processing applications, few or no parameterization options, difficulty extending the benchmarks to other PPIs, lack of appropriate performance metrics, poor usability, only targeting JVM-based languages, and others. This work proposes a framework called SPBench for creating custom benchmarks and evaluating parallel stream processing. Our main goal is to ease the benchmarking process in parallel stream processing, including the creation, building, execution, tuning, and evaluating of the benchmarks. Therefore, this doctoral dissertation provides the following main scientific contributions: (I) A framework that simplifies the benchmarking of stream processing applications, providing an API and a command-line interface to simplify, reuse code, customize, extend, and evaluate diferente aspects or properties regarding parallel stream processing. (II) A parallel C++ benchmark suite for stream processing that includes real-world applications and the most state-of-theart Parallel Programming Interfaces (PPIs) in this context. (III) A comprehensive comparative study of the most popular PPIs leveraging C++ stream parallelism. (IV) Mechanisms for dynamic data stream frequency simulation in stream processing applications with a set of algorithms for generating the literature’s most commonly used data stream frequency patterns and an analysis of the data frequency impact on the performance of stream processing applications. (V) An analysis of the performance impact of micro-batch sizing on stream processing applications, including mechanisms for real-time and dynamic batching management, allowing users to adjust batch sizes on the fly either based on specific size targets or time intervals. We test the SPBench framework with five real-world applications of video/image processing, data compression, and fraud detection. We show the benefits of SPBench by using it in combination with PPIs to generate parallel stream processing benchmarks and conduct various analyses. Overall, the results showed that the high-level abstractions of PPIs can cause significant performance penalties when they hide fine-tuning mechanisms. In the data frequency experiments, the FastFlow PPI benefited more from varying frequency scenarios than the TBB in our test cases. Finally, the experimental results showed that the potential performance advantage of using micro-batches on multi-cores tends to show up only in specific scenarios.
id P_RS_c0d37fc6ba1cf5303e593b3a44d0d1be
oai_identifier_str oai:tede2.pucrs.br:tede/10884
network_acronym_str P_RS
network_name_str Biblioteca Digital de Teses e Dissertações da PUC_RS
repository_id_str
spelling Easing the benchmarking of parallel stream processing on multi-coresFacilitando a avaliacao do processamento paralelo de stream em arquiteturas multi-nucleoStream ProcessingFrameworkBenchmarkMulti-correProcessamento de FluxoFrameworkBenchmarkMulti-núcleoCIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAOIn today’s fast-changing data-driven world, there is increasing demand for realtime/low-latency data processing. Stream processing is a technique that envisages processing data as it becomes available, enabling near real-time data processing. Stream processing applications must resort to parallelism techniques to speed up processing and to cope with processing large volumes of data. Although there are parallel programming interfaces (PPIs) that add several abstraction layers, parallelism in stream processing is still a difficult task, usually demanding expert knowledge to achieve desired performance levels. This generates a lot of research effort toward boosting parallel stream processing performance and making parallel programming more accessible. Typically, benchmarks are used to evaluate the PPIs and new solutions in this context. However, there are a number of limitations in existing benchmarks, including not addressing some categories of stream processing applications, few or no parameterization options, difficulty extending the benchmarks to other PPIs, lack of appropriate performance metrics, poor usability, only targeting JVM-based languages, and others. This work proposes a framework called SPBench for creating custom benchmarks and evaluating parallel stream processing. Our main goal is to ease the benchmarking process in parallel stream processing, including the creation, building, execution, tuning, and evaluating of the benchmarks. Therefore, this doctoral dissertation provides the following main scientific contributions: (I) A framework that simplifies the benchmarking of stream processing applications, providing an API and a command-line interface to simplify, reuse code, customize, extend, and evaluate diferente aspects or properties regarding parallel stream processing. (II) A parallel C++ benchmark suite for stream processing that includes real-world applications and the most state-of-theart Parallel Programming Interfaces (PPIs) in this context. (III) A comprehensive comparative study of the most popular PPIs leveraging C++ stream parallelism. (IV) Mechanisms for dynamic data stream frequency simulation in stream processing applications with a set of algorithms for generating the literature’s most commonly used data stream frequency patterns and an analysis of the data frequency impact on the performance of stream processing applications. (V) An analysis of the performance impact of micro-batch sizing on stream processing applications, including mechanisms for real-time and dynamic batching management, allowing users to adjust batch sizes on the fly either based on specific size targets or time intervals. We test the SPBench framework with five real-world applications of video/image processing, data compression, and fraud detection. We show the benefits of SPBench by using it in combination with PPIs to generate parallel stream processing benchmarks and conduct various analyses. Overall, the results showed that the high-level abstractions of PPIs can cause significant performance penalties when they hide fine-tuning mechanisms. In the data frequency experiments, the FastFlow PPI benefited more from varying frequency scenarios than the TBB in our test cases. Finally, the experimental results showed that the potential performance advantage of using micro-batches on multi-cores tends to show up only in specific scenarios.No mundo de hoje impulsionado por dados e crescente expectativa por resultados imediatos, há uma demanda crescente por processamento de dados em tempo real/baixa latência. O processamento de stream é uma técnica que processa os dados à medida que eles se tornam disponíveis, permitindo o processamento de dados quase em tempo real. Para lidar com o processamento de grandes volumes de dados, aplicações de processamento de stream devem recorrer a técnicas de paralelismo para acelerar o processamento. Embora existam interfaces de programação paralela (IPPs) capazes de adicionar várias camadas de abstração, o paralelismo no processamento de stream ainda é uma tarefa difícil e que normalmente exige conhecimento especializado para atingir os níveis de desempenho desejados. Isso gera um grande esforço de pesquisa em direção à aumentar o desempenho do processamento paralelo de stream e tornar a programação paralela mais acessível. Tipicamente, benchmarks são usados para avaliar as IPPs e novas soluções nesse contexto. No entanto, existem várias limitações nos benchmarks existentes, incluindo a falta de benchmarks para algumas categorias de aplicações de processamento de stream, poucas ou nenhuma opção de parametrização, dificuldade em estender os benchmarks para outras IPPs, falta de métricas de desempenho adequadas, falta de preocupação com usabilidade, suporte apenas para linguagens baseadas na Java Virtual Machine (JVM), etc. Este trabalho propõe um framework chamado SPBench para criar benchmarks personalizados e avaliar o processamento paralelo de stream. Nosso principal objetivo é facilitar o processo de benchmarking no processamento de stream, incluindo a criação, compilação, execução, ajuste-fino e avaliação dos benchmarks. Portanto, esta tese de doutorado fornece as seguintes principais contribuições científicas: (I) Um framework que simplifica o benchmarking de aplicações de processamento de stream, fornecendo uma Application Programming Interface (API) e uma interface de linha de comando para simplificar, reutilizar código, personalizar, estender e avaliar diferentes aspectos ou propriedades em relação ao processamento paralelo de stream. (II) Um conjunto de benchmarks paralelos em C++ para processamento de stream que inclui aplicações do mundo real e as IPPs mais utilizadas neste contexto. (III) Um estudo comparativo abrangente das IPPs mais populares que usam o paralelismo de stream em C++. (IV) Mecanismos para simulação dinâmica de frequência de stream de dados em aplicações de processamento de stream, com um conjunto de algoritmos para gerar os padrões de frequência de stream de dados mais comumente usados na literatura e uma análise do impacto da frequência de dados no desempenho dessas aplicações. (V) Uma análise do impacto do tamanho de micro-batches no desempenho de aplicações de processamento de stream, incluindo mecanismos para controle dinâmico de batch baseado em tamanho específico ou intervalos de tempo. Testamos o framework SPBench com cinco aplicações do mundo real de processamento de vídeo/imagem, compressão de dados e detecção de fraudes. Neste trabalho nós tentamos mostrar os benefícios do SPBench usando-o em combinação com IPPs para gerar benchmarks de processamento paralelo de stream e realizar diversas análises. No geral, os resultados mostraram que as abstrações de alto nível das IPPs podem causar um grande impacto no desempenho quando abstraem mecanismos de ajuste fino. Nos experimentos de frequência de dados, a IPP FastFlow obteve mais benefícios de cenários de frequência variável do que o TBB em nossos casos de teste. Por fim, os resultados experimentais mostraram que a potencial vantagem de desempenho do uso de microbatches em ambientes multi-núcleo tende a aparecer apenas em cenários muito específicosCoordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESPontifícia Universidade Católica do Rio Grande do SulEscola PolitécnicaBrasilPUCRSPrograma de Pós-Graduação em Ciência da ComputaçãoFernandes, Luiz Gustavo Leaohttp://lattes.cnpq.br/5979862734558983Griebler, Dalvanhttp://lattes.cnpq.br/1989039890812573Schepke, Claudiohttp://lattes.cnpq.br/6412713158883137Garcia, Adriano Marques2023-07-04T18:42:01Z2023-03-31info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfhttps://tede2.pucrs.br/tede2/handle/tede/10884enginfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da PUC_RSinstname:Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)instacron:PUC_RS2023-07-05T15:00:20Zoai:tede2.pucrs.br:tede/10884Biblioteca Digital de Teses e Dissertaçõeshttp://tede2.pucrs.br/tede2/PRIhttps://tede2.pucrs.br/oai/requestbiblioteca.central@pucrs.br||opendoar:2023-07-05T15:00:20Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)false
dc.title.none.fl_str_mv Easing the benchmarking of parallel stream processing on multi-cores
Facilitando a avaliacao do processamento paralelo de stream em arquiteturas multi-nucleo
title Easing the benchmarking of parallel stream processing on multi-cores
spellingShingle Easing the benchmarking of parallel stream processing on multi-cores
Garcia, Adriano Marques
Stream Processing
Framework
Benchmark
Multi-corre
Processamento de Fluxo
Framework
Benchmark
Multi-núcleo
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
title_short Easing the benchmarking of parallel stream processing on multi-cores
title_full Easing the benchmarking of parallel stream processing on multi-cores
title_fullStr Easing the benchmarking of parallel stream processing on multi-cores
title_full_unstemmed Easing the benchmarking of parallel stream processing on multi-cores
title_sort Easing the benchmarking of parallel stream processing on multi-cores
author Garcia, Adriano Marques
author_facet Garcia, Adriano Marques
author_role author
dc.contributor.none.fl_str_mv Fernandes, Luiz Gustavo Leao
http://lattes.cnpq.br/5979862734558983
Griebler, Dalvan
http://lattes.cnpq.br/1989039890812573
Schepke, Claudio
http://lattes.cnpq.br/6412713158883137
dc.contributor.author.fl_str_mv Garcia, Adriano Marques
dc.subject.por.fl_str_mv Stream Processing
Framework
Benchmark
Multi-corre
Processamento de Fluxo
Framework
Benchmark
Multi-núcleo
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
topic Stream Processing
Framework
Benchmark
Multi-corre
Processamento de Fluxo
Framework
Benchmark
Multi-núcleo
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
description In today’s fast-changing data-driven world, there is increasing demand for realtime/low-latency data processing. Stream processing is a technique that envisages processing data as it becomes available, enabling near real-time data processing. Stream processing applications must resort to parallelism techniques to speed up processing and to cope with processing large volumes of data. Although there are parallel programming interfaces (PPIs) that add several abstraction layers, parallelism in stream processing is still a difficult task, usually demanding expert knowledge to achieve desired performance levels. This generates a lot of research effort toward boosting parallel stream processing performance and making parallel programming more accessible. Typically, benchmarks are used to evaluate the PPIs and new solutions in this context. However, there are a number of limitations in existing benchmarks, including not addressing some categories of stream processing applications, few or no parameterization options, difficulty extending the benchmarks to other PPIs, lack of appropriate performance metrics, poor usability, only targeting JVM-based languages, and others. This work proposes a framework called SPBench for creating custom benchmarks and evaluating parallel stream processing. Our main goal is to ease the benchmarking process in parallel stream processing, including the creation, building, execution, tuning, and evaluating of the benchmarks. Therefore, this doctoral dissertation provides the following main scientific contributions: (I) A framework that simplifies the benchmarking of stream processing applications, providing an API and a command-line interface to simplify, reuse code, customize, extend, and evaluate diferente aspects or properties regarding parallel stream processing. (II) A parallel C++ benchmark suite for stream processing that includes real-world applications and the most state-of-theart Parallel Programming Interfaces (PPIs) in this context. (III) A comprehensive comparative study of the most popular PPIs leveraging C++ stream parallelism. (IV) Mechanisms for dynamic data stream frequency simulation in stream processing applications with a set of algorithms for generating the literature’s most commonly used data stream frequency patterns and an analysis of the data frequency impact on the performance of stream processing applications. (V) An analysis of the performance impact of micro-batch sizing on stream processing applications, including mechanisms for real-time and dynamic batching management, allowing users to adjust batch sizes on the fly either based on specific size targets or time intervals. We test the SPBench framework with five real-world applications of video/image processing, data compression, and fraud detection. We show the benefits of SPBench by using it in combination with PPIs to generate parallel stream processing benchmarks and conduct various analyses. Overall, the results showed that the high-level abstractions of PPIs can cause significant performance penalties when they hide fine-tuning mechanisms. In the data frequency experiments, the FastFlow PPI benefited more from varying frequency scenarios than the TBB in our test cases. Finally, the experimental results showed that the potential performance advantage of using micro-batches on multi-cores tends to show up only in specific scenarios.
publishDate 2023
dc.date.none.fl_str_mv 2023-07-04T18:42:01Z
2023-03-31
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://tede2.pucrs.br/tede2/handle/tede/10884
url https://tede2.pucrs.br/tede2/handle/tede/10884
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Pontifícia Universidade Católica do Rio Grande do Sul
Escola Politécnica
Brasil
PUCRS
Programa de Pós-Graduação em Ciência da Computação
publisher.none.fl_str_mv Pontifícia Universidade Católica do Rio Grande do Sul
Escola Politécnica
Brasil
PUCRS
Programa de Pós-Graduação em Ciência da Computação
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da PUC_RS
instname:Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
instacron:PUC_RS
instname_str Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
instacron_str PUC_RS
institution PUC_RS
reponame_str Biblioteca Digital de Teses e Dissertações da PUC_RS
collection Biblioteca Digital de Teses e Dissertações da PUC_RS
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
repository.mail.fl_str_mv biblioteca.central@pucrs.br||
_version_ 1850041122795028480