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

Documentos relacionados
Arquitetura de sistemas distribuídos

Carlos Eduardo Batista Centro de Informática - UFPB

Arquitetura de Computadores Paralelos. Introdução Conceitos Básicos Ambientes de Programação Modelos de Programação Paralela

Análise e desenho de algoritmos paralelos

Gerência de Processos Distribuídos: Sub processamento múltiplo.

Sistemas distribuídos. Prof. Emiliano Monteiro

SSC510 Arquitetura de Computadores. 6ª aula

Sistemas Distribuídos

speedup aprimorado aprimorado Fração aprimorada speedup aprimorado Fração aprimorada speedup aprimorado Tempo original Fração aprimorada aprimorado

Sistemas Distribuídos

Sistemas Distribuídos. Plano de Curso. Plano de Curso 04/03/12 ! EMENTA:

Sistemas Distribuídos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

SISTEMAS OPERACIONAIS

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS. Aula 1- Introdução aos Sistemas Distribuídos

Linguagem de Programação II

CIC Organização e Arquitetura de Computadores. Prof. Ricardo Jacobi Notas de Aula: Prof. Gerson Henrique Pfitscher

Introdução aos Sistemas Distribuídos

Curso de Bacharelado em Ciência da Computação

Sistemas Distribuídos

Disciplina de Arquitetura de Computadores

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais. Referências Bibliográfica. Referências Bibliográfica

Paralelização de Algoritmos de CFD em Clusters Multi-Core MC7. Escola de Verão Arquiteturas Multi-Core

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I

Introdução à Ciência da Computação

CRÉDITOS DO CURSO. Carga Horária Créditos IN1030 Seminários 30 2

Organização e Arquitetura de Computadores I

SIST706 Sistemas Distribuídos

Computadores e Programação (DCC/UFRJ)

Multiprogramação leve em arquiteturas multi-core

SO: SISTEMAS OPERACIONAIS Curso: Sistemas de Informação

Arquitetura de Computadores. Prof. João Bosco Jr.

Sistemas Distribuidos. Prof. Walter Gima

Aula 06 - Máquina Multinível e Von Neumann

Técnicas Avançadas de Programação

Modelo de Von Neumann

Introdução à Programação Aula 01. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

CP Introdução à Informática Prof. Msc. Carlos de Salles

STD29006 Sistemas Distribuídos

Introdução à Computação

Curso de Programação Distribuída e Paralela 29/09/2008. Informática UFRGS. Sistemas Operacionais II (C. Geyer) Sincronização 1. Pg.

DESENVOLVIMENTO DE UM ALGORITMO PARALELO PARA APLICAÇÃO EM CLUSTER DE COMPUTADORES

Conceitos Básicos INTRODUÇÃO À COMPUTAÇÃO E SUAS APLICAÇÕES

PARALELISMO NO NÍVEL DO PROCESSADOR

INE 5645 PROGRAMAÇÃO PARALELA E DISTRIBUÍDA

Introdução à Programação Paralela através de Padrões. Denise Stringhini Calebe Bianchini Luciano Silva

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES INTRODUÇÃO AO PARALELISMO: PROCESSADORES SUPERESCALARES. Prof. Dr. Daniel Caetano

Programação de Computadores I - PRG1 Engenharia Elétrica

Sistemas Distribuídos

Caracterização de Sistemas Distribuídos

Arquiteturas paralelas Parte 1

Introdução à Computação: Sistemas de Computação

Universidade Federal do RGS Instituto de Informática Departamento de Informática Aplicada

SSC-0742 PROGRAMAÇÃO CONCORRENTE. Aula 01 Introdução à Programação Concorrente Prof. Jó Ueyama Créditos: Prof. Júlio C. Estrella

Processamento Paralelo

Informática Básica e Aplicativos de Escritório

Organização de Computadores Sistema de entrada e saída (I/O) e computação paralela. Professor: Francisco Ary

Arquitetura de Sistemas Digitais

SISTEMAS DISTRIBUÍDOS

Apresentação. Sistemas Operacionais. Universidade Federal de Uberlândia Faculdade de Computação Prof. Dr. rer. nat. Daniel D.

COMPUTAÇÃO PARALELA E DISTRIBUÍDA

Programação Paralela e Distribuída

Parallel Computing Paradigms

Introdução à Programação de Computadores Fabricação Mecânica

SISTEMAS OPERACIONAIS DE REDE

Cliente-servidor Código móvel Agentes de software Processos pares. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Programação Concorrente e Paralela

Arquitetura de Computadores

UNIVERSIDADE FEDERAL DO PARÁ PRÓ-REITORIA DE PESQUISA E PÓS-GRADUAÇÃO DIRETORIA DE PESQUISA PROGRAMA INSTITUCIONAL DE BOLSAS DE INICIAÇÃO CIENTÍFICA

SSC0611 Arquitetura de Computadores

PIPELINE. Introdução ao Pipeline. PIPELINE Ciclo de Instruções. PIPELINE Ciclo de Instruções. PIPELINE - Exemplo. PIPELINE Considerações

FTC Faculdade de Tecnologia e Ciências Engenharia Civil 1º Semestre. Conceitos Básicos. Rafael Barbosa Neiva

Bacharelado em Sistemas de Informação Sistemas Operacionais. Prof. Filipo Mór

Informática Básica e Aplicativos de Escritório

Arquiteturas Paralelas

Organização de Computadores I

Informática Básica CONCEITOS DE HARDWARE. Msc. Eliezio Soares

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

Licenciatura em Informática

BARRAMENTOS DO SISTEMA FELIPE G. TORRES

UNIVERSIDADE LUSÍADA DE LISBOA. Programa da Unidade Curricular SISTEMAS OPERATIVOS Ano Lectivo 2013/2014

Informática na Educação. Conceitos Introdutórios

Caracterização de Sistemas Distribuídos

Apresentação. Prof.: Roitier Campos Gonçalves

Figura 4.2: Matriz Curricular

Sistema de Software Distribuído

Desenvolvimento de um Middleware Distribuído para Ordenação de Mensagens Segundo os Algoritmos FIFO, Causal e Total

Disciplina de Organização de Computadores Digitais

Arquitetura de Computadores

SSC0112 Organização de Computadores Digitais I - Turma 2

Modelos para Concorrência

Sistemas Distribuídos

Computação Distribuída

Arquiteturas de Computadores. Programa de Pós-Graduação em Ciência da Computação. Plano da aula. Histórico. Quatro gerações

Transcrição:

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: N 2 cálculos. O cálculo é repetido a intervalos de tempo curtos. A galáxia é de cerca de 10 11 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 S M I D Significado Simples Múltipla Instrução 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