Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo...
Transcript of Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo...
![Page 1: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/1.jpg)
Elementos de conexão e condições de paralelismo
Aleardo Manacero Jr.
![Page 2: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/2.jpg)
Elementos de Conexão
![Page 3: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/3.jpg)
O que é conectividade?
Define como os elementos de processamento (CPU e memória) de um sistema de alto desempenho serão interligados.
![Page 4: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/4.jpg)
O que se deve considerar?
Número de conexões que cada nó deve ter. Esse valor é o GRAU do nó.
Caminho mínimo entre dois nós. O maior desses caminhos mínimos é definido como DIÂMETRO da rede.
![Page 5: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/5.jpg)
O que se deve considerar?
Quantos canais são necessários entre duas metades de uma rede. Isso é denominado LARGURA DE BISSECÇÃO.
Formas de tráfego dos dados. Isso é definido através de uma FUNÇÃO DE ROTEAMENTO.
![Page 6: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/6.jpg)
Exemplo
![Page 7: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/7.jpg)
Tipos de redes de conexão
Redes estáticas Nessas redes as conexões entre os nós
são fixas. As ligações são diretas entre cada dois pontos.
Redes dinâmicas Aqui as conexões variam com o tempo.
Não existem ligações diretas entre dois nós.
![Page 8: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/8.jpg)
Exemplos de redes estáticas
![Page 9: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/9.jpg)
Exemplos de redes estáticas
![Page 10: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/10.jpg)
Exemplos de redes estáticas
![Page 11: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/11.jpg)
Exemplos de redes estáticas
![Page 12: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/12.jpg)
Exemplos de redes estáticas
![Page 13: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/13.jpg)
Exemplos de redes estáticas
![Page 14: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/14.jpg)
Exemplos de redes estáticas
Toróide
![Page 15: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/15.jpg)
Exemplos de redes estáticas
![Page 16: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/16.jpg)
Exemplos de redes estáticas
Cubo 3-conexo
![Page 17: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/17.jpg)
Sumário de características de redes estáticas
![Page 18: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/18.jpg)
Exemplos de redes dinâmicas
Redes multiestágios (ômega)
Redes Crossbar
Redes em barramento
![Page 19: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/19.jpg)
Exemplos de redes dinâmicas
![Page 20: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/20.jpg)
Exemplos de redes dinâmicas
![Page 21: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/21.jpg)
Exemplos de redes dinâmicas
1
![Page 22: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/22.jpg)
Exemplos de redes dinâmicas
![Page 23: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/23.jpg)
Exemplos de redes dinâmicas
![Page 24: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/24.jpg)
Exemplos de redes dinâmicas
![Page 25: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/25.jpg)
Sumário de características de redes dinâmicas
![Page 26: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/26.jpg)
Produtos comerciais
Myrinet
Estrutura de rede logaritmica (Clos) em fat-tree
Faz uso de acesso remoto direto a memória (RDMA), evitando overhead do SO
Latência para msg pequenas de 2.2s na versão MX-10G
![Page 27: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/27.jpg)
Produtos comerciais
Myrinet
![Page 28: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/28.jpg)
Produtos comerciais
Myrinet
![Page 29: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/29.jpg)
Produtos comerciais
Desempenho unidirecional da myrinet (1G)
![Page 30: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/30.jpg)
Produtos comerciais
Desempenho bidirecional da myrinet (1G)
![Page 31: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/31.jpg)
Produtos comerciais
Custos da Myrinet 2000 (dados de 2009)
Switch 16 portas – 6.600 dolares
Switch 256x256 – 128.000 dolares
Placa de rede – 500 a 800 dolares
Cabos – 75 a 200 dolares por 3 metros
![Page 32: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/32.jpg)
Produtos comerciais
QsTenGProduzida pela Quadrics
Banda de passagem de 1.3 Gbyte/s
Latência inferior a 3s
Estrutura de fat-tree
![Page 33: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/33.jpg)
Produtos comerciais
QsNet
![Page 34: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/34.jpg)
QsTenG
Produtos comerciais
![Page 35: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/35.jpg)
Infiniband
Introduzida pela Intel e um consórcio envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001
Estrutura totalmente configurável, porém a mais usada é também a fat-tree
Largura de banda de até 20 Gbits/s
Produtos comerciais
![Page 36: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/36.jpg)
Produtos comerciais
![Page 37: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/37.jpg)
Produtos comerciais
![Page 38: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/38.jpg)
Infiniband
(Mellanox 648 portas)
Produtos comerciais
![Page 39: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/39.jpg)
Produtos comerciais
Infiniband
![Page 40: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/40.jpg)
Produtos comerciais
Custos Infiniband
Switch Mellanox 36 portas – 10.000 dolares
Switch Mellanox 648 portas – 60.000 dolares
Placa de rede – 300 a 500 dolares
Cabos – 150 a 200 dolares por 3 metros
![Page 41: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/41.jpg)
Produtos comerciais
10 Gigabit Ethernet
![Page 42: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/42.jpg)
Produtos comerciais
10 Gigabit Ethernet
![Page 43: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/43.jpg)
Produtos comerciais
Custos Ethernet 10G
Switch 48 portas – 15.000 dolares
Placa de rede – 200 a 300 dolares
Cabos – 100 a 200 dolares por 3 metros
![Page 44: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/44.jpg)
Produtos comerciais
Switches de 40Gbps e 100Gbps
Uso em conexões em Datacenters
Interessantes para clouds e HPC
Tecnologia Infiniband
![Page 45: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/45.jpg)
Condições de Paralelismo
![Page 46: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/46.jpg)
Condições de paralelismo
Solução para a computação de alto desempenho é paralelismo, porém ...
Nem tudo pode ser paralelizado e mesmo quando isso é possível, existem restrições na forma em que isso ocorre.
Essas restrições estão bem definidas através das chamadas condições de paralelismo.
![Page 47: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/47.jpg)
Condições de paralelismo
São três:Dependência de dados
(ou Condições de Bernstein)
Dependência de controle
Dependência de recursos
![Page 48: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/48.jpg)
Dependência de recursos
É bastante natural, restringindo o paralelismo ao volume de recursos que podem ser simultaneamente utilizados.
Trata de recursos como registradores, memória, canais de conexão, acesso a arquivos, etc.
![Page 49: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/49.jpg)
Dependência de controle
Ocorre quando as instruções que devem ser executadas (e portanto paralelizadas) dependem de resultados que serão conhecidos apenas em tem po de execução
Não se pode contornar essa dependência quando ela ocorre.
![Page 50: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/50.jpg)
Dependência de dados
Assume três formas:
Fluxo
Antidependência
Saída
![Page 51: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/51.jpg)
Dependência de fluxo de dados
Ocorre quando o resultado (saída) de um grupo de instruções (S1) é necessário (entrada) para a execução de um segundo grupo de instruções (S2)
A = X + Y
B = A + C
D = B * 2
![Page 52: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/52.jpg)
Antidependência
Ocorre quando a saída de um grupo de instruções (S2) for entrada para um grupo de instruções (S1), que o anteceda numa execução sequencial.
A = 2
X = A + 1
A = 5
![Page 53: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/53.jpg)
Dependência de saída de dados
Ocorre quando uma das saídas de dois grupos de instruções (S1 e S2) forem comuns.
A = 2
X = A + 1
A = 5
![Page 54: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/54.jpg)
Condições de Bernstein
Formalizam as dependências de fluxo de dados.
Algumas definições:
Processo fragmento de um programa
Conjunto de entrada (Ii) entradas necessárias para executar Pi
Conjunto de saída (Oi) saídas produzidas pela execução de Pi
![Page 55: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/55.jpg)
Condições de Bernstein
Dois processos podem executar em paralelo (Pi // Pk ; i<k) se:
Ii Ok = antidependência
Ik Oi = fluxo
Oi Ok = saída
![Page 56: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/56.jpg)
Condições de Bernstein
Ampliando-se tais condições para n processos temos:
P1 // P2 // P3 // ... // Pn se e somente se:
Pi // Pj para todo i,j = 1...n e i j
![Page 57: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/57.jpg)
Situações indeterminadas
Embora existam situações facilmente verificáveis quanto ao paralelismo, existem várias outras em que é impossível saber se duas ou mais instruções podem ou não ser paralelizadas.
Essa situações, tipicamente, estão relacionadas com ciclos de repetição
![Page 58: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/58.jpg)
Situações indeterminadas
Índice de uma variável indexada também é indexado
A[i] = A[b[i]] + C;
Índice (em um ciclo) não contém a variável de indexação
for (i=0; i<k; i++)
A[ j ] = b[ j+3 ] * C;
![Page 59: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/59.jpg)
Situações indeterminadas
Variável tem índices diferentes numa expressão
A[i] = B[j] * A[j];
Índice não é linearmente dependente da variável de indexação do ciclo
for (i=0; i<k; i++)
A[i*j] = b[j];
![Page 60: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/60.jpg)
Exemplo de paralelização
Dado o conjunto de instruções:P1: C = D*EP2: M = G+CP3: A = B+CP4: C = L+MP5: F = G/E
Pode-se chegar ao seguinte grafo de dependências....
![Page 61: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/61.jpg)
Exemplo (continuação)
Grafo de dependência
![Page 62: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/62.jpg)
Exemplo (continuação)
![Page 63: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/63.jpg)
Extração de paralelismo
Análise de dependência indica quais pontos de um programa não podem ser paralelizados
O problema é como identificar os pontos passíveis de paralelização
Todas as técnicas para isso fazem uso de grafos dirigidos
![Page 64: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/64.jpg)
Extração de paralelismo
O grau de paralelismo de um programa depende das restrições de dependência aqui examinadas (dados, controle e recursos) e também do tipo de arquitetura de conexão existente na máquina.
Essa última dependência resulta na granulação de um programa.
![Page 65: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/65.jpg)
Exemplo de grafo
![Page 66: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/66.jpg)
Responsabilidade na extração (1)
Depende da granulação do programa
Então o que significa, exatamente, granulação?
![Page 67: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/67.jpg)
Granulação de um programa
Diz respeito ao tamanho dos conjuntos de instruções cujas instruções devem, obrigatoriamente, serem executadas sequencialmente.
Tipicamente são definidos três tamanhos de grãos:
FinoMédioGrosso
![Page 68: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/68.jpg)
Grão fino
São os menores grãos possíveis.
Normalmente envolvem conjuntos de poucas instruções, até, no máximo, pequenos ciclos não-recursivos (ILP – Instruction-Level Parallelism).
Representam um alto grau de paralelismo.
Demandam muita comunicação e controle.
![Page 69: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/69.jpg)
Grão médio
Envolvem procedimentos, funções, rotinas, tarefas, etapas de um trabalho ou partes pouco complexas de um programa.
Grau médio de paralelismo
Necessidades intermediárias de comunicação e controle.
Em geral é pouco usado
![Page 70: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/70.jpg)
Grão grosso
Obviamente são os maiores.
Envolvem programas inteiros ou partes complexas de um programa.
Pequeno grau de paralelismo
Pouca necessidade de comunicação e controle.
Grande uso em sistemas de troca de mensagens, como clusters.
![Page 71: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/71.jpg)
Impacto da granulação
O tamanho do grão ótimo para uma dada aplicação é fortemente dependente do modo de comunicação do sistema.
Se a comunicação é rápida o grão pode ser fino (precisa de muita comunicação)
Se a comunicação é lenta o grão deve ser médio ou grosso (evitando comunicação)
![Page 72: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/72.jpg)
Responsabilidade na extração (2)
Para granulação fina a extração do paralelismo deve ser feita pelo compilador (nível de instruções e laços)
Para granulação média e grossa a extração deve ser feita pelo programador (funções e programas)
Esses parâmetros estão mudando com a introdução de arquiteturas manycores, como GPUs
![Page 73: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/73.jpg)
Extração de paralelismo
Outro aspecto a resolver na obtenção de paralelismo diz respeito a quem o restringe
Nesse caso temos dois tipos:
Paralelismo de hardwareMultiplicidade de elementosArquitetura
Paralelismo de softwareDependências de dados e controleEstilo de programação
![Page 74: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/74.jpg)
Software X Hardware
A existência dos paralelismos de hardware e software cria o problema do correto casamento entre os dois.
Esse casamento é medido pelo balanceamento entre o número de instruções paralelas e o número de elementos de processamento.
![Page 75: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/75.jpg)
Exemplo de balanceamento
Paralelismo de software
Paralelismo de hardware
![Page 76: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/76.jpg)
Exemplo de balanceamento
Uso de replicação de instruções
![Page 77: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/77.jpg)
Balanceamento por multiplicação de grãos
![Page 78: Elementos de conexão e condições de paralelismoaleardo/cursos/hpc/conexao2019.pdf · envolvendo gigantes como IBM, HP, Cisco, Microsoft e outros, a partir de 2001 Estrutura totalmente](https://reader035.fdocumentos.tips/reader035/viewer/2022081606/5e2167029f890a25f457f73b/html5/thumbnails/78.jpg)
Comentários finais
Os aspectos relativos à obtenção de paralelismo e definição de granulosidade voltarão a ser trabalhados em outros momentos do curso
É importante aqui compreender que o paralelismo é a solução para computação de alto desempenho, mas
... não é uma fonte inesgotável de recursos