Sistemas Distribuídos
Sistemas Paralelos e de Alto Desempenho
Sistemas Distribuídos
Introdução
O que são Sistemas Paralelos?
MÁQUINAS PARALELAS
“É um conjunto de processadores que é capaz de trabalhar
cooperativamente para resolver um problema computacional” (FOSTER,
1995)
"Máquinas Paralelas é um conjunto de processadores que se
comunicam e cooperam para a resolução de um problema de grande
porte” (Almasi e Gottelib ,1989)
Sistemas Distribuídos
Sistemas Paralelos
O que são Sistemas Paralelos?
PROCESSAMENTO PARALELO
“O principal propósito de processamento paralelo é realizar
computação mais rápida do que pode ser feita com um único
processador, usando mais do que um processadores concorrentes”
(JaJa, 1992)
O processamento paralelo pode ser definido como “uma forma eficiente
de processamento da informação com ênfase na exploração de eventos
concorrentes no processo computacional” Hwang
PROGRAMAÇÃO PARALELA
“Programação paralela implica em dividir problemas em partes nas
quais processadores realizam a computação.” (WILKINSON e ALLEN,
1999)
Sistemas Distribuídos
Sistemas Paralelos
Principais características
Sistemas com mais do que uma unidade de processamento
(processador)
Unidades trabalham em paralelo para resolver um problema
Maquinas paralelas caracterizam-se por custo elevado e/ou dificuldade
de programação;
Custo pode ser diminuído a partir do entendimento das alternativas
de construção de máquinas paralelas, possibilitando uma arquitetura
mais acessível que obtenha o desempenho desejado;
Necessidade de conhecimento de características específicas da
máquina para a qual serão implementados as aplicações paralelas
aumentam a complexidade no desenvolvimento de programas.
Sistemas Distribuídos
Sistemas Paralelos
Diferenças Paralela x Distribuída
• Paralela
• "fortemente" conectada
• construída com esse objetivo
• comunicação, sistema operacional
• Ex.: Massive Parallel Processors (MPP)
• Ex.: clusters de estações de trabalho (COW)
• Clusters de PC’s
• Distribuída
• coleção de máquinas que trabalham em conjunto
• fortemente dependentes da rede
• heterogêneas (proc., sistemas operacionais,...)
• Ex.: Metacomputing (grid), redes, ciclos osciosos
Sistemas Distribuídos
Sistemas Paralelos
Cluster
Definição
•
Conjunto de nós autônomos ligados por redes de alta
velocidade
• Conexão: redes Myrinet, SCI, padrão Ethernet e
Infiniband
• Problemas: Gerenciamento da arquitetura, software e
política de alocação de nós.
Ex.: Beowulf, Dell, CGI
Sistemas Distribuídos
Sistemas Paralelos
Grid
Definições
“Colaboração entre, geralmente pequenos, bem conectados grupos de
usuários com os mais diversos recursos para compartilhar.” (Jon
Crowcroft, em The Grid2, 2004)
“Uma infraestrutura de software e hardware para a integração de
recursos computacionais, instrumentos científicos, dados e pessoas
geograficamente dispersas de modo a formar um ambiente
colaborativo de trabalho.” (FOSTER, 2004)
Sistemas Distribuídos
Sistemas Paralelos
Questões
•
•
•
•
•
•
Quantos processadores ?
Qual a potência de cada processador ?
Como eles cooperam ?
Como os dados são transmitidos ?
Qual o desempenho ?
Escalável ? ( processadores x tamanho)
Sistemas Distribuídos
Sistemas Paralelos
Classificações - Taxonomias
• Existem diversas classificações propostas para as
arquiteturas de máquinas, como a de Feng - que é
baseada no processamento série versus paralelo, a
de Handler que determina o grau de paralelismo e
pipeline em vários níveis, a classificação quanto ao
compartilhamento de memória e a classificação de
Flynn, quanto à multiplicidade do fluxo de dados e
instruções.
Sistemas Distribuídos
Sistemas Paralelos
Taxonomias de Flynn
• Propõe quatro categorias de máquinas:
• SISD, SIMD, MISD, MIMD
• A execução de um conjunto de instruções sobre um
conjunto de dados é a principal tópico de processo de um
computador.
• Fluxo, é uma seqüência de instruções ou dados executados
num único processador;
• fluxo de instruções, é uma seqüência de instruções
executados por uma máquina;
• fluxo de dados é uma seqüência de dados, inclusive de
entrada, resultados parciais e intermediários, utilizados
pelo fluxo de instruções.
Sistemas Paralelos
Sistemas Distribuídos
Taxonomias de Flynn
SI (Single
Instruction)
MI (Multiple
Instruction)
SD (Single Data)
MD (Multiple Data)
SISD
SIMD
Máquinas Von
Neumann
convencionais
Máquinas Array (CM-2,
MasPar)
MISD
MIMD
Sem representante
(até agora)
Multiprocessadores,
multicomputadores (nCUBE,
Intel Paragon, Cray T3D)
Sistemas Paralelos
Sistemas Distribuídos
Taxonomias de Flynn -SISD
•
SISD - Single instruction stream - Single Data Stream
• Baseadas nos princípios de Von Neumann. As instruções são
executadas seqüencialmente, mas podem ser sobrepostas nos
seus estágios de execução (pipeline).
• Exemplos: Microcomputadores pessoais e estações de trabalho
C
P
M
fluxo de instruções
fluxo de dados
O fluxo de instrução (--->) alimenta
uma unidade de controle (C) que
ativa a CPU (P), que atua sobre um
único fluxo de dados (- ->) lido, processado e reescrito na memória (M).
Sistemas Distribuídos
Sistemas Paralelos
Taxonomias de Flynn - SIMD
•
SIMD - Single instruction stream - Multiple Data Stream
• Arquitetura paralela onde uma única instrução, através de uma
unidade de controle, executa de forma síncrona sobre um conjunto
de dados diferentes, distribuídos ao longo de processadores
elementares.
• Ex.: arquiteturas matriciais como CM-2 e MasPar.
C
P
M
P.
M
.
P
M
..
..
Unidade de controle (C) única, alimentada
por um fluxo de instruções (--->). A mesma
instrução é enviada para as diversas CPUs (P)
executando em paralelo sobre diferentes fluxos
de dados (- ->).
Obs.: Unidade de memória não pode ser
implementada como um único módulo, o que
comprometeria o modelo à uma operação por vez.
fluxo de instruções
fluxo de dados
Sistemas Distribuídos
Sistemas Paralelos
Taxonomias de Flynn - MISD
•
MISD - Multiple instruction stream - Single Data Stream
• Múltiplos fluxos de instruções atuando sobre um único fluxo de
dados;
• Diferentes instruções operam a mesma posição de memória ao
mesmo tempo, executando instruções diferentes;
• Não faz sentido, além de ser impraticável tecnicamente.
C
P
M
C
...
P.
M
.
C
P
M
..
..
Múltiplas unidades de processamento (P), cada
uma com sua própria unidade de controle (C),
recebendo um fluxo de instruções (--->) diferente,
executadas sobre um mesmo fluxo de dados.
fluxo de instruções
fluxo de dados
Sistemas Distribuídos
Sistemas Paralelos
Taxonomias de Flynn - MIMD
• MIMD - Multiple instruction stream - Multiple Data Stream
• Multiplos fluxos de instruções atuando sobre múltiplos fluxos de dados;
• Cada processador executa seu próprio programa sobre seus próprios
dados, de forma assícrona;
• EX.: Dual e quad, redes de estações, nCUBE, Intel paragon e Cray
T3D;
C
P
M
C
...
P.
M
.
C
P
M
..
..
Cada unidade de controle (C) recebe um fluxo de
instruções (--->) próprio e repassa para a unidade
processadora (P), para que seja executado sobre
um fluxo de dados (--->) próprio.
fluxo de instruções
fluxo de dados
Sistemas Distribuídos
Sistemas Paralelos
Programação seqüencial
•Especificação da tarefa
Textual, “na cabeça”, equações ...
•Codificação da tarefa
Numa linguagem de programação (por ex. C, Java,
...)
• Execução num processador
Programa é executado num computador com um
processador
Sistemas Distribuídos
Sistemas Paralelos
Programação Paralela
Além das tarefas da programação seqüencial:
•Decomposição da tarefa em sub-tarefas
• Análise de dependências entre as sub-tarefas
• Mapeamento espacial e temporal (scheduling) das subtarefas para os recursos do sistema paralelo
Sistemas Distribuídos
Sistemas Paralelos
Programação Paralela
Sistemas Distribuídos
Sistemas Paralelos
Programação Paralela
•Identificação de sub-tarefas/
decomposição em sub-tarefas
• Análise de dependências entre
as sub-tarefas
Sistemas Distribuídos
Sistemas Paralelos
Programação Paralela
Sistemas Distribuídos
Sistemas Paralelos
Programação Paralela
Sistemas Distribuídos
Sistemas Paralelos
Porque da Computação de alto Desempenho ?
Modelagem de problemas reais
• Difícil o uso de modelos analíticos
• sujeitos a simplificações
• de difícil solução
• Métodos experimentais
• modelos em escala reduzida
• distância entre os átomos não pode ser reduzida
• técnicas não destrutivas (biológicos)
• para medir pertuba-se o experimento
• custo dos laboratórios
• perigo (biológicos e químicos)
Sistemas Distribuídos
Sistema Requerido
Sistemas Paralelos
Sistemas Distribuídos
“A união faz
a força”
Sistemas Paralelos
Sistemas Distribuídos
Sistemas Paralelos
Aplicações
•Modelagem Multi-Escala;
•Modelagem Estocástica;
•Mecânica dos Fluidos Computacionais;
•Interação Fluido-Estrutura;
•Otimização e Analise de Sensibilidade na caracterização de
propriedades, calibração e assimilação de dados fisiológicos e de
propriedades de tecidos vivos;
•Banco de Dados e Mineração de Dados Distribuídos;
•Visualização Cientifica e Reconstrução de Imagens;
•Redes e Comunicação;
•Modelagem Climática;
Sistemas Distribuídos
Sistemas Paralelos
Alguns Projetos em andamento ou finalizados
•SIMEGRID: Simulações em Grid - Projeto financiado pelo CNPq
(Edital CT-INFO “Desafios da Computação”) e coordenado pelo Prof.
Bruno Schulze
• GT VCG: Grupo de Trabalho - Virtual Community Grid – Primeira
e Segunda fase. Projeto financiado pela RNP – Rede Nacional de
Ensino e Pesquisa e coordenado pelo Prof. Bruno Schulze
• Middleware para Computação em Grade. Projeto financiado pelo
CNPq e coordenado pelo Prof. Bruno Schulze.
• Integridade: Desenvolvimentos em Middleware para Grids
Computacionais na Rede Giga. Projeto financiado pela FINEP,
FUNTTEL e RNP, e coordenado pelo Prof. Bruno Schulze
Sistemas Distribuídos
Sistemas Paralelos
Alguns Projetos em andamento ou finalizados
• INAUGRID: Interfaces de Aplicações no Uso de Grids. Projeto
financiado pela CNPq e coordenado pelo Prof. Bruno Schulze.
• METRICA - METRologia na Internet para Caracterização de tráfego.
Projeto financiado pelo CNPq e coordenado pelo Prof. Artur Ziviani
envolvendo inclusive a empresa Quatra Telecomunicações e
Informática - QUATRA TELECOM.
• Redes de Nova Geração: Tecnologias Estratégicas de Comunicação.
Projeto financiado pela FAPERJ.
• METRICOM-Metrologia na Internet e Comunicação Móvel. Projeto
financiado pelo CNPq e coordenado pelo Prof. Artur Ziviani.
Sistemas Distribuídos
Sistemas Paralelos
Alguns Projetos em andamento ou finalizados
• Metrologia de Redes Aplicada a Grades Computacionais
Convencionais e sem Fio. Projeto financiado pela FAPERJ e
Coordenado pelo Prof. Artur Ziviani.
• ACiMA - Ambientes Colaborativos e Multimídia Aplicada. Projeto
financiado por CAPES, CNPq, FINEP, FUNTTEL e RNP-Rede
Nacional de Ensino e Pesquisa. Coordenado pelo Prof. Jauvane
Cavalcante de Oliveira envolvendo pesquisadores do LNCC e do
Instituto Militar de Engenharia - IME
• EnCIMA - Um Motor Gráfico para Aplicações Multimídia
Colaborativas e Imersivas. Projeto financiado pela FAPERJ e
coordenado pelo Prof. Jauvane Cavalcante de Oliveira envolvendo
pesquisadores do LNCC e do Instituto Militar de Engenharia – IME.
Sistemas Distribuídos
Sistemas Paralelos
Alguns Projetos em andamento ou finalizados
• GIGA-AVICOM: Ambientes Virtuais Colaborativos Massivos na
rede GIGA. Projeto financiado por CAPES, FINEP, FUNTTEL e
RNP-Rede Nacional de Ensino e Pesquisa. Coordenado pelo Prof.
Jauvane Cavalcante de Oliveira
• Ambientes Virtuais Colaborativos de Grande Escala. Projeto
financiado pelo CNPq e coordenado pelo Prof. Jauvane Cavalcante
de Oliveira.
• Sistemas Computacionais para Reconstrução de Superfícies
Traumáticas e Previsibilidade de Resultados para Manufatura de
Próteses Craniofaciais. Projeto financiado pelo CNPq e coordenado
pelo Prof. Gilson Antônio Giraldi envolvendo pesquisadores da
Universidade Estadual e Federal de São Paulo em São Carlos dentre
outras instituições..
Sistemas Distribuídos
Sistemas Paralelos
Alguns Projetos em andamento ou finalizados
• Inovação Tecnológica na Modelagem Computacional do Sistema
Cardiovascular Humano. Projeto financiado pelo CNPq e
coordenado pelo Prof. Raúl A. Feijóo envolvendo pesquisadores de
instituições tais como InCor – Instituto do Coração do Hospital das
Clinicas, Faculdade de Medicina da USP (HC FMUSP),
Departamento de Cardiologia, Faculdade de Medicina da UFRJ..
Sistemas Distribuídos
Introdução
Referências
Silva, Renato (2003) “Computação de Alto Desempenho - Clusters
de PCs”.
Tanenmabum, Andrew S. (2003). “Sistemas Operacionais
Modernos”, Pearson / Prentice Hall, 2ª Edição, pp 1-707. ISBN 8587918-57-5.
Oliver Sinnen (2000) “Sistemas de Processamento Paralelo:
Programação e Scheduling”.
Palestra(2000) “ Arquiteturas Não-Convencionais Introdução e
conceitos “, Centro Univeritário la Salle
Download

Sistemas Paralelos