Self-adaptive abstractions for efficient high-level parallel computing in multi-cores

Detalhes bibliográficos
Autor(a) principal: Vogel, Adriano José
Data de Publicação: 2022
Tipo de documento: Tese
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da PUC_RS
Texto Completo: https://tede2.pucrs.br/tede2/handle/tede/10232
Resumo: Atualmente, uma parte significativa dos sistemas computacionais e aplicações do mundo real demandam paralelismo para acelerar suas execuções. Embora a programação paralela estruturada e de alto nível tenha como objetivo facilitar a exploração do paralelismo, ainda há questões a serem abordadas para melhorar as abstrações existentes na programação paralela, onde os desenvolvedores de aplicações usualmente precisam definir configurações de paralelismo não intuitivas ou complexas. Nesse contexto, a autoadaptação é uma alternativa potencial para fornecer um nível mais alto de abstrações autonômicas e capacidade de resposta em tempo de execução em aplicações paralelas. No entanto, um problema recorrente é que a autoadaptação ainda é limitada em termos de flexibilidade, eficiência e abstrações. Por exemplo, faltam mecanismos para aplicar ações de adaptação e estratégias eficientes de decisão sobre quais configurações devem ser aplicadas em tempo de execução. Este trabalho é focado em abstrações alcançáveis com autoadaptação gerenciando de forma transparente as execuções enquanto os programas paralelos estão sendo executados. Os principais objetivos são: aumentar o espaço de adaptação para ser mais representativo para aplicações e tornar a autoadaptação mais eficiente com metodologias de avaliação abrangentes, que podem fornecer casos de uso que demonstrem os verdadeiros potenciais da autoadaptação. Portanto, esta tese de doutorado traz as seguintes contribuições científicas: I) Uma revisão sistemática da literatura fornecendo uma taxonomia do estado da arte. II) Um framework conceitual para apoiar a concepção e abstração do processo de tomada de decisão dentro de soluções autoadaptativas, o que é utilizado nas contribuições técnicas para ajudar a tornar as soluções mais modulares e potencialmente generalizáveis. III) Mecanismos e estratégias para réplicas autoadaptáveis em aplicações com estágios paralelos simples e múltiplos, suportando múltiplos requisitos não-funcionais. IV) Mecanismo, estratégia e otimizações para autoadaptação dos Padrões Paralelos/topologias de grafos de aplicações. Aplicamos as soluções propostas ao contexto de aplicações de processamento de streams, um paradigma representativo presente em várias aplicações do mundo real que computam dados em tempo real (por exemplo, feeds de vídeo, imagem e análise de dados). Uma parte das soluções propostas é avaliada com a SPar e outra parte com o framework de programação FastFlow. Os resultados demonstram que a autoadaptação pode fornecer abstrações de paralelismo eficientes e responsividade autonômica em tempo de execução e alcançando um desempenho competitivo em comparação com as melhores execuções estáticas. Além disso, quando apropriado, a solução proposta é comparada com soluções relacionadas, demonstrando que as estratégias de decisão propostas neste trabalho são altamente otimizadas e alcançam ganhos significativos de desempenho e eficiência.
id P_RS_f0c9690f7000e76b8f41415634bee910
oai_identifier_str oai:tede2.pucrs.br:tede/10232
network_acronym_str P_RS
network_name_str Biblioteca Digital de Teses e Dissertações da PUC_RS
repository_id_str
spelling Fernandes, Luiz Gustavo LeãoDanelutto, MarcoGriebler, Dalvan Jairhttp://lattes.cnpq.br/7712749194766770Vogel, Adriano José2022-05-19T18:08:42Z2022-03-21https://tede2.pucrs.br/tede2/handle/tede/10232Atualmente, uma parte significativa dos sistemas computacionais e aplicações do mundo real demandam paralelismo para acelerar suas execuções. Embora a programação paralela estruturada e de alto nível tenha como objetivo facilitar a exploração do paralelismo, ainda há questões a serem abordadas para melhorar as abstrações existentes na programação paralela, onde os desenvolvedores de aplicações usualmente precisam definir configurações de paralelismo não intuitivas ou complexas. Nesse contexto, a autoadaptação é uma alternativa potencial para fornecer um nível mais alto de abstrações autonômicas e capacidade de resposta em tempo de execução em aplicações paralelas. No entanto, um problema recorrente é que a autoadaptação ainda é limitada em termos de flexibilidade, eficiência e abstrações. Por exemplo, faltam mecanismos para aplicar ações de adaptação e estratégias eficientes de decisão sobre quais configurações devem ser aplicadas em tempo de execução. Este trabalho é focado em abstrações alcançáveis com autoadaptação gerenciando de forma transparente as execuções enquanto os programas paralelos estão sendo executados. Os principais objetivos são: aumentar o espaço de adaptação para ser mais representativo para aplicações e tornar a autoadaptação mais eficiente com metodologias de avaliação abrangentes, que podem fornecer casos de uso que demonstrem os verdadeiros potenciais da autoadaptação. Portanto, esta tese de doutorado traz as seguintes contribuições científicas: I) Uma revisão sistemática da literatura fornecendo uma taxonomia do estado da arte. II) Um framework conceitual para apoiar a concepção e abstração do processo de tomada de decisão dentro de soluções autoadaptativas, o que é utilizado nas contribuições técnicas para ajudar a tornar as soluções mais modulares e potencialmente generalizáveis. III) Mecanismos e estratégias para réplicas autoadaptáveis em aplicações com estágios paralelos simples e múltiplos, suportando múltiplos requisitos não-funcionais. IV) Mecanismo, estratégia e otimizações para autoadaptação dos Padrões Paralelos/topologias de grafos de aplicações. Aplicamos as soluções propostas ao contexto de aplicações de processamento de streams, um paradigma representativo presente em várias aplicações do mundo real que computam dados em tempo real (por exemplo, feeds de vídeo, imagem e análise de dados). Uma parte das soluções propostas é avaliada com a SPar e outra parte com o framework de programação FastFlow. Os resultados demonstram que a autoadaptação pode fornecer abstrações de paralelismo eficientes e responsividade autonômica em tempo de execução e alcançando um desempenho competitivo em comparação com as melhores execuções estáticas. Além disso, quando apropriado, a solução proposta é comparada com soluções relacionadas, demonstrando que as estratégias de decisão propostas neste trabalho são altamente otimizadas e alcançam ganhos significativos de desempenho e eficiência.Nowadays, a significant part of computing systems and real-world applications demand parallelism to accelerate their executions. Although high-level and structured parallel programming aims to facilitate parallelism exploitation, there are still issues to be addressed to improve existing parallel programming abstractions. Usually, application developers still have to set non-intuitive or complex parallelism configurations. In this context, self-adaptation is a potential alternative to provide a higher-level of autonomic abstractions and runtime responsiveness in parallel executions. However, a recurrent problem is that self-adaptation is still limited in terms of flexibility, efficiency, and abstractions. For instance, there is a lack of mechanisms to apply adaptation actions and efficient decisionmaking strategies to decide which configurations to be enforced at run-time. In this work, we are interested in abstractions achievable with self-adaptation transparently managing the executions while the parallel programs are running (at run-time). Our main goals are to increase the adaptation space to be more representative of real-world applications and make self-adaptation more efficient with comprehensive evaluation methodologies, which can provide use-cases demonstrating the true potentials of self-adaptation. Therefore, this doctoral dissertation provides the following scientific contributions: I) An Systematic Literature Review (SLR) providing a taxonomy of the state-of-the-art. II) A conceptual framework to support designing and abstracting the decision-making process within selfadaptive solutions, such a conceptual framework is then employed in the technical contributions to assist in making the solutions more modular and potentially generalizable. III) Mechanisms and strategies for self-adaptive replicas in applications with single and multiple parallel stages, supporting multiple customizable non-functional requirements. IV) Mechanism, strategy, and optimizations for self-adaptation of Parallel Patterns/applications’ graphs topologies. We apply the proposed solutions to the context of stream processing applications, a representative paradigm present in several real-world applications that compute data flowing in the form of streams (e.g., video feeds, image, and data analytics). A part of the proposed solutions is evaluated with SPar and another part with the FastFlow programming framework. The results demonstrate that self-adaptation can provide efficient parallelism abstractions and autonomous responsiveness at run-time, yet achieve a competitive performance w.r.t. the best static executions. Moreover, when appropriate, we compare state-of-the-art solutions and demonstrate that our highly optimizeddecision-making strategies achieve significant performance and efficiency gains.Submitted by PPG Ciência da Computação (ppgcc@pucrs.br) on 2022-05-19T12:13:32Z No. of bitstreams: 1 ADRIANO_JOSE_VOGEL_TES.pdf: 2780723 bytes, checksum: 9e35859bddced597cdd115d86d08949e (MD5)Approved for entry into archive by Sheila Dias (sheila.dias@pucrs.br) on 2022-05-19T17:54:29Z (GMT) No. of bitstreams: 1 ADRIANO_JOSE_VOGEL_TES.pdf: 2780723 bytes, checksum: 9e35859bddced597cdd115d86d08949e (MD5)Made available in DSpace on 2022-05-19T18:08:42Z (GMT). No. of bitstreams: 1 ADRIANO_JOSE_VOGEL_TES.pdf: 2780723 bytes, checksum: 9e35859bddced597cdd115d86d08949e (MD5) Previous issue date: 2022-03-21Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESapplication/pdfhttps://tede2.pucrs.br/tede2/retrieve/184098/ADRIANO_JOSE_VOGEL_TES.pdf.jpgengPontifícia Universidade Católica do Rio Grande do SulPrograma de Pós-Graduação em Ciência da ComputaçãoPUCRSBrasilEscola PolitécnicaStream ParallelSoftware AutoadaptativoAbstrações de ParalelismoProgramação ParalelaSistemas AutônomosStream ProcessingSelf-Adaptive SoftwareParallelism SbstractionsParallel ProgrammingAutonomic SystemsCIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAOSelf-adaptive abstractions for efficient high-level parallel computing in multi-coresinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisTrabalho não apresenta restrição para publicação-4570527706994352458500500600-8620782570833253013590462550136975366info: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_RSTHUMBNAILADRIANO_JOSE_VOGEL_TES.pdf.jpgADRIANO_JOSE_VOGEL_TES.pdf.jpgimage/jpeg5390https://tede2.pucrs.br/tede2/bitstream/tede/10232/4/ADRIANO_JOSE_VOGEL_TES.pdf.jpg516a22c767b5a5281245f6779b5d1c9dMD54TEXTADRIANO_JOSE_VOGEL_TES.pdf.txtADRIANO_JOSE_VOGEL_TES.pdf.txttext/plain401508https://tede2.pucrs.br/tede2/bitstream/tede/10232/3/ADRIANO_JOSE_VOGEL_TES.pdf.txt7e76ea54504306302d982f880dfff070MD53ORIGINALADRIANO_JOSE_VOGEL_TES.pdfADRIANO_JOSE_VOGEL_TES.pdfapplication/pdf2780723https://tede2.pucrs.br/tede2/bitstream/tede/10232/2/ADRIANO_JOSE_VOGEL_TES.pdf9e35859bddced597cdd115d86d08949eMD52LICENSElicense.txtlicense.txttext/plain; charset=utf-8590https://tede2.pucrs.br/tede2/bitstream/tede/10232/1/license.txt220e11f2d3ba5354f917c7035aadef24MD51tede/102322022-05-19 20:00:18.525oai:tede2.pucrs.br:tede/10232QXV0b3JpemE/P28gcGFyYSBQdWJsaWNhPz9vIEVsZXRyP25pY2E6IENvbSBiYXNlIG5vIGRpc3Bvc3RvIG5hIExlaSBGZWRlcmFsIG4/OS42MTAsIGRlIDE5IGRlIGZldmVyZWlybyBkZSAxOTk4LCBvIGF1dG9yIEFVVE9SSVpBIGEgcHVibGljYT8/byBlbGV0cj9uaWNhIGRhIHByZXNlbnRlIG9icmEgbm8gYWNlcnZvIGRhIEJpYmxpb3RlY2EgRGlnaXRhbCBkYSBQb250aWY/Y2lhIFVuaXZlcnNpZGFkZSBDYXQ/bGljYSBkbyBSaW8gR3JhbmRlIGRvIFN1bCwgc2VkaWFkYSBhIEF2LiBJcGlyYW5nYSA2NjgxLCBQb3J0byBBbGVncmUsIFJpbyBHcmFuZGUgZG8gU3VsLCBjb20gcmVnaXN0cm8gZGUgQ05QSiA4ODYzMDQxMzAwMDItODEgYmVtIGNvbW8gZW0gb3V0cmFzIGJpYmxpb3RlY2FzIGRpZ2l0YWlzLCBuYWNpb25haXMgZSBpbnRlcm5hY2lvbmFpcywgY29ucz9yY2lvcyBlIHJlZGVzID9zIHF1YWlzIGEgYmlibGlvdGVjYSBkYSBQVUNSUyBwb3NzYSBhIHZpciBwYXJ0aWNpcGFyLCBzZW0gP251cyBhbHVzaXZvIGFvcyBkaXJlaXRvcyBhdXRvcmFpcywgYSB0P3R1bG8gZGUgZGl2dWxnYT8/byBkYSBwcm9kdT8/byBjaWVudD9maWNhLgo=Biblioteca Digital de Teses e Dissertaçõeshttp://tede2.pucrs.br/tede2/PRIhttps://tede2.pucrs.br/oai/requestbiblioteca.central@pucrs.br||opendoar:2022-05-19T23:00:18Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)false
dc.title.por.fl_str_mv Self-adaptive abstractions for efficient high-level parallel computing in multi-cores
title Self-adaptive abstractions for efficient high-level parallel computing in multi-cores
spellingShingle Self-adaptive abstractions for efficient high-level parallel computing in multi-cores
Vogel, Adriano José
Stream Parallel
Software Autoadaptativo
Abstrações de Paralelismo
Programação Paralela
Sistemas Autônomos
Stream Processing
Self-Adaptive Software
Parallelism Sbstractions
Parallel Programming
Autonomic Systems
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
title_short Self-adaptive abstractions for efficient high-level parallel computing in multi-cores
title_full Self-adaptive abstractions for efficient high-level parallel computing in multi-cores
title_fullStr Self-adaptive abstractions for efficient high-level parallel computing in multi-cores
title_full_unstemmed Self-adaptive abstractions for efficient high-level parallel computing in multi-cores
title_sort Self-adaptive abstractions for efficient high-level parallel computing in multi-cores
author Vogel, Adriano José
author_facet Vogel, Adriano José
author_role author
dc.contributor.advisor1.fl_str_mv Fernandes, Luiz Gustavo Leão
dc.contributor.advisor2.fl_str_mv Danelutto, Marco
dc.contributor.advisor-co1.fl_str_mv Griebler, Dalvan Jair
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/7712749194766770
dc.contributor.author.fl_str_mv Vogel, Adriano José
contributor_str_mv Fernandes, Luiz Gustavo Leão
Danelutto, Marco
Griebler, Dalvan Jair
dc.subject.eng.fl_str_mv Stream Parallel
Software Autoadaptativo
Abstrações de Paralelismo
Programação Paralela
Sistemas Autônomos
Stream Processing
Self-Adaptive Software
Parallelism Sbstractions
Parallel Programming
Autonomic Systems
topic Stream Parallel
Software Autoadaptativo
Abstrações de Paralelismo
Programação Paralela
Sistemas Autônomos
Stream Processing
Self-Adaptive Software
Parallelism Sbstractions
Parallel Programming
Autonomic Systems
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
dc.subject.cnpq.fl_str_mv CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
description Atualmente, uma parte significativa dos sistemas computacionais e aplicações do mundo real demandam paralelismo para acelerar suas execuções. Embora a programação paralela estruturada e de alto nível tenha como objetivo facilitar a exploração do paralelismo, ainda há questões a serem abordadas para melhorar as abstrações existentes na programação paralela, onde os desenvolvedores de aplicações usualmente precisam definir configurações de paralelismo não intuitivas ou complexas. Nesse contexto, a autoadaptação é uma alternativa potencial para fornecer um nível mais alto de abstrações autonômicas e capacidade de resposta em tempo de execução em aplicações paralelas. No entanto, um problema recorrente é que a autoadaptação ainda é limitada em termos de flexibilidade, eficiência e abstrações. Por exemplo, faltam mecanismos para aplicar ações de adaptação e estratégias eficientes de decisão sobre quais configurações devem ser aplicadas em tempo de execução. Este trabalho é focado em abstrações alcançáveis com autoadaptação gerenciando de forma transparente as execuções enquanto os programas paralelos estão sendo executados. Os principais objetivos são: aumentar o espaço de adaptação para ser mais representativo para aplicações e tornar a autoadaptação mais eficiente com metodologias de avaliação abrangentes, que podem fornecer casos de uso que demonstrem os verdadeiros potenciais da autoadaptação. Portanto, esta tese de doutorado traz as seguintes contribuições científicas: I) Uma revisão sistemática da literatura fornecendo uma taxonomia do estado da arte. II) Um framework conceitual para apoiar a concepção e abstração do processo de tomada de decisão dentro de soluções autoadaptativas, o que é utilizado nas contribuições técnicas para ajudar a tornar as soluções mais modulares e potencialmente generalizáveis. III) Mecanismos e estratégias para réplicas autoadaptáveis em aplicações com estágios paralelos simples e múltiplos, suportando múltiplos requisitos não-funcionais. IV) Mecanismo, estratégia e otimizações para autoadaptação dos Padrões Paralelos/topologias de grafos de aplicações. Aplicamos as soluções propostas ao contexto de aplicações de processamento de streams, um paradigma representativo presente em várias aplicações do mundo real que computam dados em tempo real (por exemplo, feeds de vídeo, imagem e análise de dados). Uma parte das soluções propostas é avaliada com a SPar e outra parte com o framework de programação FastFlow. Os resultados demonstram que a autoadaptação pode fornecer abstrações de paralelismo eficientes e responsividade autonômica em tempo de execução e alcançando um desempenho competitivo em comparação com as melhores execuções estáticas. Além disso, quando apropriado, a solução proposta é comparada com soluções relacionadas, demonstrando que as estratégias de decisão propostas neste trabalho são altamente otimizadas e alcançam ganhos significativos de desempenho e eficiência.
publishDate 2022
dc.date.accessioned.fl_str_mv 2022-05-19T18:08:42Z
dc.date.issued.fl_str_mv 2022-03-21
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/10232
url https://tede2.pucrs.br/tede2/handle/tede/10232
dc.language.iso.fl_str_mv eng
language eng
dc.relation.program.fl_str_mv -4570527706994352458
dc.relation.confidence.fl_str_mv 500
500
600
dc.relation.cnpq.fl_str_mv -862078257083325301
dc.relation.sponsorship.fl_str_mv 3590462550136975366
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
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv PUCRS
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Escola Politécnica
publisher.none.fl_str_mv Pontifícia Universidade Católica do Rio Grande do Sul
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
bitstream.url.fl_str_mv https://tede2.pucrs.br/tede2/bitstream/tede/10232/4/ADRIANO_JOSE_VOGEL_TES.pdf.jpg
https://tede2.pucrs.br/tede2/bitstream/tede/10232/3/ADRIANO_JOSE_VOGEL_TES.pdf.txt
https://tede2.pucrs.br/tede2/bitstream/tede/10232/2/ADRIANO_JOSE_VOGEL_TES.pdf
https://tede2.pucrs.br/tede2/bitstream/tede/10232/1/license.txt
bitstream.checksum.fl_str_mv 516a22c767b5a5281245f6779b5d1c9d
7e76ea54504306302d982f880dfff070
9e35859bddced597cdd115d86d08949e
220e11f2d3ba5354f917c7035aadef24
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
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_ 1799765355606835200