Uma extensão à OpenMP para suporte à memória transacional
Autor(a) principal: | |
---|---|
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 |