Improving compiler-generated transactional code performance and programmability via language-level constructs [recurso eletrônico] = Melhorando o desempenho e a programabilidade de código transacional gerado por compiladores através de construções em nível de linguagem
Bruno Chinelato Honorio
TESE
Inglês
T/UNICAMP H759i
[Melhorando o desempenho e a programabilidade de código transacional gerado por compiladores através de construções em nível de linguagem]
Campinas, SP : [s.n.], 2023.
1 recurso online (101 p.) : il., digital, arquivo PDF.
Orientador: Guido Costa Souza de Araújo
Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação
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...
Ver mais
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
Ver menos
Abstract: With chip manufacturers such as Intel, IBM and ARM offering native support for trans- actional memory in their instruction set architectures, memory transactions are getting increasingly popular in the industry and as a research topic. Despite this recent increase in popularity on the...
Ver mais
Abstract: With chip manufacturers such as Intel, IBM and ARM offering native support for trans- actional memory in their instruction set architectures, memory transactions are getting increasingly popular in the industry and as a research topic. Despite this recent increase in popularity on the hardware side of transactional memory (HTM), software support for transactional memory (STM) is still scarce and the only compiler with transactional support currently available, the GNU Compiler Collection (GCC), does not generate code that achieves desirable performance and it is not easy to use, making the programmer have to take into account how functions are used and annotate them appropriately, which is far from the ideal abstraction of TM. Modern approaches seek to combine both HTM and STM to better exploit performance. In particular, Phased TMs (PhTMs) systems execute transactions in phases, not allowing both hardware and software transactions to run concurrently to avoid coordination over- heads. One of its main issues is designing a good transition mode heuristics that exploits HTM as much as possible considering the STM side problems of performance. This Thesis makes 3 main contributions to transactional memory research: Firstly, it proposes a novel annotation mechanism (TMFree) that selectively eliminates unnecessary transactional memory read/write barriers from compiler generated code. It does that by annotating variables that do not need to be instrumented with a type qualifier. Using the type qualifier, speedups of up to 7x and a reduction by 95% in barriers were shown. Secondly, it proposes a language-level construct (TMFree) that eases programmability of compiler-generated transactional code. In this case, TMFree work as a C style casting on functions that do not need to be instrumented. This work automates a lot of what the programmer had to do manually, significantly decreasing the job the programmer has to do. Results show that the programmer only has to manually insert 5 of this TMFree casting to make the applications work with no performance loss, compared to the 358 annotations that were necessary for the same results. And finally, it proposes a transition mode mechanism (CTM) to better exploit both modes of phases transactional memory. It does that by using a different approach in PhTM: the use of commit throughput and cache simulation to mimic the behavior of HTM storage constraints while in STM mode. Experimental results have shown that up to 5x of speedups were achieved when using this new approach. This thesis, then, makes a case for transactional memory being a strong contender for parallel programming techniques, with many of the results presented being the state-of- the-art for transactional memory research
Ver menos
Araújo, Guido Costa Souza de, 1962-
Orientador
Castro, Márcio Bastos
Avaliador
Du Bois, André Rauber
Avaliador
Pereira, Márcio Machado, 1959-
Avaliador
Busato, Luiz Eduardo, 1961-
Avaliador
Improving compiler-generated transactional code performance and programmability via language-level constructs [recurso eletrônico] = Melhorando o desempenho e a programabilidade de código transacional gerado por compiladores através de construções em nível de linguagem
Bruno Chinelato Honorio
Improving compiler-generated transactional code performance and programmability via language-level constructs [recurso eletrônico] = Melhorando o desempenho e a programabilidade de código transacional gerado por compiladores através de construções em nível de linguagem
Bruno Chinelato Honorio