Exportar este item: EndNote BibTex

Use este identificador para citar ou linkar para este item: https://tede2.pucrs.br/tede2/handle/tede/10783
Registro completo de metadados
Campo DCValorIdioma
dc.creatorLöff, Júnior Henrique-
dc.creator.Latteshttp://lattes.cnpq.br/4303344091053043por
dc.contributor.advisor1Fernandes, Luiz Gustavo Leão-
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/5979862734558983por
dc.date.accessioned2023-05-25T18:30:54Z-
dc.date.issued2023-03-30-
dc.identifier.urihttps://tede2.pucrs.br/tede2/handle/tede/10783-
dc.description.resumoData sources such as IoT sensors, user activity logs, health surveillance, and video streaming are becoming ubiquitous worldwide. Often, these sources produce big amounts of raw data, which traditional computing systems based on a store-first and compute-later batch paradigm struggle to handle. Stream processing is an effective solution that can manage these massive workloads while meeting low-latency and highthroughput requirements. However, developing a streaming system from scratch is a challenging endeavor. Distributed stream processing systems (DSPS) like Apache Flink and Apache Storm already provide many abstractions for transparent fault-tolerance, scheduling, communication protocols, and many other mechanisms that assist programmers in writing distributed parallel code. These tools are mostly written in higher-level programming languages like Java and Scala. Nevertheless, C/C++ distributed computing systems are preferred for high-performance computing (HPC), but in this domain, programmers lack high-level programming abstraction options. Consequently, C++ programmers usually rely on low-level MPI for coordinating distributed applications. Also, when using MPI, programmers often employ a static programming model to write their distributed applications, opposite to stream processing which dynamically deals with irregular workloads that vary in content, format, size, and input rate. Streaming systems should allow reconfiguration to self-adapt in response to data flow spikes, slowdowns, and load-balancing issues. This work aims to address these challenges by investigating the adaptability aspects of distributed streaming systems. For that, we introduce a new C++ framework called MPR (Message Passing Runtime), which simplifies the implementation of distributed stream processing applications. The framework relies on MPI’s message-passing communication and implements many programming abstractions, including data transfer, serialization, load balancing, and back pressure. Moreover, we design a novel runtime system that supports MPR’s adaptability capabilities. The runtime system implements algorithms to handle dynamic process creation and includes a synchronization protocol for distributed process coordination. The experimental analysis reveals that MPR’s dynamic runtime system can achieve performance comparable to a static MPI implementation. In addition, we also conduct experiments to evaluate and characterize MPR’s adaptability capabilities. The characterization experiments show that MPR can readily self-configure itself in response to workload variations. Thanks to this work, MPR’s runtime system on top of MPI is now a valuable tool that can be used to test and evaluate other self-adaptive algorithms for distributed stream processing.por
dc.description.abstractFontes de dados como sensores IoT, logs de usuários, monitoramento de sinais vitais e streaming de vídeo estão cada vez mais presentes na sociedade. Muitas vezes, essas fontes produzem uma massiva quantidade de dados que os sistemas de computação tradicionais têm dificuldade para lidar. O processamento de stream é uma abordagem computacional que consegue lidar com essas cargas de trabalho massivas, atendendo aos requisitos de baixa latência e alta vazão. No entanto, desenvolver um sistema de streaming é uma tarefa desafiadora. Soluções como o Apache Flink e Apache Storm fornecem diversas abstrações de programação para tolerância a falhas, escalonamento, protocolos de comunicação e muitos outros mecanismos que ajudam os programadores a implementar códigos paralelos e distribuídos. Essas ferramentas são principalmente escritas em linguagens de programação de alto nível como Java e Scala. No entanto, no domínio de computação de alto desempenho, os programadores têm poucas opções de abstração de programação de alto nível quando se trata de sistemas de computação distribuídos escritos em linguagens de sistema como C/C++. Consequentemente, esses programadores muitas vezes dependem de ferramentas de mais baixo nível como o MPI para implementar aplicações distribuídas. Além disso, com MPI é comum empregar-se um modelo de programação estática para implementar aplicações distribuídas, opondo-se ao processamento de stream que lida dinamicamente com cargas de trabalho irregulares que variam em conteúdo, formato, tamanho e taxa de entrada. Os sistemas de processamento de stream devem permitir reconfigurações para se auto-adaptarem a picos no fluxo de dados, desacelerações e problemas de balanceamento de carga. Este trabalho tem como objetivo abordar esses desafios investigando os aspectos de adaptabilidade de sistemas distribuídos de processamento de stream. Para isso, introduziu-se uma nova ferramenta em C++ chamada MPR (Message Passing Runtime), que simplifica a implementação de aplicações distribuídas de processamento de stream. Além disso, criou-se uma nova estratégia que suporta as funcionalidades auto-adaptativas do MPR. A estratégia implementa algoritmos para lidar com a criação dinâmica de processos e inclui um protocolo de sincronização para coordenação de processos distribuídos. Experimentos mostraram que o MPR consegue alcançar desempenho comparável a uma implementação MPI. Além disso, foram realizados experimentos para avaliar e caracterizar a auto-adaptatividade do MPR. Os experimentos de caracterização revelaram que o MPR é capaz de se autoconfigurar em resposta a variações na carga de trabalho. Com este trabalho, o MPR torna-se uma nova opção para implementar, testar e analisar algoritmos auto-adaptativos para processamento distribuído de stream.por
dc.description.provenanceSubmitted by PPG Ciência da Computação ([email protected]) on 2023-05-11T17:30:14Z No. of bitstreams: 1 JÚNIOR HENRIQUE LÖFF_DIS.pdf: 2559367 bytes, checksum: 8d9ad86ba2451e7388f445a1db051b7d (MD5)eng
dc.description.provenanceApproved for entry into archive by Sarajane Pan ([email protected]) on 2023-05-25T18:05:58Z (GMT) No. of bitstreams: 1 JÚNIOR HENRIQUE LÖFF_DIS.pdf: 2559367 bytes, checksum: 8d9ad86ba2451e7388f445a1db051b7d (MD5)eng
dc.description.provenanceMade available in DSpace on 2023-05-25T18:30:54Z (GMT). No. of bitstreams: 1 JÚNIOR HENRIQUE LÖFF_DIS.pdf: 2559367 bytes, checksum: 8d9ad86ba2451e7388f445a1db051b7d (MD5) Previous issue date: 2023-03-30eng
dc.description.sponsorshipCoordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESpor
dc.formatapplication/pdf*
dc.thumbnail.urlhttps://tede2.pucrs.br/tede2/retrieve/187597/J%c3%9aNIOR%20HENRIQUE%20L%c3%96FF_DIS.pdf.jpg*
dc.languageengpor
dc.publisherPontifícia Universidade Católica do Rio Grande do Sulpor
dc.publisher.departmentEscola Politécnicapor
dc.publisher.countryBrasilpor
dc.publisher.initialsPUCRSpor
dc.publisher.programPrograma de Pós-Graduação em Ciência da Computaçãopor
dc.rightsAcesso Abertopor
dc.subjectStream Processingeng
dc.subjectDistributed Systemseng
dc.subjectParallel Programmingeng
dc.subjectProgramming Abstractionseng
dc.subjectStream Parallelismeng
dc.subjectSelf-Adaptiveeng
dc.subjectC++eng
dc.subjectProcessamento de Streampor
dc.subjectSistemas Distribuídospor
dc.subjectProgramação Paralelapor
dc.subjectAbstrações de Programaçãopor
dc.subjectParalelismo de Streampor
dc.subjectAuto-Adaptativopor
dc.subjectC++por
dc.subject.cnpqCIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAOpor
dc.titleSimplifying self-adaptive distributed stream processing in C++por
dc.title.alternativeSimplificando o processamento distribuido de stream auto-adaptativo em C++por
dc.typeDissertaçãopor
dc.restricao.situacaoTrabalho não apresenta restrição para publicaçãopor
Aparece nas coleções:Programa de Pós-Graduação em Ciência da Computação

Arquivos associados a este item:
Arquivo Descrição TamanhoFormato 
JÚNIOR HENRIQUE LÖFF_DIS.pdfJÚNIOR_HENRIQUE_LÖFf_DIS2,5 MBAdobe PDFThumbnail

Baixar/Abrir Pré-Visualizar


Os itens no repositório estão protegidos por copyright, com todos os direitos reservados, salvo quando é indicado o contrário.