Uma extensão à OpenMP para suporte à memória transacional

Detalhes bibliográficos
Autor(a) principal: Jardim, André Desessards
Data de Publicação: 2021
Tipo de documento: Tese
Idioma: por
Título da fonte: Repositório Institucional da UFPel - Guaiaca
Texto Completo: http://guaiaca.ufpel.edu.br/handle/prefix/7933
Resumo: One of the most complex aspects of developing programs in environments with shared memory is the synchronization of concurrent activities accessing shared data. Transactional Memory was proposed as a mechanism that abstracts some of the complexities associated with concurrent access to shared data while promoting the development of more readable programs by offering a higher-level programming interface. Although the modern tools for multithreaded programming offer resources for efficient exploitation of the hardware, the supports for synchronization to shared data still reflect models based on the synchronization of execution flows. The aim of the work is to extend the state of the art in interfaces for multithreaded concurrent programming by introducing features for handling Transactional Memory in consolidated programming tools. The objective was achieved by the characterization of an extension to OpenMP, allowing the manipulation of data in a transactional way. Unlike other similar approaches found in the bibliography, the proposal presented stands out for performing synchronization on the data and not on the execution flows, as predicted in the Transactional Memory model itself. In the thesis, the specification of the proposed extension, its prototyping, and its qualitative and quantitative validation are presented. Qualitative validation took place by comparison, considering metrics obtained by code analysis, between the codes obtained in implementations of different applications in programs using the proposed extension with other solutions. This analysis indicated that the solution presented met the desired abstraction requirements. The prototype, built to verify the feasibility of implementing the interface, was also evaluated in terms of performance, in the quantitative analysis. The prototype was built in the form of an intermediate language, allowing to instantiate the program on different tools to support Transactional Memory in software. The performance analyzes considered a varied set of case studies, and the analysis of the results allowed to attest the feasibility of implementing the proposed interface.
id UFPL_7cb897ff7eeaf8235c6376ae1df4e6de
oai_identifier_str oai:guaiaca.ufpel.edu.br:prefix/7933
network_acronym_str UFPL
network_name_str Repositório Institucional da UFPel - Guaiaca
repository_id_str
spelling Uma extensão à OpenMP para suporte à memória transacionalAn OpenMP extension to support transactional memoryComputaçãoProgramação multithreadMemória transacionalMemória transacional em softwareMultithreaded programmingTransactional memoryOpenMPSoftware transactional memoryCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOOne of the most complex aspects of developing programs in environments with shared memory is the synchronization of concurrent activities accessing shared data. Transactional Memory was proposed as a mechanism that abstracts some of the complexities associated with concurrent access to shared data while promoting the development of more readable programs by offering a higher-level programming interface. Although the modern tools for multithreaded programming offer resources for efficient exploitation of the hardware, the supports for synchronization to shared data still reflect models based on the synchronization of execution flows. The aim of the work is to extend the state of the art in interfaces for multithreaded concurrent programming by introducing features for handling Transactional Memory in consolidated programming tools. The objective was achieved by the characterization of an extension to OpenMP, allowing the manipulation of data in a transactional way. Unlike other similar approaches found in the bibliography, the proposal presented stands out for performing synchronization on the data and not on the execution flows, as predicted in the Transactional Memory model itself. In the thesis, the specification of the proposed extension, its prototyping, and its qualitative and quantitative validation are presented. Qualitative validation took place by comparison, considering metrics obtained by code analysis, between the codes obtained in implementations of different applications in programs using the proposed extension with other solutions. This analysis indicated that the solution presented met the desired abstraction requirements. The prototype, built to verify the feasibility of implementing the interface, was also evaluated in terms of performance, in the quantitative analysis. The prototype was built in the form of an intermediate language, allowing to instantiate the program on different tools to support Transactional Memory in software. The performance analyzes considered a varied set of case studies, and the analysis of the results allowed to attest the feasibility of implementing the proposed interface.Sem bolsaUm dos aspectos mais complexos no desenvolvimento de programas em ambientes com memória compartilhada é a sincronização de atividades concorrentes no acesso a dados compartilhados. Memória Transacional foi proposta como um mecanismo que abstrai algumas das complexidades associadas ao acesso concorrente a dados compartilhados, enquanto promove o desenvolvimento de programas mais legíveis pela oferta de uma interface de programação de mais alto nível. Embora as modernas ferramentas para programação multithread ofereçam recursos para exploração eficiente do hardware, os suportes à sincronização a dados compartilhados ainda refletem modelos baseados na sincronização de fluxos de execução. O objetivo do trabalho é o de estender o estado da arte em interfaces para programação concorrente multithread pela introdução de recursos para manipulação de Memória Transacional em ferramentas de programação consolidadas. O objetivo foi alcançado pela caracterização de uma extensão à OpenMP, permitindo a manipulação de dados de forma transacional. Diferente de outras abordagens similares encontradas na bibliografia, a proposta apresentada se destaca por realizar a sincronização sobre o dado e não nos fluxos de execução, como previsto no próprio modelo de Memória Transacional. Na tese, é apresentada a especificação da extensão proposta, sua prototipação e sua validação qualitativa e quantitativa. A validação qualitativa se deu pela comparação, considerando métricas obtidas por análise de código, entre os códigos obtidos em implementações de diferentes aplicações em programas empregando a extensão proposta com outras soluções. Esta análise indicou que a solução apresentada atendeu os requisitos de abstração desejados. O protótipo, construído para verificar a viabilidade de implementação da interface, foi também avaliado em termos de desempenho, na análise quantitativa. O protótipo foi construído na forma de uma linguagem intermediária, permitindo instanciar o programa sobre diferentes ferramentas de suporte à Memória Transacional em software. As análises de desempenho consideraram um variado conjunto de casos de estudo, e as análises dos resultados permitiram atestar a viabilidade de implementação da interface proposta.Universidade Federal de PelotasCentro de Desenvolvimento TecnológicoPrograma de Pós-Graduação em ComputaçãoUFPelBrasilhttp://lattes.cnpq.br/0408367247397972http://lattes.cnpq.br/1542351302502326Du Bois, André Rauberhttp://lattes.cnpq.br/3277487290886063Cavalheiro, Gerson Geraldo HomrichJardim, André Desessards2021-08-10T21:24:22Z2021-08-10T21:24:22Z2021-05-21info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdfJARDIM, André Desessards. Uma extensão à OpenMP para suporte à memória transacional. Orientador: Gerson Geraldo H. Cavalheiro. 2021. 131 f. Tese (Doutorado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2021.http://guaiaca.ufpel.edu.br/handle/prefix/7933porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPel - Guaiacainstname:Universidade Federal de Pelotas (UFPEL)instacron:UFPEL2023-07-13T06:32:00Zoai:guaiaca.ufpel.edu.br:prefix/7933Repositório InstitucionalPUBhttp://repositorio.ufpel.edu.br/oai/requestrippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.bropendoar:2023-07-13T06:32Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL)false
dc.title.none.fl_str_mv Uma extensão à OpenMP para suporte à memória transacional
An OpenMP extension to support transactional memory
title Uma extensão à OpenMP para suporte à memória transacional
spellingShingle Uma extensão à OpenMP para suporte à memória transacional
Jardim, André Desessards
Computação
Programação multithread
Memória transacional
Memória transacional em software
Multithreaded programming
Transactional memory
OpenMP
Software transactional memory
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Uma extensão à OpenMP para suporte à memória transacional
title_full Uma extensão à OpenMP para suporte à memória transacional
title_fullStr Uma extensão à OpenMP para suporte à memória transacional
title_full_unstemmed Uma extensão à OpenMP para suporte à memória transacional
title_sort Uma extensão à OpenMP para suporte à memória transacional
author Jardim, André Desessards
author_facet Jardim, André Desessards
author_role author
dc.contributor.none.fl_str_mv http://lattes.cnpq.br/0408367247397972
http://lattes.cnpq.br/1542351302502326
Du Bois, André Rauber
http://lattes.cnpq.br/3277487290886063
Cavalheiro, Gerson Geraldo Homrich
dc.contributor.author.fl_str_mv Jardim, André Desessards
dc.subject.por.fl_str_mv Computação
Programação multithread
Memória transacional
Memória transacional em software
Multithreaded programming
Transactional memory
OpenMP
Software transactional memory
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic Computação
Programação multithread
Memória transacional
Memória transacional em software
Multithreaded programming
Transactional memory
OpenMP
Software transactional memory
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description One of the most complex aspects of developing programs in environments with shared memory is the synchronization of concurrent activities accessing shared data. Transactional Memory was proposed as a mechanism that abstracts some of the complexities associated with concurrent access to shared data while promoting the development of more readable programs by offering a higher-level programming interface. Although the modern tools for multithreaded programming offer resources for efficient exploitation of the hardware, the supports for synchronization to shared data still reflect models based on the synchronization of execution flows. The aim of the work is to extend the state of the art in interfaces for multithreaded concurrent programming by introducing features for handling Transactional Memory in consolidated programming tools. The objective was achieved by the characterization of an extension to OpenMP, allowing the manipulation of data in a transactional way. Unlike other similar approaches found in the bibliography, the proposal presented stands out for performing synchronization on the data and not on the execution flows, as predicted in the Transactional Memory model itself. In the thesis, the specification of the proposed extension, its prototyping, and its qualitative and quantitative validation are presented. Qualitative validation took place by comparison, considering metrics obtained by code analysis, between the codes obtained in implementations of different applications in programs using the proposed extension with other solutions. This analysis indicated that the solution presented met the desired abstraction requirements. The prototype, built to verify the feasibility of implementing the interface, was also evaluated in terms of performance, in the quantitative analysis. The prototype was built in the form of an intermediate language, allowing to instantiate the program on different tools to support Transactional Memory in software. The performance analyzes considered a varied set of case studies, and the analysis of the results allowed to attest the feasibility of implementing the proposed interface.
publishDate 2021
dc.date.none.fl_str_mv 2021-08-10T21:24:22Z
2021-08-10T21:24:22Z
2021-05-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 JARDIM, André Desessards. Uma extensão à OpenMP para suporte à memória transacional. Orientador: Gerson Geraldo H. Cavalheiro. 2021. 131 f. Tese (Doutorado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2021.
http://guaiaca.ufpel.edu.br/handle/prefix/7933
identifier_str_mv JARDIM, André Desessards. Uma extensão à OpenMP para suporte à memória transacional. Orientador: Gerson Geraldo H. Cavalheiro. 2021. 131 f. Tese (Doutorado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2021.
url http://guaiaca.ufpel.edu.br/handle/prefix/7933
dc.language.iso.fl_str_mv por
language por
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 Universidade Federal de Pelotas
Centro de Desenvolvimento Tecnológico
Programa de Pós-Graduação em Computação
UFPel
Brasil
publisher.none.fl_str_mv Universidade Federal de Pelotas
Centro de Desenvolvimento Tecnológico
Programa de Pós-Graduação em Computação
UFPel
Brasil
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPel - Guaiaca
instname:Universidade Federal de Pelotas (UFPEL)
instacron:UFPEL
instname_str Universidade Federal de Pelotas (UFPEL)
instacron_str UFPEL
institution UFPEL
reponame_str Repositório Institucional da UFPel - Guaiaca
collection Repositório Institucional da UFPel - Guaiaca
repository.name.fl_str_mv Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL)
repository.mail.fl_str_mv rippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.br
_version_ 1845919942790086656