Você está na página 1de 14

UNIVERSIDADE FEDERAL DO PARÁ

Sumário
INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS
PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO

TÓPICOS ESPECIAIS EM PROGRAMAÇÃO PARALELA


Prof. Dr. Josivaldo Araújo 1. Motivação e Objetivos
josivaldo@ufpa.br
2. Introdução
3. Histórico e Evolução da Programação Paralela
4. Classificações e Terminologias
3.1. Classificação de Flynn;
3.2. Classificação de Duncan;
3.3. Segundo o Compartilhamento de Memória;
3.4. Outras Classificações
Unidade 01: 5. Conclusão
Introdução às Arquiteturas Paralelas 6. Referências

Motivação Objetivos
 A evolução das arquiteturas de processadores (Multi-  Reduzir os custos computacionais com o
core); compartilhamento de equipamentos;

 Desenvolvimento de redes de comunicação de alta


 Reduzir o tempo de processamento de aplicações
velocidade e baixa latência; complexas;

 O surgimento de novas arquiteturas para o  Disponibilizar um número ótimo de unidades de


desenvolvimento de atividades paralelas (Many-core); processamento para executar as tarefas;

 Alto custo dos supercomputadores tradicionais;  Reduzir o consumo de energia dos computadores (TI
Verde);

 Introduzir conceitos e ferramentas para solucionar


problemas que exijam um maior esforço computacional;

Introdução Introdução
 O motivo pelo qual os sistemas computacionais tem  Com a utilização de mais de uma Unidade de
conseguido manter um ritmo de crescimento nos últimos Processamento (UP) há a necessidade de comunicação;
anos é devido à exploração e à concepção de arquiteturas
 Os processos precisam trocar informações entre si;
paralelas;
 A forma de comunicação depende da arquitetura que se
 Arquiteturas paralelas são baseadas na utilização de
tem disponível;
múltiplas unidades de processamento;
 Atualmente, estão sendo explorados diferentes níveis de  Variáveis Compartilhadas em máquinas
com memória compartilhada (Shared
paralelismo: Memory);
 Arquiteturas Multicores e Multiprocessadas;

 Multicomputadores (Clusters e Grids Computacionais);


 Troca de Mensagens em máquinas com
 Arquiteturas Many-cores; memória distribuída (Message Passing) .
Introdução Histórico e Evolução da PP
 Para melhor entender a concepção das diferentes  Como Evoluiu a Programação Paralela?
arquiteturas paralelas, pode-se utilizar técnicas de
 Inicialmente os computadores eram desenvolvidos
classificação;
segundo a arquitetura de Von Neumann;
 Essas técnicas podem ser baseadas na relação que existe
entre o fluxo de instrução e o fluxo de dados;  Próprio Neumann, em seus
 Também podem ser classificadas em termos de artigos, nos anos 40, sugere
uma grade em que os pontos
máquinas paralelas quanto os modelos de programação
correspondentes; sejam atualizados em
paralelo;
 Outra classificação pode ser realizada segundo o
 A ideia de Processamento
compartilhamento de memória;
Paralelo não é nova;

Histórico e Evolução da PP Histórico e Evolução da PP


 Como Evoluiu a Programação Paralela?  Como Evoluiu a Programação Paralela?
 No começo da década de 1970, uma pequena companhia  O termo “Supercomputação”, como um gênero específico
de semicondutores, chamada Intel, mudou a história da da informática, surgiu no meio da década de 1970;
computação;
 É utilizado para definir os mais rápidos e poderosos
 Desenvolveram um produto que chamaram – computadores do mundo, quanto a capacidade de
Microprocessador. processamento e dispositivos de E/S;
 A Intel colocou todos os componentes de um computador
 Um engenheiro chamado Seymour Cray uniu um grupo de
(ULA, controlador de memória e o controlador de E/S)
chips de computador disponíveis e os transformou em um
em um pacote minúsculo;
computador comercial;
 O microprocessador Intel teve
 O desempenho nunca tinha sido visto antes e já utilizava o
aproximadamente 5000 transistores;
conceito de processamento vetorial;

