Please use this identifier to cite or link to this item: http://repositorio.unicamp.br/jspui/handle/REPOSIP/348481
Type: TESE DIGITAL
Degree Level: Doutorado
Title: Improving hardware/software transactional memory codesign : a phase-based and over-instrumentation elimination approach = Melhorando o codesign hardware/software em memória transacional: uma abordagem baseada em fases e eliminação de instrumentação em excesso
Title Alternative: Melhorando o codesign hardware/software em memória transacional : uma abordagem baseada em fases e eliminação de instrumentação em excesso
Author: Carvalho, João Paulo Labegalini de, 1991-
Advisor: Araújo, Guido Costa Souza de, 1962-
Abstract: Resumo: A época na qual computadores eram considerados artigos luxuosos demais para se ter em casa ou quando eram apenas grandes calculadoras já passou. Atualmente, ciência e engenharia da computação tem papel central nos avanços de diversas áreas de pesquisa. No entanto, atender a crescente demanda por desempenho ainda é um desafio para cientistas da computação, assim como para a indústria de computadores. Durante décadas a indústria de microprocessadores proveu contínuo aumento em desempenho a cada nova geração de processadores, seguindo a previsão de Moore baseada nas melhorias da tecnologia de semicondutores. Quando o limite na densidade de potência fornecida em semicondutores estava próximo de ser atingido, a mudança de máquinas mononucleo para multi-núcleo mostrou-se uma das melhorias mais significativas no desempenho de computadores modernos. Entretanto, mesmo com maior poder computacional, máquinas paralelas ainda são difíceis de serem adotadas devido aos desafios para desenvolver programas paralelos. A maioria dos modelos de programação paralelo requer programas que explicitamente usem os núcleos de processamento disponíveis. Todavia, para garantir resultados corretos, a necessária sincronização no acesso de recursos compartilhados mostrou-se ser um tarefa difícil e propensa a erros. Nessa direção, o modelo de programação denominado Memória Transacional (TM) propõe a simplificação na escrita de programas paralelos ao tornar a sincronização transparente para o programador. No modelo de TM o programador apenas deve se preocupar com o que deve ser sincronizado e não com a escrita de código de sincronização. Mesmo após um grande volume de resultados mostrando os benefícios e ganhos em desempenho em sistemas em software, hardware e híbridos, a adoção de TM ainda está restrita à aplicações de pesquisa. De fato, recentemente pesquisadores respeitados na área desistiram de apresentar a especificação técnica revisada ao comitê da linguagem C++ para incorporar TM como parte da linguagem. Após várias tentativas mal-sucedidas, os pesquisadores concluíram que não há dados suficientes para guiar as decisões de implementação baseadas na experiência de uso do modelo de TM. Somado a isso, sistema híbridos convencionais (HyTM) provaram-se limitados mesmo podendo executar transações em hardware e software simultaneamente. A classe de algoritmos baseados em fases (PhasedTM), antes dos resultados apresentados neste manuscrito, foram considerados alternativas inferiores aos sistemas HyTM. Nessa direção, esta tese apresenta duas contribuições na área de TM. Primeiramente, a tese constrói um caso sólido em favor de sistemas de TM baseados em fases. Segundamente, a tese apresenta um suporte estendido para TM no compilador Clang que permite a geração de código transacional eficiente de forma automática. Mais especificamente, esta tese apresenta resultados contradizendo a suposta inferioridade de sistemas baseados em fases em contraste com sistemas híbridos convencionais de TM. A tese também apresenta um novo mecanismo de anotação (TMElide) para omissão seletiva de barreiras transacionais que normalmente seriam inseridas desnecessariamente pelo compilador. A tese apresenta a anotação TMElide que estende o sistema de tipos na linguagem C/C++ e a incorporação de TM no compilador Clang/LLVM

Abstract: The time when computers were considered just another luxury commodity to have at home or an expensive tool to crunch numbers are long gone. Nowadays, computer science and engineering are at the core of recent advances in many research fields. However, the ever-increasing demand for performance still imposes a challenge to both computer scientists and industry. For decades, the microprocessor industry successfully provided a steady performance increase with each new processor release, leveraged by Moore¿s Law continuous improvement of semiconductor technology. As power density boundaries in semiconductor technology have been reached, the shift from single-core to multicore processing has become the most relevant performance improvement tool in modern computer design. Despite the great potential of multicore machines to meet today¿s demands, their adoption is still modest mainly due to the challenging aspect of concurrent programming. Most concurrent programming models available require programmers to explicitly write their code in a way that all cores are used. Yet the task of synchronizing multiple concurrent accesses to shared resources has proven to be error-prone and far from trivial. In this direction, the Transactional Memory (TM) programming model provides a simple and transparent abstraction to express what needs to be synchronized, with- out requiring the programmer to write synchronization code. TM has the potential to greatly simplify the exploitation of the parallelism available on multicore architectures while simplifying the programmers¿ task. Nonetheless, TM usage and adoption is mostly restricted to research applications, although a large body of research shows the benefits and great performance results that software, hardware and hybrid transactional systems enable. In fact, recently leading researchers in the area backed-off from presenting a re- vised technical specification for standardizing TM in C/C++, after many failed attempts, mainly due to the lack of usage experience. Moreover, although conventional hybrid TM systems allow different transactions to operate in hardware and software, simultaneously, such systems were proven to be inherently limited. Phase-based transactional systems (PhasedTM) are another class of hybrid TMs that execute transactions in non-overlaped phases but, prior to the work described in this manuscript, they were considered as an inferior hybrid variant. In this direction, this thesis makes two contributions to the field of TM. First, it makes a solid case in favor of phase-based transactional memory. And second, it shows how extended compiler support for TM can be used to automatically generate high-performance transactional code. More specifically, this work builds a case for phase-based transactional systems, which were, so far, regarded as inferior variations of conventional hybrid transactional systems. In addition, it proposes a novel annotation mechanism (TMElide) to selectively eliminate unnecessary transactional memory barriers from compiler generated code. This thesis presents the TMElide annotation which extends the C/C++ language type system and how trasactional memory support was incorporated into the Clang/LLVM compiler framework
Subject: Memória transacional
Compiladores (Programas de computador)
Sistemas híbridos
Linguagem de programação (Computadores)
Language: Português
Editor: [s.n.]
Citation: CARVALHO, João Paulo Labegalini de. Improving hardware/software transactional memory codesign: a phase-based and over-instrumentation elimination approach = Melhorando o codesign hardware/software em memória transacional: uma abordagem baseada em fases e eliminação de instrumentação em excesso. 2020. 1 recurso online (118 p.) Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação, Campinas, SP. Disponível em: http://www.repositorio.unicamp.br/handle/REPOSIP/348481. Acesso em: 1 Sep. 2020.
Date Issue: 2020
Appears in Collections:IC - Tese e Dissertação

Files in This Item:
File SizeFormat 
Carvalho_JoaoPauloLabegaliniDe_D.pdf4.42 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.