Exportar este item: EndNote BibTex

Use este identificador para citar ou linkar para este item: https://tede2.pucrs.br/tede2/handle/tede/9916
Registro completo de metadados
Campo DCValorIdioma
dc.creatorPieper, Ricardo Luis-
dc.creator.Latteshttp://lattes.cnpq.br/8575401766242973por
dc.contributor.advisor1Fernandes, Luiz Gustavo Leão-
dc.contributor.advisor1Latteshttp://lattes.cnpq.br/5979862734558983por
dc.contributor.advisor-co1Griebler, Dalvan Jair-
dc.contributor.advisor-co1Latteshttp://lattes.cnpq.br/1989039890812573por
dc.date.accessioned2021-10-19T17:43:14Z-
dc.date.issued2020-09-25-
dc.identifier.urihttp://tede2.pucrs.br/tede2/handle/tede/9916-
dc.description.resumoStream processing applications represent a significant part of today’s software. An increased amount of streaming data is generated every day from various sources (computing devices and applications), which requires to be processed on time. Shared-memory architectures cannot cope with these large-scale processing demands. In High-Performance Computing (HPC), Message Passing Interface (MPI) is the state-of-the-art parallel API (Application Programming Interface) for implementing parallel C/C++ programs. However, the stream parallelism exploitation using MPI is difficult and error-prone to application developers because it exposes low-level details to them, regarding computer architectures and operating systems. Programmers have to deal with implementation mechanisms for data serizalization, process communication and synchronization, fault tolerance, work scheduling, load balancing, and parallelism strategies. Our research work addresses a subset of these challenges and problems providing two high-level programming abstractions for distributed stream processing. First, we created a distributed stream parallelism library called DSPARLIB. It was built as a skeleton library equipped with Farm and Pipeline parallel patterns to provide programming abstractions on top of MPI. Second, we extend the SPAR language and compiler roles to support distributed memory architectures since it is a Domain-Specific Language (DSL) for expressing stream parallelism using C++11 annotation that has been proved to be productive on shared-memory architectures. We managed to make it work without significantly changing the easy of use language syntax and semantics, generating automatic parallel code with SPAR’s compiler using DSPARLIB as the parallel runtime. The experiments were conducted using real-world stream processing applications and testing different cluster configurations. We demonstrated that DSPARLIB provides a simpler API than MPI and a competitive performance. Also, the SPAR’s compiler was able to generate parallel code automatically without performance penalties compared to handwritten codes in DSPARLIB. Finally, with all these high-level programming abstractions implemented, SPAR becomes the first annotation-based language for expressing stream parallelism in C++ programs to support distributed-memory architectures, avoiding significant sequential code refactoring to enable parallel execution on clusters.por
dc.description.abstractAplicações de processamento de fluxo contínuo de dados (stream processing) representam uma parte significativa dos softwares atuais. Uma quantidade maior de dados é gerada todos os dias e de fontes variadas (através de dispositivos computacionais e aplicações), que requerem processamento em tempo hábil. Arquiteturas de memória compartilhada não conseguem atender demandas de processamento em larga escala. No contexto de computação de alta performance, a interface de programação MPI (Message Passing Interface) é considerada o estado da arte para implementar programas paralelos em C/C++. No entanto, a exploração de paralelismo de fluxo contínuo de dados usando MPI é difícil e sujeita a erros aos desenvolvedores de aplicação, pois ele expõe os detalhes de baixo nível das arquiteturas de computadores e sistemas operacionais. Os programadores precisam lidar com mecanismos de serialização de dados, comunicação entre processos, sincronização, tolerância a falhas, balanceamento de carga, escalonamento de trabalhos e estratégias de paralelismo. Este trabalho aborda um subconjunto desses problemas e desafios, oferecendo duas abstrações de alto-nível para processamento de fluxo contínuo de dados em arquiteturas de memória distribuída. Primeiramente, foi criada uma biblioteca de paralelismo de fluxo contínuo de dados nomeada de DSPARLIB. A biblioteca foi construída como uma biblioteca de esqueletos equipada com os padrões paralelos Farm e Pipeline, provendo abstrações acima do MPI. Depois, a linguagem SPAR foi estendida para suportar arquiteturas de memória distribuída, uma vez que ela é uma linguagem de domínio específico para expressar paralelismo de fluxo contínuo de dados usando anotações do C++11, que se mostram produtivas em arquiteturas de memória compartilhada. Este trabalho conseguiu estender o compilador e a linguagem SPAR sem alterar significativamente a sintaxe e a semântica, gerando código que usa DSPARLIB como ambiente de execução paralelo. Os experimentos foram conduzidos usando aplicações reais de processamento de fluxo contínuo de dados em diferentes configurações de cluster. Este trabalho demonstra que a DSPARLIB provê uma interface mais simples que o MPI e apresenta um desempenho competitivo. O compilador da linguagem SPAR foi capaz de gerar código paralelo automaticamente, sem perdas de desempenho em comparação com código escrito à mão com a DSPARLIB. Por último, com todas essas abstrações de alto nível, a SPAR se torna a primeira linguagem baseada em anotações para expressar paralelismo de fluxo contínuo de dados em C++ a suportar arquiteturas de memória distribuída, evitando refatorações de código significativas para permitir a execução paralela em clusters.por
dc.description.provenanceSubmitted by PPG Ciência da Computação ([email protected]) on 2021-10-19T13:22:11Z No. of bitstreams: 1 RICARDO LUIS PIEPER_DIS.pdf: 2487704 bytes, checksum: 6b989dcec44ae88774abc70595d8f2d8 (MD5)eng
dc.description.provenanceApproved for entry into archive by Sarajane Pan ([email protected]) on 2021-10-19T17:33:00Z (GMT) No. of bitstreams: 1 RICARDO LUIS PIEPER_DIS.pdf: 2487704 bytes, checksum: 6b989dcec44ae88774abc70595d8f2d8 (MD5)eng
dc.description.provenanceMade available in DSpace on 2021-10-19T17:43:14Z (GMT). No. of bitstreams: 1 RICARDO LUIS PIEPER_DIS.pdf: 2487704 bytes, checksum: 6b989dcec44ae88774abc70595d8f2d8 (MD5) Previous issue date: 2020-09-25eng
dc.formatapplication/pdf*
dc.thumbnail.urlhttp://tede2.pucrs.br:80/tede2/retrieve/182313/RICARDO%20LUIS%20PIEPER_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.subjectParallel Programmingeng
dc.subjectStream Parallelismeng
dc.subjectParallel Code Generationeng
dc.subjectDomain- Specific Languageeng
dc.subjectSkeleton Libraryeng
dc.subjectAlgorithmic Skeletonseng
dc.subjectParallel Patternseng
dc.subjectParallel Processingeng
dc.subjectDistributed Memory Architectureseng
dc.subjectDistributed Programmingeng
dc.subjectC++eng
dc.subjectPipelineeng
dc.subjectFarmeng
dc.subjectProgramação Paralelapor
dc.subjectParalelismo de Fluxopor
dc.subjectGeração de Código Paralelopor
dc.subjectLinguagem de Domínio Específicopor
dc.subjectBibliotecas de Esqueletopor
dc.subjectEsqueletos Algorítmicospor
dc.subjectPadrões Paralelospor
dc.subjectProcessamento Paralelopor
dc.subjectArquiteturas de Memória Distribuídapor
dc.subjectProgramação Distribuídapor
dc.subject.cnpqCIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAOpor
dc.titleHigh-level programming abstractions for distributed stream processingpor
dc.title.alternativeAbstrações de programação de alto nível para processamento de fluxo contínuo de dados distribuídospor
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 
RICARDO LUIS PIEPER_DIS.pdfRICARDO_LUIS_PIEPER_DIS2,43 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.