Histórico e Evolução da PP Histórico e Evolução da PP


 Como Evoluiu a Programação Paralela?  Como Evoluiu a Programação Paralela?
 O CRAY-1, desenvolvido em 1976
 O projeto e a construção de supercomputadores eram
era capaz de atingir o pico de 133
normalmente feitos por grandes companhias, como IBM,
Mflops;
CDC e Univac;
 Essa empresas forneciam computadores para clientes
especiais como o governo americano ou grandes companhias
de petróleo;
 Para funcionar, precisavam de sistemas especiais de energia e
 Em 1985, foi lançado o CRAY-2, refrigeração, para impedir que aquecessem demais;
atingia o desempenho de 1,9 Gflops;  A utilização dessas máquinas se limitava a grandes aplicações
 Na época, este computador tinha a numéricas, como análise de dados de campo de petróleo,
maior memória do mundo, 2Gb. projeto de armas nucleares e “quebra” de códigos secretos;
Histórico e Evolução da PP Histórico e Evolução da PP
 Como Evoluiu a Programação Paralela?  Como Evoluiu a Programação Paralela?
 Ao longo dos anos 80, pesquisadores em várias  A indústria de computadores ingressou na década de 1990
universidades tentaram desenvolver estações de trabalho com estações de trabalho mais rápidas que os mainframes
para diminuir a lacuna de necessidade de processamento e da década anterior;
o custo;  O custo com equipamentos de redes de computadores
 O resultado foi o desenvolvimento de sistemas diminuiu;
operacionais inovadores como: Spring, Chorus e Amoeba;  Essa disponibilidade de equipamentos, encontrou um
 Esses sistemas trouxeram inovações no transporte de sistema operacional gratuito e open source – Linux;
mensagens e na divisão de tarefas;  Dessa “união”, surgiu o primeiro sistema de computação
 Dois problemas: de alto desempenho de baixo custo – o cluster Beowulf;
1. Licenciamento de Software (versões comerciais do UNIX);  Foi desenvolvido pela NASA, em 1994, e consistia em 16
2. Custo de Hardware (estações de trabalho da Sun, Apollo e Digital); nós, com processadores Intel 486 DX4 a 100 MHz;

Histórico e Evolução da PP Histórico e Evolução da PP


 Como Evoluiu a Programação Paralela?  Como Evoluiu a Programação Paralela?
 Crescimento no Desempenho do Processador

Fundação Cearence de
Meteorologia e Recursos Hídricos

Histórico e Evolução da PP Histórico e Evolução da PP


 Como Evoluiu a Programação Paralela?  Como Evoluiu a Programação Paralela?
 Crescimento na Taxa de Clock dos Microprocessadores  Crescimento na Taxa de Clock dos Microprocessadores.

 Principais Desafios a serem superados:


 Intel 80386 consumia
cerca de 2 W;  Distribuir a Potência;
 Core i7 de 3,3 GHz  Retirar o calor;
consome 130 W;
 Impedir pontos quentes;
 Calor precisa ser
dissipado em um
chip 1,5 cm x 1,5 cm;

 Limite do que pode


ser resfriado pelo ar;
Histórico e Evolução da PP Histórico e Evolução da PP
 Como Evoluiu a Programação Paralela?  Como Evoluiu a Programação Paralela?
 Comparação Processadores x Tecnologia de Redes  Agrupando Unidades de Processamento.

Histórico e Evolução da PP Histórico e Evolução da PP


FONTE: www.top500.org
 E Hoje? O que temos...?  E Hoje? O que temos...?
 SUNWAY TAIHULIGT  TITAN – Cray XK7 OAK Ridge National Laborary Oak Ridge - EUA

National Supercomputing Center


Wuxi - CHINA

 Memória Principal: 1.310.720 GB


 Sistema Operacional: Sunway RaiseOS 2.0.5  Memória Principal: 710 TeraBytes.
 Total de Núcleos: 10.649.600  Sistema Operacional: Cray Linux Environment.
 Processador: Sunway SW26010 260C 1.45 GHz  Total de Núcleos Opteron: 299.008
 Nº de Nós: 40.960;  GPU: 18.688 NVIDIA TESLA K20
 Utilizado em trabalhos de engenharia (modelagem de sistemas da terra e  Nº de Nós: 18.688
mar, clima), etc.  Pesquisas em Geral FONTE: www.top500.org

