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
formatação; ortografia; cat
Brunofs (discussão | contribs)
Sem resumo de edição
Linha 291:
 
==== Oxygen ====
----
[[Imagem:Attention_niels_epting.svg|right|25px]]
[[Imagem:Attention_niels_epting.svg|left|25px]]
<center>
'''Esta secção se encontra em construção''' &nbsp;&nbsp; -&nbsp;&nbsp;
Previsão de Conclusão: ''14/12''<br>
<tt>Progresso:</tt> <br>
'''FALTA INSERIR IMAGENS 01 e 02'''
</center>
----
 
O '''Oxygen''' é um compilador paralelizador que gera código paralelo a partir de códigos em Fortran 77. Para tanto são utilizadas diretivas de compilação que permitem a distribuição de código e dados e suporte a um espaçamento de nomes globais. Os códigos gerados pelo ''Oxygen'' são destinados a arquiteturas paralelas com memória distribuída ou supercomputadores. O modelo de máquina assumido pelo ''Oxygen'' é um torus bi-dimensional de elementos processadores (PE – Processing Elements). Arquiteturas como Parystec Supercluster SC256, iWarp, o Fujitsu AP1OOO, e simulador K9 implementam este tipo de topologia. A '''Figura 1''' mostra um modelo de máquina torus bi-dimensional onde cada elemento processador comunica-se através de primitivas ''send'' e ''receive''.
 
<center>[[Imagem:Comp_paral-fig1.JPG]]</center>
----
[[Imagem:Attention_niels_epting.svg|right|25px]]
[[Imagem:Attention_niels_epting.svg|left|25px]]
<center>
'''' INSERIR AQUI => IMAGEM 01 ''''
</center>
----
 
O ''Oxygen'' portou dois tipos de sistemas com memória distribuída: o de ''comunicação sistólica'' e o de ''comunicação por memória'', conforme observado na figura. Na '''comunicação sistólica''' não há trocas de mensagens. Os dados são transmitidos do enviador para o receptor usando transferências entre as filas de memória ou filas de registradores existentes entre os PEs. Nesse caso, um PE pode se comunicar com seus quatro vizinhos mais próximos. A '''comunicação por memória''', também chamada '''comunicação por troca de mensagens''', acontece entre primitivas ''send'' e ''receive''. As mensagens podem ser roteadas não só aos vizinhos mais próximos e sim a todos os PEs presentes no torus. Embora as trocas de mensagens sejam mais confortáveis para programar, o tempo gasto no gerenciamento e na computação do roteamento impõe uma maior latência para a comunicação.