1. Introdução ao Processamento Paralelo e de Alto Desempenho

Propaganda
1. Introdução ao Processamento Paralelo e de Alto Desempenho
1.1 MOTIVAÇÃO PARA O PROCESSAMENTO DE ALTO DESEMPENHO
- Aumento de desempenho de um modo geral: resolução de problemas em menos
tempo
Análise estrutural
Modelagem climática
Exploração petrolífera
Simulação aerodinâmica
Inteligência artificial
Sistemas especialistas
Outras aplicações científicas e de engenharia
- Limitação tecnológica para processadores mais rápidos
- Divisão de tarefas entre os diversos elementos do sistema
- Tolerância a falhas
- Escalabilidade: possibilidade de aumento de desempenho, previsão de expansão do
sistema
1.2 A CLASSIFICAÇÃO DE FLYNN PARA ARQUITETURAS PARALELAS DE COMPUTADORES
Organização de arquiteturas paralelas
Single instruction,
single data
(SISD)
Uniprocessor
Single instruction,
multiple data
(SIMD)
Vector
Processor
Array
Processor
Multiple instruction,
single data
(MISD)
Multiple instruction,
multiple data
(MIMD)
Shared Memory
(tightly coupled)
Symmetric
Multiprocessor
(SMP)
Nonuniform
Memory Access
(NUMA)
Distributed Memory
(loosely coupled)
Clusters
Single Instruction Single Data (SISD) stream: nesta classe, um único fluxo de instruções
opera sobre um único fluxo de dados. Isto corresponde ao processamento sequencial
característico da máquina de von Neumann e que compreende os computadores
pessoais e estações de trabalho. Apesar dos programas estarem organizados através
de instruções sequenciais, elas podem ser executadas de forma sobreposta em
diferentes estágios (pipelining). Arquiteturas SISD caracterizam-se por possuírem
uma única unidade de controle podendo possuir mais de uma unidade funcional.
Capítulo 1. Introdução ao Processamento Paralelo e de Alto Desempenho
Control
unit
Functional
unit
2
Memory
Fig. 1 Classe SISD da classificação de Flynn
Single Instruction Multiple Data (SIMD) stream: esta classificação corresponde ao
processamento de vários dados sob o comando de apenas uma instrução. Em uma
arquitetura SIMD o programa ainda segue uma organização sequencial. Para
possibilitar o acesso a múltiplos dados é preciso uma organização de memória em
diversos módulos. A unidade de controle é única e existem diversas unidades
funcionais. Nesta classe estão os processadores vetoriais e matriciais.
Control
unit
Functional
unit
M1
Functional
unit
M2
Functional
unit
Mn
Fig. 2 Classe SIMD da classificação de Flynn
Multiple Instruction Single Data (MISD) stream: neste caso, múltiplas unidades de
controle executando instruções distintas operam sobre o mesmo dado. Esta classe,
na realidade, não representa nenhum paradigma de programação existente e é
impraticável tecnologicamente.
Control
unit
Functional
unit
M1
Control
unit
Functional
unit
M2
Control
unit
Functional
unit
Mn
Fig. 3 Classe MISD da classificação de Flynn
Capítulo 1. Introdução ao Processamento Paralelo e de Alto Desempenho
3
Multiple Instruction Multiple Data (MIMD) stream: esta classe é bastante genérica
envolvendo o processamento de múltiplos dados por parte de múltiplas instruções.
Neste caso, várias unidades de controle comandam suas unidades funcionais, as
quais tem acesso a vários módulos de memória. Qualquer grupo de máquinas
operando como uma unidade (deve haver um certo grau de interação entre as
máquinas) enquadra-se como MIMD. Alguns representantes desta categoria são os
servidores multiprocessados, as redes de estações e as arquiteturas massivamente
paralelas.
Control
unit
Functional
unit
M1
Control
unit
Functional
unit
M2
Control
unit
Functional
unit
Mn
Fig. 4 Classe MIMD da classificação de Flynn
1.3 NÍVEIS DE EXPLORAÇÃO DO PARALELISMO
- Hardware
- Microprogramação
- Convencional
- Sistema operacional
- Linguagem de programação
1.4 FORMAS DE DEPENDÊNCIA DE DADOS E DE CONTROLE
Dependência de dados: ocorre entre as instruções
Dependência de controle: ocorre em desvios na sequência do programa
Dependência estrutural: ocorre por falta de recursos
1.5 MEDIDAS DE DESEMPENHO DAS ARQUITETURAS PARALELAS
- Técnicas de avaliação
- Modelagem
- Ferramentas analíticas
- Benchmarks
Download