Histórico e Evolução da PP Classificações e Terminologias


(Posição-265) – Top500
 E Hoje? O que temos...?  Paralelismo em múltiplos níveis é a força
 LNCC: Laboratório Nacional de Computação Científica impulsionadora do projeto de computadores;
 Memória: 12.672 GB  Existem basicamente dois tipos de paralelismo em
 Sistema Operacional: bullx SCS aplicações:
 Núcleos: 10.692
 Processador: Intel Xeon E5-2695v2 12C 2.4 GHz  Paralelismo em nível de dados: surge porque existem
 Rede: Infiniband FDR muitos itens de dados que podem ser operados ao mesmo
tempo;

 Outros Supercomputadores no Brasil  Paralelismo em nível de tarefa: surge porque são criadas
tarefas que podem operar de modo independente e
 SENAI CIMATEC (323) principalmente em paralelo;
Classificações e Terminologias Classificações e Terminologias
 O hardware do computador pode explorar esses dois  Paralelismo em nível de threads: explora o paralelismo em
nível de dados ou o paralelismo em nível de tarefas em um
tipos de paralelismo de aplicações de quatro modos
modelo de hardware fortemente acoplado, que permite a
diferentes:
interação entre threads paralelas;
 Paralelismo em nível de instrução: explora o paralelismo em  Paralelismo em nível de requisição: explora o paralelismo
nível de dados a níveis modestos com auxílio do entre tarefas muito desacopladas especificadas pelo
compilador, usando ideias como pipelining e em níveis programador;
médios usando ideias como execução especulativa;
 Esses quatro modos de o hardware suportar o
 Unidades de Processador Gráfico (GPU): exploram o
paralelismo em nível de dados aplicando uma única paralelismo em nível de dados e o paralelismo em nível
instrução a uma coleção de dados paralelos; de tarefas têm 50 anos.
 Quando Michael Flynn (1966) estudou os esforços de
computação paralela nos ano 60, encontrou uma
classificação simples, que usamos até hoje;

Classificações e Terminologias Classificações e Terminologias


I. Classificação de Flynn I. Classificação de Flynn
 Michael Flynn (1966) classificou os computadores I.1. SISD: (Single Instruction Single Data)
através da análise do Fluxo de Instruções e do Fluxo
de Dados.  Executam uma única instrução por vez e com isso,
acabam por manipular, também, apenas um único
 Essa classificação ficou conhecida como a Taxonomia dado;
de Flynn.
 Possuem apenas um processador (com apenas um
único núcleo);
 Seguem, portanto, o modelo de Von Neumann.

 Fluxo de Instruções: É a sequência de instruções executadas pelo computador.


 Fluxo de Dados: É a sequência de dados sobre os quais operam as instruções.

Classificações e Terminologias Classificações e Terminologias


I. Classificação de Flynn I. Classificação de Flynn
I.1. SISD: (Single Instruction Single Data) I.2. SIMD: (Single Instruction Multiple Data)
 Possui um único fluxo de instrução que opera sobre
vários fluxos de dados;
 Várias unidades de processamento são
supervisionados por uma única unidade de controle;
 As unidades de execução paralela estão
sincronizadas;
 Tamanho reduzido da memória para programas,
Legenda:
UC: Unidade de Controle FI : Fluxo de Instruções isto é, só precisam de uma cópia do código que está
UP: Unidade de Processamento FD: Fluxo de Dados sendo executado simultaneamente;
M: Memória
Classificações e Terminologias Classificações e Terminologias
I. Classificação de Flynn I. Classificação de Flynn
I.2. SIMD: (Single Instruction Multiple Data) I.2. SIMD: (Single Instruction Multiple Data)

 As instruções SIMD são


distribuídas em broadcast
para todas as unidades de
execução;
 Esta categoria inclui
processadores de arrays,
de vetores e sistólicos;

Classificações e Terminologias Classificações e Terminologias


I. Classificação de Flynn I. Classificação de Flynn
I.3. MISD: (Multiple Instruction Simple Data) I.3. MISD: (Multiple Instruction Simple Data)
 Possuiriam múltiplos fluxos de instruções para um
