Computação Paralela: Algoritmos e Aplicações
Prof. Amit Bhaya,
Programa de Engenharia Elétrica, COPPE/UFRJ 09/05/2000 -- 12/05/2000
Conteúdo do minicurso
Conteúdo do minicurso •Computação paralela e de alto desempenho.
Taxonomia básica. A experiência da COPPE.
• Justificativa e ganhos com o paralelismo. •Algoritmos numéricos paralelos síncronos e
assíncronos.
•Modelos matemáticos. Análise de convergência.
Exemplos.
• Resolução de sistemas complexos de grande porte. •Algoritmos combinados. Critérios de partição.
•Distribuição de carga. Exemplos.
• Técnicas de otimização natural. Meta-heurística. • Adequação às máquinas paralelas e de alto
desempenho.
HIPÓTESES
HIPÓTESES
Os alunos (não) têm noções de computação paralela – o grupo é heterogêneo
Os alunos têm algum conhecimento de métodos numéricos simples
Bibliografia
Bibliografia
!T.L. Freeman & C. Phillips, “Parallel Numerical Algorithms”, Prentice Hall,
1993*
•F.Thomson Leighton, “Introduction to Parallel Algorithms and Architectures:
Arrays. Trees. Hypercubes, Morgan Kaufmann Publishers, 1992
•Dan I. Moldovan, “Parallel Processing from Applications to Systems”, Morgan
Kaufmann Publishers, 1993
•Daniel E. Lenoski & Wolf-Dietrich Weber, “Scalable Share-Memory
Multiprocessing”, Morgan Kaufmann Publishers, 1995
•Geoffrey G. Fox, Roy D. Williams and Paul C. Messina, “Parallel Computing
Works!”, Morgan Kaufmann Publishers, 1994
•Russ Miller & Quentin F. Stout, “Parallel Algorithms for Regular Architectures:
Meshes and Pyramids”, MIT Press Cambridge, 1996
•Kai Hwang, “Advanced Computer Architecture: Parallelism, Scalability,
Programmability”, McGraw-Hill Series in Computer Engineering, 1993
•A. Cichocki & R. Unbehauen, “Neural Networks for Optimization and Signal
Processing”, John Wiley & Sons, 1993
Noções e conceitos
Noções e conceitos
•Noções e Conceitos de Paralelismo / Taxonomia / Arquiteturas (fundamentos)
•Algumas considerações sobre software
•Paralelismo na resolução (iterativa) de equações simultâneas
Paralelismo
Paralelismo
O paralelismo é natural no dia a dia !!
Exemplos:
" " "
" Caixas de supermercado ou banco
♦pouca ou nenhuma comunicação entre os
agentes
♦com supervisor/ou não
Paralelismo (continuação)
Paralelismo (continuação)
Serviço de despertador (7h)
♦não pode ser feito sequencialmente (por razões óbvias)
♦nenhuma comunicação entre os agentes
♦embarassing parallelism
" Aula de ginástica
ginastas
No contexto dos computadores
No contexto dos computadores
Pergunta: se é tão comum e importante porque é
que os computadores eram puramente sequenciais?
Resposta: o paralelismo trazia problemas extras de:
comunicação
sincronização
hardware/software
No contexto dos computadores( continuação)
No contexto dos computadores( continuação)
O modelo de Von Neumann de apenas uma CPU
Memória CPU
execução
No contexto dos computadores( continuação)
No contexto dos computadores( continuação)
Mais tarde surgiram os “Pipelines”
Performance :
• Megaflops (Millions of floating point
operations per second)
• Mips Millions of instructions per second)
Nominais (pico) X
Evolução de computadores.
Evolução de computadores.
#1946 – ENIAC Pennsylvania #1953 – IBM 701
#(Evolução nos semicondutores)
# 1975 – CRAY – supercomputadores ( Megaflops) # 1985 – CRAY 2/Y-MP (Gigaflops)
♦paralelismo limitado
♦paralelismo a nível de instruções básicas/pipelines
♦unidades de processamento poderosas e caras/trabalhando em paralelo
Evolução de computadores.( contimuação )
Evolução de computadores.( contimuação )
Caltech cube (Fox)
# 1985 – Multiprocessadores/Intel (128 nós)/N Cube etc.
♦arranjos de múltiplos processadores/CPU’s
♦para competir com o preço dos supercomputadores (na mesma faixa de Flopagem)
#Hoje a Silicon Graphics/CRAY aumenta o número de processadores
#Tendência é de Multiprocessadores/
Multicomputadores/ escaláveis (centenas de nós)
♦a programação dependente das arquiteturas?
Evolução de alguns computadores de alto desempenho
Processadores vetoriais (com Pipelines)
Processadores vetoriais (com Pipelines)
Cada instrução é dividida em quatro fases
−busca de instrução
−cálculo do endereço do operando
−busca do operando
−operação aritmética
♦Algumas dessas fases podem ser feitas concorrentemente (pipelining in vector operations)
CRAY $$$$ (system and pipeline/paralelismo)*
discussão da taxonomia shared/distributed/vector ficou misturada, todavia é utilizada como referência
Processadores vetoriais (com Pipelines)
Evolução de flopagem
Objetivos do Paralelismo
Objetivos do Paralelismo
♦Reduzir tempos
(Possibilidades de cálculos em “tempo real”) / simulação em tempo real. Meteorologia. Previsão de tempo (em tempo hábil).
•Viabilizar a resolução de problemas que não poderiam ser considerados anteriormente
•Maior precisão (no mesmo tempo)
(refinar malhas)
•superar limites físicos na velocidade de processamento sequencial
Desejável ➜➜➜➜ (1015 operações por segundo)
Aplicações mais usuais
Aplicações mais usuais
♦Previsão do tempo/simulação de fenômenos globais (El Niño)
♦Engenharia: modelos de turbulência/aviões
♦Física do plasma: gases ionizados em altas temperaturas
♦Ciência dos Materiais, “Automated Reasoning”
♦Economia: modelos nacionais
♦Inteligência Artificial
♦Sistemas de Defesa
Obs.: (MULTI + vector ) (VECTOR + multi)
Aplicações mais usuais
Aplicações de Computação de Alto Desempenho
Mercados da Silicon Graphics
Capacidade de Memória Capacidade de Memória 10 Mb 1 Gb 100 Gb Airfoil 1980 48- Hour Weather Oil Reservoir Modeling 1988 3d plasma Modeling 10 Gb 1991 1000 Gb Global change. Human genone. Fluid turbulence. Vehicicle Dinamics . Ocean circulation. viscous Fluids Dynamics. super conductor modeling. Semiconductor modeling. Quantum chromodynamics vision. Structural Biology Pharmaceutical Design Chemical Dynamics 1995 and beyond Memory capacity 1993
Linguagem de programação no ambiente paralelo
Linguagem de programação no ambiente paralelo • “vetorial” #### mais software disponível
•“paralelo” #### menos software disponível
• Em geral são extensões (versões paralelas)
FORTRAN / (90) (vector) PASCAL /
BASIC /
C /
ADA /
OCCAM / (Transputers) (message passing) 80’s
•Compiladores têm a capacidade de gerar um código paralelo a partir de um código
sequencial (vetorização)
BIBLIOTECAS BLAS
BASIC LINEAR ALGEBRA
Estilos de Programação
Programação Paralela
Taxonomia de Flynn
Taxonomia de Flynn
•Classificação baseada nas relações entre dados e instruções •Single instruction stream -- single data stream (SISD)
( Modelo de Von Neumann )
•Single stream-- multiple datas stream (simd) •( inclui máquinas do tipo array )
•Multiple instruction stream -- multiple data stream ( mimd ) •( Os sistemas multiprocessadores mais difundidos )
Arquiteturas
Arquiteturas (continuação)
Arquiteturas (continuação)
Sistemas de memória local
Arquiteturas híbridas
Arquiteturas híbridas
Arquitetura hipercúbica
Arquitetura hipercúbica
Arquitetura de transputer
Arquiteturas do ponto de vista de programas
Array de trnasputers
Conexão via barramento
Conexão via chaves “crossbar”
Redes de interconexão
Redes de interconexão
Redes de interconexão
Redes de interconexão
Comparação de arquiteturas (tempo)
Arquitetura heterogênea
Tipos de paralelismo (granularidade)
Sistemas heterogêneos
Níveis de paralelismo
Conceito de speedup
Lei de Amdahl
Redes de interconexão
Laborarório de computação de alto desempenho coppe/UFRJ
Laborarório de computação de alto desempenho coppe/UFRJ 1988 #### INÍCIO DO PROJETO “COMPUTAÇÃO PARALELA”
Transputer / INMOS
Transistor for multicomputer NCP construído na COPPE (08 nós)
1990 #### INTEL – IPSC 860 / 08 nós Características:
Memória: 8 x 8 Mb = 64 Mb
Flopagem: 8 x 80 MFlops = 640 MFlops
1995 #### CRAY J90 / 04 processadores Características:
Memória: 2 Gb memória RAM
Flopagem: 4 x 200 MFlops = 800 MFlops
Pesquisadores envolvidos
Pesquisadores envolvidos
INICIAL: 13 (com Doutorado) 30 alunos
SISTEMAS E COMPUTAÇÃO: HARDWARE
ENGENHARIA CIVIL: CÁLCULO, SIMULAÇÃO E OTIMIZAÇÃO DE ESTRUTURAS
ENGENHARIA ELÉTRICA: SIMULAÇÃO E OTIMIZAÇÃO DE REDES ELÉTRICAS ESTATÍSTICAS Período 1990 a 1996 Publicações Períodos Internacionais Congressos Número de teses Defendidas
Decomposição para programação paralela
Integração numérica
Mapeamento do problema
Mapeamento do problema
Programa paralelo (hípercubo)
Ajuste fino de um programa paralelo
Ajuste fino
Aplicação: Simulação de tráfego aéreo
Aplicação: Simulação de tráfego aéreo
Aplicação: Simulação de tráfego aéreo
Fim da primeira aula