dc.creator | Costa, Michael Alexandre | |
dc.date.accessioned | 2021-10-04T22:00:36Z | |
dc.date.available | 2021-10-04T22:00:36Z | |
dc.date.issued | 2021-06-24 | |
dc.identifier.citation | COSTA, Michael Alexandre. LTMS - Lups Transactional Memory Scheduler: um escalonador NUMA-Aware para STM.. Orientador: André Du Bois. 2021. 57 f. Dissertação (Mestrado em Ciência da Computação) – Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, Pelotas, 2021. | pt_BR |
dc.identifier.uri | http://guaiaca.ufpel.edu.br/handle/prefix/8016 | |
dc.description.abstract | Software Transactional Memory (STM) is an alternative to synchronization using locks and monitors. STM allows the programmer to write parallel codes in a simpler way, as it is possible to replace the use of locks with atomic blocks. However, with the increase in parallelism, there is an increase in contention, which in STM is reflected in a greater number of conflicts. Seeking to optimize STM performance, many studies focus on reducing the number of conflicts through schedulers. However, in current architectures, it is also important to consider where program memory is allocated and how it is accessed. This dissertation proposes a NUMA-Aware scheduler for STM, entitled Lups Transactional Memory Scheduler (LTMS), which, at runtime, collects data about the application and architecture used to optimize the execution of STM in NUMA architectures. For this, the scheduling strategy is divided into three steps. The first provides an initialization mechanism, creating queues that reflect the thread distribution architecture and strategies, to analyze the impact that thread distribution has on the application. The second step presents a mechanism to collect data at runtime, in this step data about the threads and their transactions, memory accesses and the used architecture are collected. The third step brings a system for migration of threads at runtime, which comes into action after a conflict occurs,
this step seeks to group conflicting threads minimizing future conflicts and reducing the cost of memory access. For decision-making at this stage, two heuristics were developed to understand the STM behavior in relation to latency cost and conflict intensity. To carry out tests, the LTMS was implemented with the TinySTM library and was used with a set of STAMP benchmarks. The experiments were performed using the different thread distribution and migration strategies developed and compared with
the TinySTM 1.0.5 library. The experiments showed for most benchmarks lower abort rate and better execution time. | pt_BR |
dc.description.sponsorship | Sem bolsa | pt_BR |
dc.language | por | pt_BR |
dc.publisher | Universidade Federal de Pelotas | pt_BR |
dc.rights | OpenAccess | pt_BR |
dc.subject | Computação | pt_BR |
dc.subject | Memórias Transacionais - TM | pt_BR |
dc.subject | Non-Uniform Memory Access - NUMA | pt_BR |
dc.subject | Escalonador | pt_BR |
dc.subject | Transactional Memory - TM | pt_BR |
dc.subject | Non-Uniform Memory Access - NUMA | pt_BR |
dc.subject | Scheduler | pt_BR |
dc.title | LTMS - Lups Transactional Memory Scheduler: um escalonador NUMA-Aware para STM | pt_BR |
dc.title.alternative | Transaction Scheduler for NUMA Architectures | pt_BR |
dc.type | masterThesis | pt_BR |
dc.contributor.authorLattes | http://lattes.cnpq.br/9077460145415117 | pt_BR |
dc.contributor.advisorLattes | http://lattes.cnpq.br/3277487290886063 | pt_BR |
dc.description.resumo | Memória transacional em Software (STM) é uma alternativa à sincronização utilizando locks e monitores. A STM permite ao programador escrever códigos paralelos de forma mais simples, pois é possível substituir o uso de bloqueios por blocos atômicos. Porém, com o aumento do paralelismo existe um aumento na contenção que em STM se reflete em um maior número de conflitos. Buscando otimizar o desempenho de STM, muitos estudos focam na redução do número de conflitos por meio de escalonadores. Contudo, nas arquiteturas atuais também é importante considerar onde a memória do programa está alocada e como ela é acessada. Esta dissertação propõe um escalonador NUMA-Aware para STM, intitulado Lups Transactional Memory Scheduler (LTMS), o qual em tempo de execução, coleta dados sobre a aplicação e arquitetura utilizada para otimizar a execução de STM em arquiteturas NUMA. Para isto a estratégia de escalonamento é dividido em três etapas. A primeira fornece um mecanismo de inicialização, com criação de filas que reflitam a arquitetura e estratégias de distribuição de threads, para analisar o impacto que a distribuição de threads possui sobre a aplicação. A segunda etapa apresenta um mecanismo para coletar dados em tempo de execução, nesta etapa são coletados dados sobre as threads e suas transações, os acessos à memória e a arquitetura
utilizada. A terceira etapa traz um sistema para migração de threads em tempo de execução, o qual entra em ação após a ocorrência de um conflito, esta etapa busca agrupar threads conflitantes minimizando conflitos futuros e reduzindo o custo de acesso à memória. Para a tomada de decisão desta etapa, foram desenvolvidas duas heurísticas para entender o comportamento da STM em relação ao custo de latência e intensidade de conflitos. Para realização de testes o LTMS foi implementado junto a biblioteca TinySTM e foi utilizado com conjunto de benchmarks STAMP. Os
experimentos foram executados utilizando as diferentes estratégias de distribuição e migração de threads desenvolvidos e comparados com a biblioteca TinySTM 1.0.5. Os experimentos apresentaram para maioria dos benchmarks menor taxa de abort e melhor tempo de execução. | pt_BR |
dc.publisher.department | Centro de Desenvolvimento Tecnológico | pt_BR |
dc.publisher.program | Programa de Pós-Graduação em Computação | pt_BR |
dc.publisher.initials | UFPel | pt_BR |
dc.subject.cnpq | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO | pt_BR |
dc.publisher.country | Brasil | pt_BR |
dc.contributor.advisor1 | Du Bois, André Rauber | |