isutic 2017 - wordpress.com · 10.banco de dados distribuídos 11.paradigmas da programação...
TRANSCRIPT
Introdução na ComputaçãoDistribuída e Paralela
Docente: MSc. Angel Alberto Vazquez Sánchez
ISUTIC2017
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 SignificadoS SimplesM MúltiplaI InstruçãoD 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
Introdução na ComputaçãoDistribuída e Paralela
Docente: MSc. Angel Alberto Vazquez Sánchez
ISUTIC2017