Programação Paralela em Arquiteturas Multi-Core/Compiladores paralelizadores: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
m Programação Paralela em Arquiteturas Multi-Core/Índice/Compiladores paralelizadores movido para Programação Paralela em Arquiteturas Multi-Core/Compiladores paralelizadores: Re-estruturando o livro conforme uma das opções sugeridas nas [[Wikibo
Linha 295:
==== OSCAR ====
 
O compilador '''OSCAR (Optimally SCheduled Advanced multiprocessoR)''' é o compilador para o ''OSCAR (Optimally SCheduled Advanced multiprocessoR) CMP (Chip Multiprocessor)''. Este compilador trabalha com a linguagem de programação Fortran. O compilador ''OSCAR'' explora, automaticamente, o paralelismo multi-grão sobre a arquitetura CMP. O paralelismo multi-grão significa o uso hierárquico do paralelismo de tarefas de grão grande entre laços, sub-rotinas e blocos básicos.
 
Primeiramente o compilador decompõe o código do programa Fortran em tarefas de granularidade grossa (Macro Tarefas). Depois, o compilador analisa o fluxo de controle dentro das tarefas com um grafo acíclico chamado ''MFG (MacroFlow-Graph)''. O próximo passo em busca do máximo paralelismo entre as Macro Tarefas é a análise das condições iniciais necessárias para a execução de cada uma das Macro Tarefas. Todas as condições iniciais passam a ser representadas pelo compilador através de um grafo acíclico chamado ''MTG (MacroTask-Graph)''. Por fim, uma Macro Tarefa é associada a um grupo de processadores virtualmente definido pelo compilador em tempo de execução através de rotinas de escalonamento dinâmico.