Busca avançada
Ano de início
Entree


Improving compiler-generated transactional code performance and programmability via language-level constructs

Texto completo
Autor(es):
Bruno Chinelato Honorio
Número total de Autores: 1
Tipo de documento: Tese de Doutorado
Imprenta: Campinas, SP.
Instituição: Universidade Estadual de Campinas (UNICAMP). Instituto de Computação
Data de defesa:
Membros da banca:
Guido Costa Souza de Araújo; Márcio Bastos Castro; André Rauber Du Bois; Marcio Machado Pereira; Luiz Eduardo Busato
Orientador: Guido Costa Souza de Araújo
Resumo

Com fabricantes de chips como Intel, IBM e ARM oferecendo suporte nativo para memória transacional (TM) em suas arquiteturas de conjunto de instruções, as transações em memória estão se tornando cada vez mais populares na indústria e como um tópico de pesquisa. Apesar deste recente aumento de popularidade no lado do hardware da memória transacional (HTM), suporte de software para memória transacional (STM) ainda é escasso. O único compilador com suporte transacional atualmente disponível, o GNU Compiler Collection (GCC), não gera código que atinja o desempenho desejável e não é fácil de usar, fazendo com que o programador tenha que levar em consideração como as funções são usadas e anotá-las adequadamente, o que está longe da abstração ideal da TM. Abordagens modernas procuram combinar HTM e STM para melhor explorar o desempenho. Em particular, os sistemas de TM em fases (PhTMs) executam transações em fases, não permitindo que as transações de hardware e software sejam executadas simultaneamente para evitar sobrecargas de coordenação. Uma de suas principais questões é projetar uma boa heurística de modo de transição que explore o HTM tanto quanto possível, considerando os problemas de desempenho do lado STM. Esta Tese faz 3 contribuições principais para a pesquisa de memória transacional: Em primeiro lugar, propõe um novo mecanismo de anotação (TMFree) que elimina seletivamente barreiras desnecessárias de leitura/gravação de memória transacional do código gerado pelo compilador. Ele faz isso anotando variáveis que não precisam ser instrumentadas usando um qualificador de tipo, foram mostrados aumentos de velocidade de até 7x e uma redução de 95% nas barreiras. Em segundo lugar, propõe uma construção de nível de linguagem (TMFree) que facilita a programação do código transacional gerado pelo compilador. Neste caso, o TMFree funciona como um casting de estilo C em funções que não precisam ser instrumentadas. Este trabalho automatiza muito do que o programador tinha que fazer manualmente, diminuindo significativamente o trabalho que o programador tem que fazer. Os resultados mostram que o programador só precisa inserir manualmente 5 deste TMFree casting para que os aplicativos funcionem sem perda de desempenho, em comparação com as 358 anotações que foram necessárias para os mesmos resultados. E, finalmente, propõe um mecanismo de modo de transição (CTM) para explorar melhor os dois modos de memória transacional das fases. Ele faz isso usando uma abordagem diferente no PhTM: o uso de taxa de transferência de confirmação e simulação de cache para imitar o comportamento das restrições de armazenamento HTM no modo STM. Os resultados experimentais mostraram que até 5x de aumento de velocidade foram alcançados ao usar essa nova abordagem. Esta tese, então, defende que a memória transacional é um forte concorrente para técnicas de programação paralela, com muitos dos resultados apresentados sendo o estado da arte para pesquisa de memória transacional (AU)

Processo FAPESP: 19/04536-9 - Melhorando o desempenho do cálculo da seção de choque transversal através de anotações de componentes
Beneficiário:Bruno Chinelato Honorio
Modalidade de apoio: Bolsas no Brasil - Doutorado