único fluxo de dados;
 Não existem máquinas desse tipo;
 Alguns autores consideram o PIPELINE como um
representante dessa categoria. Legenda:

 Algumas utilizações possíveis: UC: Unidade de Controle


 Múltiplos Filtros de frequência operando em um fluxo único de UP: Unidade de Processamento
M: Memória
sinal;
FI : Fluxo de Instruções
 Vários algoritmos de criptografia tentando quebrar uma única
FD: Fluxo de Dados
mensagem codificada.

Classificações e Terminologias Classificações e Terminologias


I. Classificação de Flynn I. Classificação de Flynn
I.3. MISD: (Multiple Instruction Simple Data) I.4. MIMD: (Multiple Instruction Multiple Data)
 Operam múltiplos fluxos de instruções sobre
múltiplos fluxos de dados;
 A principal característica deste tipo de máquina é a
existência de uma unidade de controle
independente para cada processo.

 Duas arquiteturas:
 Memória Compartilhada ou Multiprocessadores;
 Memória Distribuída ou Multicomputadores;
Classificações e Terminologias Classificações e Terminologias
I. Classificação de Flynn I. Classificação de Flynn
I.4. MIMD: (Multiple Instruction Multiple Data) I.4. MIMD: (Multiple Instruction Multiple Data)

 Multiprocessadores:
Legenda:
Utilizam memória compartilhada. FI : Fluxo de Instruções
FD: Fluxo de Dados
UC: Unidade de Controle
 Multicomputadores: Utilizam UP: Unidade de Processamento
M: Memória
memória distribuída.

Classificações e Terminologias Classificações e Terminologias


I. Classificação de Flynn II. Classificação de Duncan
I.4. MIMD: (Multiple Instruction Multiple Data)  Surgiu com a necessidade de acomodar arquiteturas
mais recentes que não se encaixavam perfeitamente
na taxonomia proposta por Flynn.
 Utilizou os seguintes aspectos:
 Excluir os tipos de paralelismo de baixo nível;
 Pipeline dos estágios de execução de uma instrução;
 Unidades funcionais múltiplas em um única CPU;

 Manter os elementos da classificação de Flynn, ou


seja, fluxo de dados e instruções;

Classificações e Terminologias Classificações e Terminologias


II. Classificação de Duncan II. Classificação de Duncan
 Essa classificação divide as arquiteturas em dois II.1. Arquiteturas Síncrona
grupos:
Podem ser: 1.1. Arquiteturas SIMD
II.1. Arquiteturas Síncronas;
1.2. Processadores Vetoriais
II.2. Arquiteturas Assíncronas.
1.3. Arquiteturas Sistólicas
II.1. Arquiteturas Síncrona
 Essas arquiteturas caracterizam-se por coordenarem as
operações concorrentes através da utilização de
sinais de relógio globais, unidades de controle
centralizadas ou unidades de controle vetoriais.
Classificações e Terminologias Classificações e Terminologias
II. Classificação de Duncan II. Classificação de Duncan
II.1. Arquiteturas Síncrona II.1. Arquiteturas Síncrona
1.1. Arquiteturas SIMD: 1.2. Processadores Vetoriais:
 Essas arquiteturas possuem uma  São caracterizados por
unidade de controle centralizada, possuírem um hardware
vários processadores e uma rede específico para a otimização
de interconexão que serve de meio de operações efetuadas
de comunicação entre os sobre vetores.
processadores e/ou entre os
processadores e a memória.

Classificações e Terminologias Classificações e Terminologias


II. Classificação de Duncan II. Classificação de Duncan
II.1. Arquiteturas Síncrona II.1. Arquiteturas Síncrona
1.3. Arquiteturas Sistólicas: 1.3. Arquiteturas Sistólicas:
 Empregadas em aplicações específicas que possuem
granulação fina, essas arquiteturas caracterizam-se pela
existência de vários processadores organizados em
pipeline.
 Os dados trafegam de um processador a outro sem
armazenamento temporário na memória.
 Apenas os processadores das extremidades se
comunicavam com a memória;

Classificações e Terminologias Classificações e Terminologias


