Show simple item record

dc.creatorCosta, Michael Alexandre
dc.date.accessioned2021-10-04T22:00:36Z
dc.date.available2021-10-04T22:00:36Z
dc.date.issued2021-06-24
dc.identifier.citationCOSTA, 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.urihttp://guaiaca.ufpel.edu.br/handle/prefix/8016
dc.description.abstractSoftware 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.sponsorshipSem bolsapt_BR
dc.languageporpt_BR
dc.publisherUniversidade Federal de Pelotaspt_BR
dc.rightsOpenAccesspt_BR
dc.subjectComputaçãopt_BR
dc.subjectMemórias Transacionais - TMpt_BR
dc.subjectNon-Uniform Memory Access - NUMApt_BR
dc.subjectEscalonadorpt_BR
dc.subjectTransactional Memory - TMpt_BR
dc.subjectNon-Uniform Memory Access - NUMApt_BR
dc.subjectSchedulerpt_BR
dc.titleLTMS - Lups Transactional Memory Scheduler: um escalonador NUMA-Aware para STMpt_BR
dc.title.alternativeTransaction Scheduler for NUMA Architecturespt_BR
dc.typemasterThesispt_BR
dc.contributor.authorLatteshttp://lattes.cnpq.br/9077460145415117pt_BR
dc.contributor.advisorLatteshttp://lattes.cnpq.br/3277487290886063pt_BR
dc.description.resumoMemó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.departmentCentro de Desenvolvimento Tecnológicopt_BR
dc.publisher.programPrograma de Pós-Graduação em Computaçãopt_BR
dc.publisher.initialsUFPelpt_BR
dc.subject.cnpqCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOpt_BR
dc.publisher.countryBrasilpt_BR
dc.contributor.advisor1Du Bois, André Rauber


Files in this item

Thumbnail
Thumbnail
Thumbnail
Thumbnail

This item appears in the following Collection(s)

Show simple item record