Escalonamento de transações em memória a nível de usuário em Haskell
| Autor(a) principal: | |
|---|---|
| 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: | 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. |
| 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 |
Escalonamento de transações em memória a nível de usuário em HaskellUser-level Scheduling of Memory Transactions in Haskell.ComputaçãoMemórias transacionaisEscalonamento de transaçõesMulticoreTransactional memoryTransactional schedulerCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAOTransactional 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 - CAPESMemó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.Universidade Federal de PelotasCentro de Desenvolvimento TecnológicoPrograma de Pós-Graduação em ComputaçãoUFPelBrasilhttp://lattes.cnpq.br/2301320966169130http://lattes.cnpq.br/3277487290886063Du Bois, André RauberDuarte, Rodrigo Medeiros2020-11-26T13:52:40Z2020-11-26T13:52:40Z2020-04-23info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfDUARTE, 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/6656porinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFPel - Guaiacainstname:Universidade Federal de Pelotas (UFPEL)instacron:UFPEL2023-07-13T06:47:37Zoai:guaiaca.ufpel.edu.br:prefix/6656Repositó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.none.fl_str_mv |
Escalonamento de transações em memória a nível de usuário em Haskell 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 Computação Memórias transacionais Escalonamento de transações Multicore Transactional memory Transactional scheduler CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO |
| 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.none.fl_str_mv |
http://lattes.cnpq.br/2301320966169130 http://lattes.cnpq.br/3277487290886063 Du Bois, André Rauber |
| dc.contributor.author.fl_str_mv |
Duarte, Rodrigo Medeiros |
| dc.subject.por.fl_str_mv |
Computação Memórias transacionais Escalonamento de transações Multicore Transactional memory Transactional scheduler CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO |
| topic |
Computação Memórias transacionais Escalonamento de transações Multicore Transactional memory Transactional scheduler CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO |
| description |
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. |
| publishDate |
2020 |
| dc.date.none.fl_str_mv |
2020-11-26T13:52:40Z 2020-11-26T13:52:40Z 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.uri.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. 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.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_ |
1845919951783723008 |