II. Classificação de Duncan II. Classificação de Duncan
II.2. Arquiteturas Assíncrona II.2. Arquiteturas Assíncrona
 Caracterizam-se pelo controle descentralizado de 2.1. Arquiteturas MIMD:
hardware, sendo que cada elemento de
 Possibilitando um alto nível de paralelismo, essas
processamento executa diferentes instruções sobre arquiteturas possuem vários processadores que
diferentes dados. operam de uma maneira independente, com a
 Essa categoria é formada pelas máquinas MIMD. memória organizada de modo centralizado ou
distribuído.
 Podem ser:
 Arquiteturas MIMD  Memória Centralizada;
 2.1. Arquiteturas MIMD
 2.2. Paradigma MIMD  Arquiteturas MIMD  Memória Distribuída;
Classificações e Terminologias Classificações e Terminologias
II. Classificação de Duncan II. Classificação de Duncan
II.2. Arquiteturas Assíncrona II.2. Arquiteturas Assíncrona
2.2. Paradigma MIMD: 2.2. Paradigma MIMD:

2.2.A. MIMD/SIMD (Híbridas); 2.2.A. MIMD/SIMD (Híbridas);


 Também conhecidas como MSIMD;
2.2.B. Fluxo de Dados (Dataflow);
 Caracterizam-se por apresentarem controle SIMD
para determinadas partes de uma arquitetura
2.2.C. Redução;
MIMD;
 A flexibilidade que este modelo pode apresentar é
atrativa (por exemplo, alguns nós podem ser
processadores vetoriais);

Classificações e Terminologias Classificações e Terminologias


II. Classificação de Duncan II. Classificação de Duncan
II.2. Arquiteturas Assíncrona II.2. Arquiteturas Assíncrona
2.2. Paradigma MIMD: 2.2. Paradigma MIMD:
2.2.A. MIMD/SIMD (Híbridas); 2.2.B. Fluxo de Dados;
 APLICAÇÕES: Processamento de Imagens e Sistemas  Uma instrução é executada assim que todos os seus
Especialistas.
operando estão disponíveis;
 Pode-se controlar de maneira não centralizada a
execução de um programa;
 Os dados fluem de instrução a instrução, de maneira
que se consiga paralelismo em alta escala, de
granulação fina, encontrado a tempo de execução.

Classificações e Terminologias Classificações e Terminologias


II. Classificação de Duncan II. Classificação de Duncan
II.2. Arquiteturas Assíncrona
Processadores Vetoriais
2.2. Paradigma MIMD: Arquiteturas Síncronas SIMD

2.2.C. Redução; Arquiteturas Sistólicas

 Implica que partes do código fonte original sejam Memória Compartilhada


reduzidas aos seus resultados em tempo de Arquitetura MIMD
execução: Memória Distribuída
Arquiteturas Assíncronas
 As instruções são ativadas para serem executadas Híbridas (MIMD/SIMD)
quando os seus resultados são necessários como Paradigma MIMD Fluxo de Dados (dataflow)
operando por outra instrução já ativada para
Redução
execução.
Classificações e Terminologias Classificações e Terminologias
III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
 Outra classificação essencial é aquela que divide as III.1. UMA (Uniform Memory Access)
máquinas segundo o compartilhamento de memória;
 A memória utilizada nessas máquinas é centralizada e
 Esta classificação é importante, pois é diretamente encontra-se à mesma distância de todos os
responsável pelo modelo de programação a ser processadores;
empregado no desenvolvimento de aplicações;  A latência de acesso à memória é igual para todos os
 Multiprocessadores: UMA (Uniform Memory Access) e processadores do sistema;
NUMA (Non-Uniform Memory Access).  A memória principal é normalmente implementada
 Multicomputadores: NORMA (Non-Remore Memory com um único bloco.
Access).

Classificações e Terminologias Classificações e Terminologias


III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.1. UMA (Uniform Memory Access) III.1. UMA (Uniform Memory Access)
 Funciona como uma área intermediária de
PROC1 PROC2 PROC3 PROC4 PROC5 armazenamento para cada processador;

BARRAMENTO PROCESSADOR-MEMÓRIA
PROC1 PROC2 PROC3 PROC4 PROC5

