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
Autor(a) principal: | |
---|---|
Data de Publicação: | 2020 |
Tipo de documento: | Tese |
Idioma: | por |
Título da fonte: | Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) |
Texto Completo: | https://hdl.handle.net/20.500.12733/1639610 |
Resumo: | Orientador: Guido Costa Souza de Araújo |
id |
UNICAMP-30_cd0b96daa1019bf4dc3482cf440f7408 |
---|---|
oai_identifier_str |
oai::1149098 |
network_acronym_str |
UNICAMP-30 |
network_name_str |
Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) |
repository_id_str |
|
spelling |
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 excessoMelhorando o codesign hardware/software em memória transacional : uma abordagem baseada em fases e eliminação de instrumentação em excessoMemória transacionalCompiladores (Programas de computador)Sistemas híbridosLinguagem de programação (Computadores)Transactional memoryCompilers (Computer programs)Hybrid systemsProgramming languages (Electronic computers)Orientador: Guido Costa Souza de AraújoTese (doutorado) - Universidade Estadual de Campinas, Instituto de ComputaçãoResumo: 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/LLVMAbstract: 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 frameworkDoutoradoCiência da ComputaçãoDoutor em Ciência da ComputaçãoFAPESP2016/15337-9[s.n.]Araújo, Guido Costa Souza de, 1962-Castro, Márcio BastosBaldassin, Alexandro JoséPereira, Márcio MachadoBarreto, João Pedro Faria MendonçaUniversidade Estadual de Campinas (UNICAMP). Instituto de ComputaçãoPrograma de Pós-Graduação em Ciência da ComputaçãoUNIVERSIDADE ESTADUAL DE CAMPINASCarvalho, João Paulo Labegalini de, 1991-20202020-07-23T00:00:00Zinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisapplication/pdf1 recurso online (118 p.) : il., digital, arquivo PDF.https://hdl.handle.net/20.500.12733/1639610CARVALHO, 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: https://hdl.handle.net/20.500.12733/1639610. Acesso em: 3 set. 2024.https://repositorio.unicamp.br/acervo/detalhe/1149098Requisitos do sistema: Software para leitura de arquivo em PDFporreponame:Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP)instname:Universidade Estadual de Campinas (UNICAMP)instacron:UNICAMPinfo:eu-repo/semantics/openAccess2020-09-01T15:24:41Zoai::1149098Biblioteca Digital de Teses e DissertaçõesPUBhttp://repositorio.unicamp.br/oai/tese/oai.aspsbubd@unicamp.bropendoar:2020-09-01T15:24:41Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) - Universidade Estadual de Campinas (UNICAMP)false |
dc.title.none.fl_str_mv |
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 Melhorando o codesign hardware/software em memória transacional : uma abordagem baseada em fases e eliminação de instrumentação em excesso |
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 |
spellingShingle |
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 Carvalho, João Paulo Labegalini de, 1991- Memória transacional Compiladores (Programas de computador) Sistemas híbridos Linguagem de programação (Computadores) Transactional memory Compilers (Computer programs) Hybrid systems Programming languages (Electronic computers) |
title_short |
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_full |
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_fullStr |
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_full_unstemmed |
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_sort |
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 |
author |
Carvalho, João Paulo Labegalini de, 1991- |
author_facet |
Carvalho, João Paulo Labegalini de, 1991- |
author_role |
author |
dc.contributor.none.fl_str_mv |
Araújo, Guido Costa Souza de, 1962- Castro, Márcio Bastos Baldassin, Alexandro José Pereira, Márcio Machado Barreto, João Pedro Faria Mendonça Universidade Estadual de Campinas (UNICAMP). Instituto de Computação Programa de Pós-Graduação em Ciência da Computação UNIVERSIDADE ESTADUAL DE CAMPINAS |
dc.contributor.author.fl_str_mv |
Carvalho, João Paulo Labegalini de, 1991- |
dc.subject.por.fl_str_mv |
Memória transacional Compiladores (Programas de computador) Sistemas híbridos Linguagem de programação (Computadores) Transactional memory Compilers (Computer programs) Hybrid systems Programming languages (Electronic computers) |
topic |
Memória transacional Compiladores (Programas de computador) Sistemas híbridos Linguagem de programação (Computadores) Transactional memory Compilers (Computer programs) Hybrid systems Programming languages (Electronic computers) |
description |
Orientador: Guido Costa Souza de Araújo |
publishDate |
2020 |
dc.date.none.fl_str_mv |
2020 2020-07-23T00:00:00Z |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/doctoralThesis |
format |
doctoralThesis |
status_str |
publishedVersion |
dc.identifier.uri.fl_str_mv |
https://hdl.handle.net/20.500.12733/1639610 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: https://hdl.handle.net/20.500.12733/1639610. Acesso em: 3 set. 2024. |
url |
https://hdl.handle.net/20.500.12733/1639610 |
identifier_str_mv |
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: https://hdl.handle.net/20.500.12733/1639610. Acesso em: 3 set. 2024. |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.relation.none.fl_str_mv |
https://repositorio.unicamp.br/acervo/detalhe/1149098 Requisitos do sistema: Software para leitura de arquivo em PDF |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.format.none.fl_str_mv |
application/pdf 1 recurso online (118 p.) : il., digital, arquivo PDF. |
dc.publisher.none.fl_str_mv |
[s.n.] |
publisher.none.fl_str_mv |
[s.n.] |
dc.source.none.fl_str_mv |
reponame:Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) instname:Universidade Estadual de Campinas (UNICAMP) instacron:UNICAMP |
instname_str |
Universidade Estadual de Campinas (UNICAMP) |
instacron_str |
UNICAMP |
institution |
UNICAMP |
reponame_str |
Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) |
collection |
Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) |
repository.name.fl_str_mv |
Biblioteca Digital de Teses e Dissertações da Universidade Estadual de Campinas (UNICAMP) - Universidade Estadual de Campinas (UNICAMP) |
repository.mail.fl_str_mv |
sbubd@unicamp.br |
_version_ |
1809189164863717376 |