Busca avançada
Ano de início
Entree

Melhorando o desempenho do cálculo da seção de choque transversal através de anotações de componentes

Processo: 19/04536-9
Linha de fomento:Bolsas no Brasil - Doutorado
Vigência (Início): 01 de abril de 2019
Vigência (Término): 31 de março de 2020
Área do conhecimento:Ciências Exatas e da Terra - Ciência da Computação - Sistemas de Computação
Pesquisador responsável:Guido Costa Souza de Araújo
Beneficiário:Bruno Chinelato Honorio
Instituição-sede: Instituto de Computação (IC). Universidade Estadual de Campinas (UNICAMP). Campinas , SP, Brasil
Vinculado ao auxílio:13/08293-7 - CECC - Centro de Engenharia e Ciências Computacionais, AP.CEPID

Resumo

Compiladores contemporâneos implementam várias técnicas de paralelização,porém, essas técnicas geralmente se restringem à laços que não possuemdependências, ou são dependências que são simples de resolver, como no caso dereduções de operações aritméticas. Essas restrições impedem a paralelização delaços que possuem dependências. Laços com dependência podem apresentar doiscenários: (i) o compilador identifica a dependência, (ii) o compilador nãoconsegue provar que não existe dependência em tempo de compilação, mesmo quenão se manifeste nenhuma dependência durante a execução. Compiladores doestado da arte e abrangentemente usados, como o LLVM e o GCC, não paralelizamlaços com dependências automaticamente. Para resolver esse problema, estudantes de pós-graduação do instituto decomputação da UNICAMP iniciaram o desenvolvimento de um novo mecanismo que, aodeterminar os componentes sequenciais de um laço, o programador pode aplicar umalgoritmo de paralelização sobre os componentes paralelizáveis do mesmo.Este trabalho de Doutorado tem como objetivo realizar uma série de modificaçõessobre este mecanismo: torná-lo completamente independente de qualqueraplicação, facilitando a adição de novos algoritmos de paralelização; modificara semântica do mecanismo, para facilitar a sua utilização; permitir que omecanismo seja usado em um número maior de laços; e oferecer automatizaçõessobre a execução do mecanismo. Assim, com essa modificações, desenvolvedorespodem adicionar novas funcionalidades ao mecanismo, assim como utilizar omecanismo de maneira mais fácil e simples para um número maior de aplicações elaços.Esse mecanismo então será aplicado sobre um problema de química real: o cálculoda seção de choque transversal, utilizado para ajudar na identificação ecaracterização de um íon. Este cálculo é bastante custoso e alguns trabalhos jácriaram técnicas de paralelização para acelerá-lo, masnenhum visando a aceleração de laços com dependências. Em particular, omecanismo será aplicado em um software desenvolvido para o cálculo da seção dechoque transversal que oferece novas abordagens para realizar este cálculo demaneira mais eficiente. Desta forma, o objetivo deste trabalho se resume em explorar agressivamentelaços com dependências e demonstrar, em cima de um problema real, o potencialganho de desempenho que esses laços podem apresentar.