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: Um 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.
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 2021-08-10T21:24:22Z2021-08-10T21:24:22Z2021-05-21JARDIM, 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/7933Um 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.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.Sem bolsaporUniversidade Federal de PelotasPrograma de Pós-Graduação em ComputaçãoUFPelBrasilCentro de Desenvolvimento TecnológicoCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOComputaçãoProgramação multithreadMemória transacionalMemória transacional em softwareMultithreaded programmingTransactional memoryOpenMPSoftware transactional memoryUma extensão à OpenMP para suporte à memória transacionalAn OpenMP extension to support transactional memoryinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesishttp://lattes.cnpq.br/0408367247397972http://lattes.cnpq.br/1542351302502326Du Bois, André Rauberhttp://lattes.cnpq.br/3277487290886063Cavalheiro, Gerson Geraldo HomrichJardim, André Desessardsinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPel - Guaiacainstname:Universidade Federal de Pelotas (UFPEL)instacron:UFPELTEXTTese_Andre_Jardim.pdf.txtTese_Andre_Jardim.pdf.txtExtracted texttext/plain302351http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/6/Tese_Andre_Jardim.pdf.txt56ca48bcbb46e8eaf84a029adc044f13MD56open accessTHUMBNAILTese_Andre_Jardim.pdf.jpgTese_Andre_Jardim.pdf.jpgGenerated Thumbnailimage/jpeg1226http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/7/Tese_Andre_Jardim.pdf.jpg969381f26ffe78a8fc41a7152f45cec7MD57open accessORIGINALTese_Andre_Jardim.pdfTese_Andre_Jardim.pdfapplication/pdf1028269http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/1/Tese_Andre_Jardim.pdfd32e1f5a74df6b672804614a373380d7MD51open accessCC-LICENSElicense_urllicense_urltext/plain; charset=utf-849http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/2/license_url924993ce0b3ba389f79f32a1b2735415MD52open accesslicense_textlicense_texttext/html; charset=utf-80http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/3/license_textd41d8cd98f00b204e9800998ecf8427eMD53open accesslicense_rdflicense_rdfapplication/rdf+xml; charset=utf-80http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/4/license_rdfd41d8cd98f00b204e9800998ecf8427eMD54open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81866http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/5/license.txt43cd690d6a359e86c1fe3d5b7cba0c9bMD55open accessprefix/79332023-07-13 03:32:00.771open accessoai:guaiaca.ufpel.edu.br:prefix/7933TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgYW8gUmVwb3NpdMOzcmlvIApJbnN0aXR1Y2lvbmFsIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyLCAgdHJhZHV6aXIgKGNvbmZvcm1lIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBhIApzdWEgcHVibGljYcOnw6NvIChpbmNsdWluZG8gbyByZXN1bW8pIHBvciB0b2RvIG8gbXVuZG8gbm8gZm9ybWF0byBpbXByZXNzbyBlIGVsZXRyw7RuaWNvIGUgZW0gcXVhbHF1ZXIgbWVpbywgaW5jbHVpbmRvIG9zIApmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIG8gRGVwb3NpdGEgcG9kZSwgc2VtIGFsdGVyYXIgbyBjb250ZcO6ZG8sIHRyYW5zcG9yIGEgc3VhIHB1YmxpY2HDp8OjbyBwYXJhIHF1YWxxdWVyIG1laW8gb3UgZm9ybWF0byAKcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBvIERlcG9zaXRhIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkZSBzdWEgcHVibGljYcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIAplIHByZXNlcnZhw6fDo28uCgpWb2PDqiBkZWNsYXJhIHF1ZSBhIHN1YSBwdWJsaWNhw6fDo28gw6kgb3JpZ2luYWwgZSBxdWUgdm9jw6ogdGVtIG8gcG9kZXIgZGUgY29uY2VkZXIgb3MgZGlyZWl0b3MgY29udGlkb3MgbmVzdGEgbGljZW7Dp2EuIApWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIG8gZGVww7NzaXRvIGRhIHN1YSBwdWJsaWNhw6fDo28gbsOjbywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgaW5mcmluZ2UgZGlyZWl0b3MgYXV0b3JhaXMgCmRlIG5pbmd1w6ltLgoKQ2FzbyBhIHN1YSBwdWJsaWNhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6ogZGVjbGFyYSBxdWUgCm9idGV2ZSBhIHBlcm1pc3PDo28gaXJyZXN0cml0YSBkbyBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgcGFyYSBjb25jZWRlciBhbyBEZXBvc2l0YSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgCm5lc3RhIGxpY2Vuw6dhLCBlIHF1ZSBlc3NlIG1hdGVyaWFsIGRlIHByb3ByaWVkYWRlIGRlIHRlcmNlaXJvcyBlc3TDoSBjbGFyYW1lbnRlIGlkZW50aWZpY2FkbyBlIHJlY29uaGVjaWRvIG5vIHRleHRvIApvdSBubyBjb250ZcO6ZG8gZGEgcHVibGljYcOnw6NvIG9yYSBkZXBvc2l0YWRhLgoKQ0FTTyBBIFBVQkxJQ0HDh8ODTyBPUkEgREVQT1NJVEFEQSBURU5IQSBTSURPIFJFU1VMVEFETyBERSBVTSBQQVRST0PDjU5JTyBPVSBBUE9JTyBERSBVTUEgQUfDik5DSUEgREUgRk9NRU5UTyBPVSBPVVRSTyAKT1JHQU5JU01PLCBWT0PDiiBERUNMQVJBIFFVRSBSRVNQRUlUT1UgVE9ET1MgRSBRVUFJU1FVRVIgRElSRUlUT1MgREUgUkVWSVPDg08gQ09NTyBUQU1Cw4lNIEFTIERFTUFJUyBPQlJJR0HDh8OVRVMgCkVYSUdJREFTIFBPUiBDT05UUkFUTyBPVSBBQ09SRE8uCgpPIERlcG9zaXRhIHNlIGNvbXByb21ldGUgYSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8gc2V1IG5vbWUgKHMpIG91IG8ocykgbm9tZShzKSBkbyhzKSBkZXRlbnRvcihlcykgZG9zIGRpcmVpdG9zIAphdXRvcmFpcyBkYSBwdWJsaWNhw6fDo28sIGUgbsOjbyBmYXLDoSBxdWFscXVlciBhbHRlcmHDp8OjbywgYWzDqW0gZGFxdWVsYXMgY29uY2VkaWRhcyBwb3IgZXN0YSBsaWNlbsOnYS4KRepositó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.pt_BR.fl_str_mv Uma extensão à OpenMP para suporte à memória transacional
dc.title.alternative.pt_BR.fl_str_mv 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
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Computação
Programação multithread
Memória transacional
Memória transacional em software
Multithreaded programming
Transactional memory
OpenMP
Software transactional memory
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.authorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/0408367247397972
dc.contributor.advisorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/1542351302502326
dc.contributor.advisor-co1.fl_str_mv Du Bois, André Rauber
dc.contributor.advisor-co1Lattes.fl_str_mv http://lattes.cnpq.br/3277487290886063
dc.contributor.advisor1.fl_str_mv Cavalheiro, Gerson Geraldo Homrich
dc.contributor.author.fl_str_mv Jardim, André Desessards
contributor_str_mv Du Bois, André Rauber
Cavalheiro, Gerson Geraldo Homrich
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
topic CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
Computação
Programação multithread
Memória transacional
Memória transacional em software
Multithreaded programming
Transactional memory
OpenMP
Software transactional memory
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
description Um 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.
publishDate 2021
dc.date.accessioned.fl_str_mv 2021-08-10T21:24:22Z
dc.date.available.fl_str_mv 2021-08-10T21:24:22Z
dc.date.issued.fl_str_mv 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.citation.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.
dc.identifier.uri.fl_str_mv 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.publisher.none.fl_str_mv Universidade Federal de Pelotas
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Computação
dc.publisher.initials.fl_str_mv UFPel
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Centro de Desenvolvimento Tecnológico
publisher.none.fl_str_mv Universidade Federal de Pelotas
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
bitstream.url.fl_str_mv http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/6/Tese_Andre_Jardim.pdf.txt
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/7/Tese_Andre_Jardim.pdf.jpg
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/1/Tese_Andre_Jardim.pdf
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/2/license_url
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/3/license_text
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/4/license_rdf
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/7933/5/license.txt
bitstream.checksum.fl_str_mv 56ca48bcbb46e8eaf84a029adc044f13
969381f26ffe78a8fc41a7152f45cec7
d32e1f5a74df6b672804614a373380d7
924993ce0b3ba389f79f32a1b2735415
d41d8cd98f00b204e9800998ecf8427e
d41d8cd98f00b204e9800998ecf8427e
43cd690d6a359e86c1fe3d5b7cba0c9b
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
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_ 1813710094938931200