CACHE CACHE CACHE CACHE CACHE


MEMÓRIA
BARRAMENTO PROCESSADOR-MEMÓRIA
 Muitas dessas máquinas utilizam-se de memória cache
nos processadores para amenizar a diferença de MEMÓRIA
velocidade entre processador e a memória principal.
 Problemas de Coerência de cache.

Classificações e Terminologias Classificações e Terminologias


III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.1. UMA (Uniform Memory Access) III.1. UMA (Uniform Memory Access)
III.1.1. SMP (Symmetric Multi-Processors): III.1.1. SMP (Symmetric Multi-Processors):
 Um grupo de processadores trabalha conjuntamente,
sendo possível qualquer um deles executar uma parte
do programa;
 Não podem existir múltiplas memórias, ou acesso
privilegiado de um processador a uma memória em
detrimento de outros;
 É do tipo Shared-Everything, ou seja, todos os
processadores compartilham a memória, o barramento
de comunicação e o sistema I/O.
Classificações e Terminologias Classificações e Terminologias
III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.1. UMA (Uniform Memory Access) III.1. UMA (Uniform Memory Access)
III.1.1. SMP (Symmetric Multi-Processors): III.1.2. Multi-Core:
 SO único responsável pelo escalonamento de  Tecnologia em hardware na qual múltiplos cores são
atividades entre os processadores; integrados em um único chip;
 Todos os sistemas operacionais dedicados à
 Multiplicação total dos recursos de processamento –
servidores suportam SMP;
CPUs (Cores);

 Os sistemas SMP são poucos escalonáveis, pois  Grande Vantagem: Compatível com os códigos
dependem diretamente das características da placa; existentes;
 Se esta possui apenas 16 slots para CPUs, este é o
número máximo de CPUs que o sistema poderá ter;

Classificações e Terminologias Classificações e Terminologias


III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.1. UMA (Uniform Memory Access) III.1. UMA (Uniform Memory Access)
III.1.2. Multi-Core: III.1.3. Many-Core:
 GPUs são aceleradores de alto desempenho para
processar dados paralelos;
 Modernos chips de GPU contém centenas de núcleos
de processadores com estruturas homogêneas;

Classificações e Terminologias Classificações e Terminologias


III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.1. UMA (Uniform Memory Access) III.2. NUMA (Non-Uniform Memory Access)
III.1.3. Many-Core:  A memória usada nessas máquinas é distribuída,
implementada com múltiplos módulos que são
 O desafio do programador não
associados um a cada processador.
consiste simplesmente em obter
bons desempenhos;  O espaço de endereçamento é único, e cada
 Mas, também, coordenar o processador pode endereçar toda a memória do
escalonamento da computação no sistema;
processador do sistema e a GPU;  Tempo de acesso local é menor do que o tempo de
 Assim como a transferência de acesso remoto (módulo de memória ligado a outro
dados entre a memória do sistema processador);
e a memória da GPU;  Acesso através da rede de interconexão.
Classificações e Terminologias Classificações e Terminologias
III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.2. NUMA (Non-Uniform Memory Access) III.2. NUMA (Non-Uniform Memory Access)
 A distância à memória não é sempre a mesma e  Essa classe pode ser subdividida em:
depende do endereço desejado.
 NCC-NUMA (Non-Cache-Coherent Non-Uniform Memory Access)
espaço de endereçamento  Acesso não uniforme a memória sem coerência de
MEM MEM MEM MEM MEM cache;
 Variação de NUMA em que não há coerência de
PROC1 PROC2 PROC3 PROC4 PROC5 cache garantida em hardware;

BARRAMENTO

Classificações e Terminologias Classificações e Terminologias


III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.2. NUMA (Non-Uniform Memory Access) III.2. NUMA (Non-Uniform Memory Access)
 Essa classe pode ser subdividida em:  Essa classe pode ser subdividida em:

 CC-NUMA (Cache-Coherent Non-Uniform Memory Access)  SC-NUMA (Software-Coherent Non-Uniform Memory Access)

 Acesso não uniforme a memória com  Acesso não uniforme a memória com coerência de
coerência de cache; cache em software;
 Variação de NUMA em que há coerência de  A coerência não está implementada em hardware,
