Escalonamento de transações em memória a nível de usuário em Haskell

Detalhes bibliográficos
Autor(a) principal: Duarte, Rodrigo Medeiros
Data de Publicação: 2020
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFPel - Guaiaca
Texto Completo: http://guaiaca.ufpel.edu.br/handle/prefix/6656
Resumo: Memória Transacional é um modelo de sincronização entre threads que utiliza um conceito de transações parecido com o de bancos de dados. Este modelo de sincronização apresenta uma elevada abstração, pois nele o programador somente define os dados que deve ser sincronizados, ficando a tarefa da correta sincronização a cargo do sistema transacional. Apesar de sua elevada abstração, memórias transacionais tendem a perder desempenho em sistemas de alta contenção de memória devido à alta taxa de conflitos entre as transações. Essa alta taxa de conflitos conduz a uma degradação do desempenho por não explorar de forma eficiente os recursos disponíveis (cores). Neste contexto, o escalonamento transacional emerge como uma alternativa para reduzir a alta taxa de cancelamentos. Nesta estratégia, as transações são gerenciadas com o objetivo de evitar que novos conflitos venham a ocorrer, distribuindo as transações na tentativa de explorar de forma mais eficiente os recursos computacionais disponíveis (cores). Este trabalho apresenta o desenvolvimento de três diferentes escalonadores transacionais em Haskell, explorando a praticidade de implementar escalonadores, os quais são estruturas complexas, dentro de uma linguagem de alto nível de abstração. O objetivo é a comparação do comportamento de diferentes técnicas de escalonamento sobre diferentes algoritmos transacionais, como o TL2, TINY e o SWISS, que apresentam versionamento de dados tardio, adiantado e misto, respectivamente. Os resultados obtidos demonstraram que, o uso dos escalonadores reduziu a quantidade de conflitos na maioria das aplicações, impactando em uma redução no tempo de execução. Também observou-se que, quando os escalonadores foram utilizados em aplicações de contenção máxima de memória, esses evitaram que o sistema tivesse maior degradação, apresentando um tempo de execução quase constante independente da quantidade de threads usadas. Por fim, observou-se que a eficiência em um escalonador tem em reduzir os conflitos também está associado ao tipo de algoritmo de memória transacional que este usa e não somente em sua capacidade de lidar com conflitos.
id UFPL_83bb3832e02e43693c51fb16a9169aac
oai_identifier_str oai:guaiaca.ufpel.edu.br:prefix/6656
network_acronym_str UFPL
network_name_str Repositório Institucional da UFPel - Guaiaca
repository_id_str
spelling 2020-11-26T13:52:40Z2020-11-26T13:52:40Z2020-04-23DUARTE, Rodrigo Medeiros. Escalonamento de Transações em Memória a Nível de Usuário em Haskell. Orientador: André Rauber Du Bois. 2020. 95 f. Dissertação (Mestrado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2020.http://guaiaca.ufpel.edu.br/handle/prefix/6656Memória Transacional é um modelo de sincronização entre threads que utiliza um conceito de transações parecido com o de bancos de dados. Este modelo de sincronização apresenta uma elevada abstração, pois nele o programador somente define os dados que deve ser sincronizados, ficando a tarefa da correta sincronização a cargo do sistema transacional. Apesar de sua elevada abstração, memórias transacionais tendem a perder desempenho em sistemas de alta contenção de memória devido à alta taxa de conflitos entre as transações. Essa alta taxa de conflitos conduz a uma degradação do desempenho por não explorar de forma eficiente os recursos disponíveis (cores). Neste contexto, o escalonamento transacional emerge como uma alternativa para reduzir a alta taxa de cancelamentos. Nesta estratégia, as transações são gerenciadas com o objetivo de evitar que novos conflitos venham a ocorrer, distribuindo as transações na tentativa de explorar de forma mais eficiente os recursos computacionais disponíveis (cores). Este trabalho apresenta o desenvolvimento de três diferentes escalonadores transacionais em Haskell, explorando a praticidade de implementar escalonadores, os quais são estruturas complexas, dentro de uma linguagem de alto nível de abstração. O objetivo é a comparação do comportamento de diferentes técnicas de escalonamento sobre diferentes algoritmos transacionais, como o TL2, TINY e o SWISS, que apresentam versionamento de dados tardio, adiantado e misto, respectivamente. Os resultados obtidos demonstraram que, o uso dos escalonadores reduziu a quantidade de conflitos na maioria das aplicações, impactando em uma redução no tempo de execução. Também observou-se que, quando os escalonadores foram utilizados em aplicações de contenção máxima de memória, esses evitaram que o sistema tivesse maior degradação, apresentando um tempo de execução quase constante independente da quantidade de threads usadas. Por fim, observou-se que a eficiência em um escalonador tem em reduzir os conflitos também está associado ao tipo de algoritmo de memória transacional que este usa e não somente em sua capacidade de lidar com conflitos.Transactional memory is a thread synchronization model that uses a transaction concept which is similar to the one seen in databases. This model is highly abstract, since the programmer only needs to define data that must be synchronized, whereas the synchronization task is performed by the transactional system. Although transactional memories are highly abstract, they tend to lose performance in high contention systems due to the large conflict rate between transactions. This leads to performance deterioration, as available resources (cores) are not explored in an efficient way. In this context, the transactional scheduling appears as an alternative to mitigate the high rate of cancellations. In this strategy, transactions are managed so that new conflicts are avoided, by distributing transactions in a way that available computational resources (cores) can be explored more efficiently. This work presents three transactional schedulers which are developed in Haskell, exploring its practicality of implementing complex structures in a programming language which has a high level of abstraction. The goal of this work is to show the behaviour comparison of different scheduling techniques over different transactional algorithms, such as TL2, TINY and SWISS – where they have, respectively, late, forward and mixed data versioning. The results of this work show that by using the schedulers, the number of conflicts has been reduced in most of applications, which reduced overall runtime. In addition, when schedulers were used in applications where maximum memory contention occurred, system deterioration was lower – runtime was near constant, independently of number of threads used. Finally, it has been noted that scheduler efficiency (reducing conflicts) is also associated with the type of transactional memory algorithm that is used, and not just with its capacity to deal with conflicts.Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESporUniversidade Federal de PelotasPrograma de Pós-Graduação em ComputaçãoUFPelBrasilCentro de Desenvolvimento TecnológicoCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAOComputaçãoMemórias transacionaisEscalonamento de transaçõesMulticoreTransactional memoryTransactional schedulerEscalonamento de transações em memória a nível de usuário em HaskellUser-level Scheduling of Memory Transactions in Haskell.info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesishttp://lattes.cnpq.br/2301320966169130http://lattes.cnpq.br/3277487290886063Du Bois, André RauberDuarte, Rodrigo Medeirosinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPel - Guaiacainstname:Universidade Federal de Pelotas (UFPEL)instacron:UFPELTEXTDissertacao_Rodrigo_Medeiros_Duarte.pdf.txtDissertacao_Rodrigo_Medeiros_Duarte.pdf.txtExtracted texttext/plain177613http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/6/Dissertacao_Rodrigo_Medeiros_Duarte.pdf.txt5f1c0693c5e4d69b6efcd73cc50fe1fdMD56open accessTHUMBNAILDissertacao_Rodrigo_Medeiros_Duarte.pdf.jpgDissertacao_Rodrigo_Medeiros_Duarte.pdf.jpgGenerated Thumbnailimage/jpeg1238http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/7/Dissertacao_Rodrigo_Medeiros_Duarte.pdf.jpga4112c41ed7d64de38279427d004b353MD57open accessORIGINALDissertacao_Rodrigo_Medeiros_Duarte.pdfDissertacao_Rodrigo_Medeiros_Duarte.pdfapplication/pdf1407627http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/1/Dissertacao_Rodrigo_Medeiros_Duarte.pdfc4c9ec1f4f99c860a35258b26cc197d7MD51open accessCC-LICENSElicense_urllicense_urltext/plain; charset=utf-849http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/2/license_url4afdbb8c545fd630ea7db775da747b2fMD52open accesslicense_textlicense_texttext/html; charset=utf-80http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/3/license_textd41d8cd98f00b204e9800998ecf8427eMD53open accesslicense_rdflicense_rdfapplication/rdf+xml; charset=utf-80http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/4/license_rdfd41d8cd98f00b204e9800998ecf8427eMD54open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-81866http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/5/license.txt43cd690d6a359e86c1fe3d5b7cba0c9bMD55open accessprefix/66562023-07-13 03:47:37.812open accessoai:guaiaca.ufpel.edu.br:prefix/6656TElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgYW8gUmVwb3NpdMOzcmlvIApJbnN0aXR1Y2lvbmFsIG8gZGlyZWl0byBuw6NvLWV4Y2x1c2l2byBkZSByZXByb2R1emlyLCAgdHJhZHV6aXIgKGNvbmZvcm1lIGRlZmluaWRvIGFiYWl4byksIGUvb3UgZGlzdHJpYnVpciBhIApzdWEgcHVibGljYcOnw6NvIChpbmNsdWluZG8gbyByZXN1bW8pIHBvciB0b2RvIG8gbXVuZG8gbm8gZm9ybWF0byBpbXByZXNzbyBlIGVsZXRyw7RuaWNvIGUgZW0gcXVhbHF1ZXIgbWVpbywgaW5jbHVpbmRvIG9zIApmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIG8gRGVwb3NpdGEgcG9kZSwgc2VtIGFsdGVyYXIgbyBjb250ZcO6ZG8sIHRyYW5zcG9yIGEgc3VhIHB1YmxpY2HDp8OjbyBwYXJhIHF1YWxxdWVyIG1laW8gb3UgZm9ybWF0byAKcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBvIERlcG9zaXRhIHBvZGUgbWFudGVyIG1haXMgZGUgdW1hIGPDs3BpYSBkZSBzdWEgcHVibGljYcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIAplIHByZXNlcnZhw6fDo28uCgpWb2PDqiBkZWNsYXJhIHF1ZSBhIHN1YSBwdWJsaWNhw6fDo28gw6kgb3JpZ2luYWwgZSBxdWUgdm9jw6ogdGVtIG8gcG9kZXIgZGUgY29uY2VkZXIgb3MgZGlyZWl0b3MgY29udGlkb3MgbmVzdGEgbGljZW7Dp2EuIApWb2PDqiB0YW1iw6ltIGRlY2xhcmEgcXVlIG8gZGVww7NzaXRvIGRhIHN1YSBwdWJsaWNhw6fDo28gbsOjbywgcXVlIHNlamEgZGUgc2V1IGNvbmhlY2ltZW50bywgaW5mcmluZ2UgZGlyZWl0b3MgYXV0b3JhaXMgCmRlIG5pbmd1w6ltLgoKQ2FzbyBhIHN1YSBwdWJsaWNhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6ogZGVjbGFyYSBxdWUgCm9idGV2ZSBhIHBlcm1pc3PDo28gaXJyZXN0cml0YSBkbyBkZXRlbnRvciBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgcGFyYSBjb25jZWRlciBhbyBEZXBvc2l0YSBvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgCm5lc3RhIGxpY2Vuw6dhLCBlIHF1ZSBlc3NlIG1hdGVyaWFsIGRlIHByb3ByaWVkYWRlIGRlIHRlcmNlaXJvcyBlc3TDoSBjbGFyYW1lbnRlIGlkZW50aWZpY2FkbyBlIHJlY29uaGVjaWRvIG5vIHRleHRvIApvdSBubyBjb250ZcO6ZG8gZGEgcHVibGljYcOnw6NvIG9yYSBkZXBvc2l0YWRhLgoKQ0FTTyBBIFBVQkxJQ0HDh8ODTyBPUkEgREVQT1NJVEFEQSBURU5IQSBTSURPIFJFU1VMVEFETyBERSBVTSBQQVRST0PDjU5JTyBPVSBBUE9JTyBERSBVTUEgQUfDik5DSUEgREUgRk9NRU5UTyBPVSBPVVRSTyAKT1JHQU5JU01PLCBWT0PDiiBERUNMQVJBIFFVRSBSRVNQRUlUT1UgVE9ET1MgRSBRVUFJU1FVRVIgRElSRUlUT1MgREUgUkVWSVPDg08gQ09NTyBUQU1Cw4lNIEFTIERFTUFJUyBPQlJJR0HDh8OVRVMgCkVYSUdJREFTIFBPUiBDT05UUkFUTyBPVSBBQ09SRE8uCgpPIERlcG9zaXRhIHNlIGNvbXByb21ldGUgYSBpZGVudGlmaWNhciBjbGFyYW1lbnRlIG8gc2V1IG5vbWUgKHMpIG91IG8ocykgbm9tZShzKSBkbyhzKSBkZXRlbnRvcihlcykgZG9zIGRpcmVpdG9zIAphdXRvcmFpcyBkYSBwdWJsaWNhw6fDo28sIGUgbsOjbyBmYXLDoSBxdWFscXVlciBhbHRlcmHDp8OjbywgYWzDqW0gZGFxdWVsYXMgY29uY2VkaWRhcyBwb3IgZXN0YSBsaWNlbsOnYS4KRepositório InstitucionalPUBhttp://repositorio.ufpel.edu.br/oai/requestrippel@ufpel.edu.br || repositorio@ufpel.edu.br || aline.batista@ufpel.edu.bropendoar:2023-07-13T06:47:37Repositório Institucional da UFPel - Guaiaca - Universidade Federal de Pelotas (UFPEL)false
dc.title.pt_BR.fl_str_mv Escalonamento de transações em memória a nível de usuário em Haskell
dc.title.alternative.pt_BR.fl_str_mv User-level Scheduling of Memory Transactions in Haskell.
title Escalonamento de transações em memória a nível de usuário em Haskell
spellingShingle Escalonamento de transações em memória a nível de usuário em Haskell
Duarte, Rodrigo Medeiros
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
Computação
Memórias transacionais
Escalonamento de transações
Multicore
Transactional memory
Transactional scheduler
title_short Escalonamento de transações em memória a nível de usuário em Haskell
title_full Escalonamento de transações em memória a nível de usuário em Haskell
title_fullStr Escalonamento de transações em memória a nível de usuário em Haskell
title_full_unstemmed Escalonamento de transações em memória a nível de usuário em Haskell
title_sort Escalonamento de transações em memória a nível de usuário em Haskell
author Duarte, Rodrigo Medeiros
author_facet Duarte, Rodrigo Medeiros
author_role author
dc.contributor.authorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/2301320966169130
dc.contributor.advisorLattes.pt_BR.fl_str_mv http://lattes.cnpq.br/3277487290886063
dc.contributor.advisor1.fl_str_mv Du Bois, André Rauber
dc.contributor.author.fl_str_mv Duarte, Rodrigo Medeiros
contributor_str_mv Du Bois, André Rauber
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
topic CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
Computação
Memórias transacionais
Escalonamento de transações
Multicore
Transactional memory
Transactional scheduler
dc.subject.por.fl_str_mv Computação
Memórias transacionais
Escalonamento de transações
Multicore
Transactional memory
Transactional scheduler
description Memória Transacional é um modelo de sincronização entre threads que utiliza um conceito de transações parecido com o de bancos de dados. Este modelo de sincronização apresenta uma elevada abstração, pois nele o programador somente define os dados que deve ser sincronizados, ficando a tarefa da correta sincronização a cargo do sistema transacional. Apesar de sua elevada abstração, memórias transacionais tendem a perder desempenho em sistemas de alta contenção de memória devido à alta taxa de conflitos entre as transações. Essa alta taxa de conflitos conduz a uma degradação do desempenho por não explorar de forma eficiente os recursos disponíveis (cores). Neste contexto, o escalonamento transacional emerge como uma alternativa para reduzir a alta taxa de cancelamentos. Nesta estratégia, as transações são gerenciadas com o objetivo de evitar que novos conflitos venham a ocorrer, distribuindo as transações na tentativa de explorar de forma mais eficiente os recursos computacionais disponíveis (cores). Este trabalho apresenta o desenvolvimento de três diferentes escalonadores transacionais em Haskell, explorando a praticidade de implementar escalonadores, os quais são estruturas complexas, dentro de uma linguagem de alto nível de abstração. O objetivo é a comparação do comportamento de diferentes técnicas de escalonamento sobre diferentes algoritmos transacionais, como o TL2, TINY e o SWISS, que apresentam versionamento de dados tardio, adiantado e misto, respectivamente. Os resultados obtidos demonstraram que, o uso dos escalonadores reduziu a quantidade de conflitos na maioria das aplicações, impactando em uma redução no tempo de execução. Também observou-se que, quando os escalonadores foram utilizados em aplicações de contenção máxima de memória, esses evitaram que o sistema tivesse maior degradação, apresentando um tempo de execução quase constante independente da quantidade de threads usadas. Por fim, observou-se que a eficiência em um escalonador tem em reduzir os conflitos também está associado ao tipo de algoritmo de memória transacional que este usa e não somente em sua capacidade de lidar com conflitos.
publishDate 2020
dc.date.accessioned.fl_str_mv 2020-11-26T13:52:40Z
dc.date.available.fl_str_mv 2020-11-26T13:52:40Z
dc.date.issued.fl_str_mv 2020-04-23
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv DUARTE, Rodrigo Medeiros. Escalonamento de Transações em Memória a Nível de Usuário em Haskell. Orientador: André Rauber Du Bois. 2020. 95 f. Dissertação (Mestrado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2020.
dc.identifier.uri.fl_str_mv http://guaiaca.ufpel.edu.br/handle/prefix/6656
identifier_str_mv DUARTE, Rodrigo Medeiros. Escalonamento de Transações em Memória a Nível de Usuário em Haskell. Orientador: André Rauber Du Bois. 2020. 95 f. Dissertação (Mestrado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2020.
url http://guaiaca.ufpel.edu.br/handle/prefix/6656
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/6656/6/Dissertacao_Rodrigo_Medeiros_Duarte.pdf.txt
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/7/Dissertacao_Rodrigo_Medeiros_Duarte.pdf.jpg
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/1/Dissertacao_Rodrigo_Medeiros_Duarte.pdf
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/2/license_url
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/3/license_text
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/4/license_rdf
http://guaiaca.ufpel.edu.br/xmlui/bitstream/prefix/6656/5/license.txt
bitstream.checksum.fl_str_mv 5f1c0693c5e4d69b6efcd73cc50fe1fd
a4112c41ed7d64de38279427d004b353
c4c9ec1f4f99c860a35258b26cc197d7
4afdbb8c545fd630ea7db775da747b2f
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_ 1797767475429900288