| Processo: | 18/07446-8 |
| Modalidade de apoio: | Bolsas no Brasil - Pós-Doutorado |
| Data de Início da vigência: | 01 de agosto de 2018 |
| Data de Término da vigência: | 30 de setembro de 2023 |
| Área de conhecimento: | Ciências Exatas e da Terra - Ciência da Computação - Sistemas de Computação |
| Pesquisador responsável: | Alexandro José Baldassin |
| Beneficiário: | Juan Jesús Salamanca Guillén |
| Instituição Sede: | Instituto de Geociências e Ciências Exatas (IGCE). Universidade Estadual Paulista (UNESP). Campus de Rio Claro. Rio Claro , SP, Brasil |
| Vinculado ao auxílio: | 18/15519-5 - Otimizações de desempenho para arquiteturas multicore, AP.JP2 |
| Bolsa(s) vinculada(s): | 20/01665-0 - Integrando execução especulativa à paralelização de tarefas, BE.EP.PD |
| Assunto(s): | Programação paralela Memória transacional Computação paralela |
| Palavra(s)-Chave do Pesquisador: | computação paralela | Execução Especulativa de Código | Memória Transacional | OpenMP | Programação paralela | Thread-Level Speculation | Computação Paralela |
Resumo Esta proposta traz cinco contribuições para abordar o problema de paralelização de código. Primeiro, propõe uma ferramenta para medir a probabilidade de dependências loop-carried de cada componente e detectar padrões loop-carried de laços estendendo a cláusula check de OpenMP. Experimentos iniciais mostram que a loop-carried probability é uma métrica eficaz para decidir quando usar TLS ou BDX para paralelizar laços, assim, para certos laços, slowdowns podem ser transformados em 2× de speed-ups selecionando rapidamente o algoritmo apropriado. Em segundo lugar, propõe uma abordagem de anotação de código para separar os componentes sequenciais ou may sequenciais de um dado loop baseado na loop-carried probability de cada componente, expondo assim outros componentes à paralelização. Em terceiro lugar, integra dois algoritmos (TLS e BDX) em uma cláusula OpenMP simples que permite ao programador selecionar a melhor algoritmo para cada componente de um determinado laço (abordagem judicious). Quarto, propõe novas cláusulas do OpenMP para implementar privatizações especulativas (spec private e spec reduction) que são essenciais para alcançar bom desempenho no algoritmo TLS. Finalmente, esta proposta também descreve uma nova técnica de especulação para a execução paralela de tarefas. Essa técnica, chamada de Speculative Task Execution (STE), executa especulativamente tarefas que têm dependências de controle com tarefas anteriores. No entanto, STE também pode ser usado para especular dependências de dados entre tarefas de diferentes iterações em um loop possivelmente gerado por uma construção taskloop. STE requer suporte de hardware que pode ser fornecido de maneira semelhante ao dispon1vel nos sistemas HTM (Hardware Transactional Memory). Propomos a implementação de um protótipo para o STE e o projeto de novas construções e cláusulas especulativas para integrar STE em uma paralelização baseada em tarefas de OpenMP: (a) a construção spec on; (b) a cláusula tls para taskloop; e (c) o tipo de dependência spec in para a cláusula depend. | |
| Matéria(s) publicada(s) na Agência FAPESP sobre a bolsa: | |
| Mais itensMenos itens | |
| TITULO | |
| Matéria(s) publicada(s) em Outras Mídias ( ): | |
| Mais itensMenos itens | |
| VEICULO: TITULO (DATA) | |
| VEICULO: TITULO (DATA) | |