cache garantida em hardware; mas em software, de forma transparente ao usuário;
 Só faz sentido em máquinas NCC-NUMA e
NORMA que não tem coerência de cache em
hardware.

Classificações e Terminologias Classificações e Terminologias


III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.3. NORMA (Non-Remote Memory Access) III.3. NORMA (Non-Remote Memory Access)
 Como uma arquitetura tradicional inteira foi replicada na 3.1. MPP (Massively Parallel Processors) :
construção dessas máquinas, os registradores de  Supercomputadores - custam alguns milhões de dólares;
endereçamento de cada nó só conseguem endereçar a sua
memória local.  Usa processadores padrões em seus projetos;
 nCube, CM5, Sun Ultra SPARC, IBM RS/6000, a família
 Nesta classe podemos encontrar arquiteturas do tipo:
DEC Alpha, Cray T3E.
MPP (Massively Parallel Processors) e COW (Cluster of
Workstations);  As MPPs também vêm equipadas com bibliotecas de
software proprietárias (muito caras)
 Sempre possuem hardware e software para monitoração do
sistema, detecção de falhas e um excelente esquema de
recuperação dessas falhas.
Classificações e Terminologias Classificações e Terminologias
III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.3. NORMA (Non-Remote Memory Access) III.3. NORMA (Non-Remote Memory Access)
3.1. MPP (Massively Parallel Processors) : 3.3. COW (Cluster of Workstations);
 É formado por PCs ligados por intermédio de uma
rede comercial;
 Usa componentes comerciais que podem ser
comprados e montados localmente;
 Utilizam bibliotecas de softwares livres (PVM, MPI);

Classificações e Terminologias Classificações e Terminologias


III. Segundo o Compartilhamento de Memória III. Segundo o Compartilhamento de Memória
III.3. NORMA (Non-Remote Memory Access)
UMA COMA
3.3. COW (Cluster of Workstations); Multiprocessadores
NUMA CC-NUMA
MIMD NCC-NUMA

Multicomputadores NORMA

SC-NUMA

Classificações e Terminologias Classificações e Terminologias


IV. Outras Classificações. IV. Outras Classificações.
IV.1. SPMD (Single Program, Multiple Data) IV.2. SIMT (Single Instruction, Multiple Threads)
 Este modelo foi definido em 1985 por Darema-Rogers e  Este modelo é utilizado para
Pfister; gerenciar a execução de várias
 É mais geral que o modelo SIMD, pois usa aplicações threads na arquitetura;
com paralelismo de dados e paralelismo de threads;  Este termo é utilizado pela
 Neste modelo, uma cópia do programa é enviada para Nvidia para definir aplicações
cada Unidade de Processamento, porém cada uma irá CUDA;
manipular diferentes dados;
 É necessário apenas uma pequena quantidade de
memória para armazenar a cópia do programa;
Conclusão Referências
 Arquiteturas paralelas são construídas através da 1. PACHECO, PETER S., An Introduction to Parallel Programming, Morgan
Kaufmann (Elsevier), 2011.
replicação do recurso processador com o objetivo de
melhorar o desempenho das aplicações; 2. GRAMA, A., KUMAR, V., GUPTA, A., KARYPIS, G., Introduction to Parallel
Computing: Design and Analysis of Algorithms. 2nd Edition, The
 A taxonomia de Flynn, apesar de antiga, ainda é a base Benjamin/Cummings Publishing Company, 2003.
para a classificação das arquiteturas existentes, sendo
3. JORDAN, H. and ALAGHBAND, G., Fundamentals of Parallel Processing.
complementada pela classificação de Duncan; Prentice Hall, 2003.
 Além da classificação das arquiteturas paralelas, o
4. https://computing.llnl.gov/tutorials/parallel_comp/
recurso memória, também é de grande importância,
pois otimiza o desempenho do sistema; 5. PARHAMI, B., Introduction to Parallel Processing: Algorithms and
Architectures. Kluwer Academic Publishers, Califórnia, 2002.
 Tecnologias como Multi-Core e Many-Core são bastante
utilizadas para executar aplicações em sistemas de
baixo custo.

Você também pode gostar