Você está na página 1de 38

ISUTIC

2017

Introdução na Computação
Distribuída e Paralela

Docente: MSc. Angel Alberto Vazquez Sánchez


Características da matéria

90 horas no semestre

Conferências, Aulas Práticas, Laboratórios e
Seminários

Objetivo
– Introduzir os alunos nos fundamentos de sistemas de
computadores paralelos e distribuídos e possibilitar o
entendimento dos principais aspectos que intervêm
no projecto e na utilização desses sistemas, em
vários níveis de complexidade.
Avaliações contínuas

Questionários escritos.

Participação em aulas.

Laboratórios.

Seminários.

Trabalho Prático Final.
Conteúdos da matéria
1. Definição e Aspectos Básicos de Sistemas
Paralelos e Distribuídos
2. Arquitecturas Paralelas e Distribuídas.
3. Aspectos do Projecto de Sistemas Paralelos e
Distribuídos
4. Redes de Processadores
5. Sistemas Operacionais Paralelos e Distribuídos
6.Gerência de Processos Distribuídos
7. Comunicação entre Processos Paralelos e
Distribuídos: Modelo ClienteServidor.
Conteúdos da matéria
8.Memória Compartilhada Distribuída
9.Gerência de Arquivos Distribuída
10.Banco de Dados Distribuídos
11.Paradigmas da Programação Paralela e
Distribuída
12.Avaliação de Desempenho de Sistemas
Computacionais Paralelos e Distribuídos
13.Desenvolvimento de Sistemas de Informação
Paralelos e Distribuídos
Bibliografia recomendada

Coulouris, G., Dollimore, J., Kindberg, T., & Blair, G. (2013).
Sistemas Distribuídos-: Conceitos e Projeto. Bookman
Editora.

Lynch, N. A. (1996). Distributed algorithms. Morgan Kaufmann.

Marques, J. A., & Guedes, P. (1998). Tecnologia de sistemas
distribuídos.

Mullender, S., & others. (1993). Distributed systems (Vol. 12).
acm press United States of America.

Tanenbaum, A. S. (1995). Distributed operating systems.
Pearson Education India.

Wilkinson, B., & Allen, M. (1999). Parallel programming:
techniques and applications using networked workstations
and parallel computers. Prentice-Hall.
Aula de hoje

Necessidades e Motivações dos Sistemas
Distribuídos e Paralelos.

Definição de Sistemas Distribuídos e Paralelos.

Classificação de Flynn.
Objetivo

Identificar os principais conceitos associados a
Sistemas Distribuídos e Paralelos.
Computador convencional

Um único processador resolve todas as tarefas
Necessidade

O rendimento dos computadores sequenciais
está a começar a saturarse.

Uma única CPU tem limites físicos:
– Limite da velocidade da luz: Estancamento nos
incrementos da frequência de relógio.
– Limite de Integração: Cerca do limite máximo.
– Mais frequência → Mais consumo + Temperaturas
muitoelevadas.
– Memória disponível.
– Características.
Necessidade

Há uma demanda contínua de um poder
computacional superior:
– Modelagem e simulação numérica de problemas em
ciências e engenharia.
– Caros cálculos iterativos sobre grandes quantidades
de dados e fortes restrições temporárias:

Exemplos: predição meteorológica, biocomputación,
astrofísica.
– São sistemas a cada vez mais complexos que
requerem maior tempo de cómputo.

Os processadores atuais são paralelos: n-core
Motivações

Sistemas de Previsão do Tempo:

A atmosfera total é dividida em células de
tamanho por exemplo 1 milha x 1 milha x 1
milha, para uma alta de 10 milhas = 5 x células.

Se cada cálculo requer 200-flops, em um
intervalo de tempo flops são necessários.

Analisar o clima de 7 dias, com intervalos de 1
minuto, num computador de 1Gflops ( flops)
leva segundos ≈12 dias.
Motivações

Problema das N-corpos no espaço:
– Cada corpo atrai gravitacionalmente todos os outros.
– O movimento de um corpo depende da força total
exercida sobre ele.
– Para N corpos, N-1 força devem ser calculadas: N2
cálculos.
– O cálculo é repetido a intervalos de tempo curtos.
– A galáxia é de cerca de 1011 corpos.
– Se cada cálculo leva 1ms, uma iteração completa
leva 3 anos.
Motivações
Motivações
Motivações
Problemas de grandes desafios:
São problemas fundamentais em ciência ou engenharia
muito usados, e cujos soluções exigem da computação de
alto rendimento (High Performance Computing, HPC) para
alcançar respostas de tempo adequado.
Exemplos:

A dinâmica de fluidos computacional para:
– Projeto de aviões hipersônicos, carrocerías de autos
eficientes e submarinos silenciosos,
– Previsão do tempo para o curto e longo prazo,
– Recuperação de petróleo eficiente
Motivações
Problemas de grandes desafios:

