01 fev 2023
14:00 Defesa de Doutorado Sala 351 do IC 3,5
Tema
Improving Compiler-Generated Transactional Code Performance and Programmability via Language-Level Constructs
Aluno
Bruno Chinelato Honorio
Orientador / Docente
Guido Costa Souza de Araújo
Breve 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.
Banca examinadora
Titulares:
Guido Costa Souza de Araújo IC/UNICAMP
Márcio Bastos Castro INE/UFSC
André Rauber Du Bois CDTEC/UFPEL
Márcio Machado Pereira FUNCAMP
Luiz Eduardo Busato IC/UNICAMP
Suplentes:
Lucas Francisco Wanner IC/UNICAMP
Alexandro José Baldassin IGCE/UNESP
Nahri Balesdent Moreano FACOM/UFMS