Cálculos de estrutura eletrônica para a concepção
de novos materiais tais como:
– Catalisadores químicos,
– Agentes imunológicos,
– Supercondutores,
– Simulação de circuitos

Processamento de imagem:
– Aplicação em Medicina,
– Jogos de vídeo.
Motivações
Problemas de grandes desafios:

Computação simbólica para:
– Reconhecimento de voz,
– Visão por computador,
– Compreensão da linguagem natural,
– Razonamiento automático,
– Ferramentas para design, fabricação e simulação de
sistemas complexos.

Problemas de astrofísica: Evolução de Galaxias.
Motivações
Problemas de grandes desafios:

Biologia computacional:
– Sequência de DNA,
– Reprodução de Espécies,
– Funcionamento do cérebro humano.

Administração de dados:
– Banco de dados geográficas,
– Mineração de Dados,
– BigData
Motivações
Problemas de grandes desafios:

Meio ambiente:
– Contaminação
– Predição de incêndios e inundações de grande escala,
– Predição do clima.

Simulação:
– Início do universo,
– Correntes Oceánicas,
– Evacuações,
– Difusão de Doenças, Vírus Informático, etc.
Sistema Distribuido
¿Que têm em comum estes aplicativos?

Tomam muito tempo.

Manejam grandes volumes de dados.

O tamanho do problema é extremamente
grande.
Para que sejam efetivas se requer um
processamento num tempo razoável.
Solução

Usar vários processadores
Sistema Distribuido

Colecção de computadores separados
fisicamente e ligados por uma rede de
comunicações; cada máquina tem seus
componentes de hardware e software que o
programador percebe como um sozinho sistema.

O programador acede aos componentes de
software (objetos) remotos num grupo de
computadores, da mesma maneira em que
acederia a componentes locais.
Sistema Distribuido ou Sistema
Paralelo

Em programação distribuída, existe um
conjunto de computadores conectados por uma
rede que são usados colectivamente para
realizar tarefas distribuídas.

Por outro lado nos sistemas paralelos, a
solução a um problema importante é dividida
em pequenas tarefas que são repartidas e
executadas para conseguir um alto rendimento.
¿Que é a programação paralela?

Uso de vários processadores trabalhando
juntos para resolver uma tarefa comum.

O modo de uso dos processadores pode ser
desenhado pelo programador:
– Cada processador trabalha numa porção do
problema.
– Os processos podem trocar dados, através da
memória ou por uma rede de interconexão.
¿Que é a programação paralela?
Evolução de computadores mais
potentes
Tarefa

Procurar informação sobre os 10 super
computadores mais poderosas da actualidade.

¿Que paises estão mais representados?

https://www.top500.org/
Vantagens da Computação Paralela

A programação paralela permite:
– Resolver problemas que não cabem numa CPU.
– Resolver problemas que não se resolvem num
tempo razoável.

Podem-se executar:
– Problemas maiores.
– Mais rapidamente (aceleração).
– Mais problemas.
Aplicações distribuídas

Funcionam seguindo um modelo
cliente/servidor: Um ou mais servidores criam
uns objetos locais e depois atendem petições
de acesso sobre esses objetos provenientes de
clientes situados em lugares remotos da rede.

Desta maneira os sistemas distribuídos
solucionam as necessidades de:
– Repartir o volume de informação.
– Compartilhar recursos, já seja em forma de
software ou hardware.
Clasificação de Flynn

Fluxo de Instrução vs. Fluxo de Dados
– SISD
– SIMD
– MISD
– MIMD

Letra Significado
S Simples
M Múltipla
I Instrução
D Dado
Clasificação de Flynn Aspectos de
hardware
Fluxo de Instrução vs. Fluxo de Dados

SISD: Único fluxo de instruções aplicado a um
único fluxo de dados.

SIMD: Único fluxo de instruções aplicado a
múltiplos fluxos de dados.

MISD: Múltiplos fluxos de instruções aplicado a
um único fluxo de dados.

MIMD: Múltiplos fluxos de instruções aplicado a
múltiplos fluxos de dados
Clasificação de Flynn Aspectos de
hardware
Tarefa

Procurar dados biográficos de Michael J. Flynn
e seus principais contribuições científicas
Tarefa

Procurar informação para responder
asseguintes perguntas:
– ¿Que diferenças existem entre Memória
– Compartilhada e Memória Distribuída?
– ¿Quais são as topologias de interconexão em
sistemas distribuídos?
Clasificação de Flynn Aspectos de
hardware
Fluxo de Instrução vs. Fluxo de Dados

SISD: Único fluxo de instruções aplicado a um
único fluxo de dados.

SIMD: Único fluxo de instruções aplicado a
múltiplos fluxos de dados.

MISD: Múltiplos fluxos de instruções aplicado a
um único fluxo de dados.

MIMD: Múltiplos fluxos de instruções aplicado a
múltiplos fluxos de dados
ISUTIC
2017

Introdução na Computação
Distribuída e Paralela

Docente: MSc. Angel Alberto Vazquez Sánchez

Você também pode gostar