Definindo melhor alguns conceitos

Documentos relacionados
Arquitetura dos Sistemas de Informação Distribuídos

Paralelismo. Computadores de alto-desempenho são utilizados em diversas áreas:

Introdução aos Computadores

Organização e Arquitetura de Computadores I. de Computadores

Organização e Arquitetura de Computadores I. de Computadores

Sistemas Operacionais. Prof. André Y. Kusumoto

Capítulo 8 Arquitetura de Computadores Paralelos

Introdução às arquiteturas paralelas e taxonomia de Flynn

Sistema Operacional Correção - Exercício de Revisão

Processamento de Dados

Microarquiteturas Avançadas

Arquitetura de Computadores. Ivan Saraiva Silva

Arquitetura e Organização de Computadores 2. Apresentação da Disciplina

SISTEMAS DISTRIBUÍDOS

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Sistemas Operacionais

Sistemas Operacionais

O hardware é a parte física do computador, como o processador, memória, placamãe, entre outras. Figura 2.1 Sistema Computacional Hardware

Comparação SDs X Scs

Apresentação. Ementa da Disciplina. Objetivo da Disciplina. DCA-108 Sistemas Operacionais

O que veremos nesta aula? Principais Aspectos de Sistemas Operacionais. Visão geral de um sistema computacional

1.1. Organização de um Sistema Computacional

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

Unidade 13: Paralelismo:

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

A Evolução dos Clusters frente as demais arquiteturas de Alto Desempenho

Programação Concorrente Introdução

SIS17-Arquitetura de Computadores

COMPONENTES DE REDES. Fernando Albuquerque (061)

} Monolíticas Aplicações em um computador centralizado. } Em Rede Aplicações com comunicação em rede. } Distribuídas Comunicação e cooperação em rede

3. O NIVEL DA LINGUAGEM DE MONTAGEM

Introdução aos Sistemas Operativos

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Introdução ao Processamento Paralelo

Componentes do Computador e. aula 3. Profa. Débora Matos

Tabela de roteamento

LCAD. ALGORÍTMOS PARALELOS (Aula 6) Neyval C. Reis Jr. OUTUBRO/2004. Laboratório de Computação de Alto Desempenho DI/UFES.

Organização e Arquitetura de Computadores. Hugo Barros @hugobarros.com.br

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Introdução aos Sistemas

1

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

Máquinas Multiníveis

Engenharia de Software

Fundamentos de Sistemas Operacionais

Everson Scherrer Borges João Paulo de Brito Gonçalves

Fundamentos de Sistemas Computacionais Introdução

Fundamentos de Banco de Dados

SISTEMAS OPERACIONAIS

Sistemas Operacionais

Sistemas Distribuídos

Unidade Central de Processamento (CPU) Processador. Renan Manola Introdução ao Computador 2010/01

Caracterização de desempenho em programas paralelos

Sistemas Distribuídos

7.Conclusão e Trabalhos Futuros

REDES DE COMPUTADORES

Análise de Desempenho de um SGBD para Aglomerado de Computadores

Arquiteturas RISC. (Reduced Instructions Set Computers)

Carreira: definição de papéis e comparação de modelos

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Informática I. Aula 5. Aula 5-13/05/2006 1

Capítulo 9. Gerenciamento de rede

1. CAPÍTULO COMPUTADORES

Sistemas Paralelos e Distribuídos. Prof. Jorge Dantas de Melo Depto. Eng. Comp. e Automação CT - UFRN

Programação de Sistemas para Tempo Real Capítulo 1. Luiz Affonso Guedes DCA-CT-UFRN

SISTEMAS OPERACIONAIS CAPÍTULO 3 CONCORRÊNCIA

Sistemas Operacionais Introdução. Professora: Michelle Nery

Arquitetura NUMA 1. Daniel de Angelis Cordeiro. INRIA MOAIS project Laboratoire d Informatique de Grenoble Université de Grenoble, França

Teleprocessamento e Redes Universidade Católica do Salvador. Aula 04 - Estrutura de Redes de Comunicação. Objetivo : Roteiro da Aula :

Definindo melhor alguns conceitos

Redes de Computadores UNIDADE 2:Conhecendo os equipamentos, dispositivos e serviços de TI.

Dadas a base e a altura de um triangulo, determinar sua área.

Introdução ao Modelos de Duas Camadas Cliente Servidor

SISTEMAS DISTRIBUIDOS

Bancos de Dados Paralelos. Alunos: ALLAN ROGER BELLO WILLIAN DIAS TAMAGI

Hardware. Computador. Hardware parte do computador em que você normalmente mete o pé quando seu computador não executa uma tarefa solicitada por você.

Organização e Arquitetura de Computadores. Capítulo 13 Paralelismo no nível de instruções

Engenharia de Software

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 23. Sistemas Operacionais Distribuídos

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

7 Processamento Paralelo

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais

Arquitetura de Computadores. Introdução aos Sistemas Operacionais

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

Engenharia de Sistemas Computacionais

Sistemas Operacionais

Notas da Aula 4 - Fundamentos de Sistemas Operacionais

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

SISTEMAS OPERACIONAIS

Multi-processamento. Arquitecturas MIMD de memória partilhada Multi-cores heterogéneos Multi-processadores

Sistema de Computação

Universidade Federal de Alfenas

Introdução à Arquitetura de Computadores

Computadores de Programação (MAB353)

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

Arquitetura de Computadores Paralelismo, CISC X RISC, Interpretação X Tradução, Caminho de dados

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Transcrição:

Definindo melhor alguns conceitos Processamento Paralelo: processamento de informação concorrente que pertencem a um ou mais processos que resolvem um único problema. Processamento Distribuído: processamento de informações em um sistema cujos recursos estão sendo compartilhados por vários programas Computador Paralelo: computador de múltiplos processadores capaz de realizar processamento paralelo Supercomputador: computador de propósito geral capaz de resolver problemas em alta velocidade, comparando com outras máquinas da mesma época.

Terminologia A vazão de um dispositivo é o número de resultados produzidos por unidade de tempo. (throughtput) Speedup (aceleração): razão entre o tempo de execução necessário para o algoritmo seqüencial mais eficiente e o tempo necessário para se realizar a mesma computação numa máquina paralela Existem diversas definições de speedup: speedup absoluto(n)= T(melhor alg. seq. )/ T( prog // c/ n proc.) speedup aproximado(n)= T(prog.// c/1 proc.)/t( prog // c/ n proc.) speedup relativo (n)= T(prog. // c/(n-1) proc.)/t(prog.// c/ n proc.)

Computação concorrente Duas formas de se explorar a concorrência em computação em computação Paralelismo de controle e de dados tempo t 7 + 3 string == casa? 32 * 14 7 + 3 10 + 200 33 + 329

Paralelismo de Controle aplicando-se operações diferentes a diferentes dados simultaneamente. fluxo de dados entre processos pode ser arbitrariamente complexo Exemplo: Pipelining: cada estágio trabalha em velocidade plena sobre uma parte particular da computação. A saída de um estágio é a entrada do estágio seguinte

Paralelismo de Controle tempo E1 E2 E3 E4 info 1 info 2 info 1 info 3 info 2 info 1 info 4 info 3 info 2 info 1

Paralelismo de Dados uso de vários processadores para executar a mesma operação ao mesmo tempo sobre elementos distintos de dados Um aumento de k vezes no número de unidades funcionais levaria a um aumento de k vezes a vazão do sistema 7 + 3 10 + 200 33 + 329

Aplicações Aplicações ou programas podem ser executados mais rapidamente, considerando duas formas de paralelismo tratar o programa seqüencial como uma série de tarefas cada tarefa = uma instrução ou blocos de instruções OU especificar um programa paralelo, que resolve o problema através da especificação de tarefas ou processos concorrentes

Exploração de paralelismo Particionamento identificar em um programa, as tarefas que possam ser executadas em paralelo (simultaneamente em mais de um processador) caso extremo: cada linha do programa correspondendo a uma tarefa um bom desempenho só é alcançado se um número máximo de comandos são executados simultaneamente É preciso considerar dependências de dados problema: se quase todos os comandos são dependentes

Exemplo: programa seqüencial! paralelismo de instruções program nothing(){ input (A,B,C); if A>B then { C=A-B; output (C); } else { C = B-A; output (A,B,C) } A=0; B=1; for i=1 to 3 { input(c); A=A+C; B=B*C; } output (A,B,C); }

Exemplo Tarefa T1 input (A,B,C); if A>B then{ C=A-B; output (C); }else{ } C = B-A; output (A,B,C) Tarefa T2 A = 0; Tarefa T3 B=1; Tarefa T4 for i=1 to 3 { input(c); A=A+C; B=B*C; } output (A,B,C)

Exemplo T1 4 T2 T3 1 1 T4 16

Exemplo: Soma n números Problema: somar n números quaisquer Programa seqüencial: read (n, vetor); soma = 0; for (i = 0; i < n; i++) soma = soma + vetor[i]; Como paralelizar o problema?

Modelando soma paralela de n números + + + + + + + + + + + + + + +

Speedup Factor S(p) = Execution time using one processor (best sequential algorithm) Execution time using a multiprocessor with p processors = t s t p where t s is execution time on a single processor and t p is execution time on a multiprocessor. S(p) gives increase in speed by using multiprocessor. Typically use best sequential algorithm with single processor system. Underlying algorithm for parallel implementation might be (and is usually) different. 1a.14

Speedup Factor Speedup factor can also be cast in terms of computational steps: S(p) = Number of computational steps using one processor Number of parallel computational steps with p processors 1a.15

Maximum Speedup speedup máximo usualmente p com p processadores (linear speedup). Suponha que o melhor algoritmo sequencial tenha tempo Ts Se S(p) = Ts Tp > p então podemos usar o algoritmo paralelo em um processador e seu tempo seria p Tp Se S(p) < P pois o algoritmo sequencial tem tempo menor que p Tp, 1a.16

Superlinear Speedup superlinear speedup: maior que p Possível, devido a razões como: tem mais memória em sistemas multiprocessados algoritmos não determinísticos 1a.17

Maximum Speedup - Amdahl s law The speedup using multiple processors is limited by the time needed for the sequential fraction of the program t s (a) One processor ft s Serial section (1 - f ) t s Parallelizable sections (b) Multiple processors p processors t p (1 - f ) t s / p 1a.18

Amdahl s law Let f = proportion of a program that can be totally parallelized (1 f) is the proportion that remains serial Then the maximum speedup that can be achieved by using P processors is Sp (P) = 1 (1-f)+ f/p Amdahl used this argument to support the design of ultrahigh speed single processor systems in the 1960s. (reflete monoprocessadores) 1a.19

Gustafson s law! Gustafon s Law - 1988 Tipicamente, o grande interesse não é executar um problema no menor período de tempo (o que advoga Amdahl), mas resolver problema de grandes dimensões em um tempo razoável! A parte não paralelizável não deve ser fixa, mas um percentual de acordo com a dimensão do problema. Se essa parte paralelizável cresce pouco com o aumento da instância, é possível escalar o speedup com o aumento de processadores. 1a.20

Gustafson s law f = fraction computed sequentially 1 f = parallel fraction Gustafson s so-called scaled speedup fraction S (p) = p + (1 p) f 1a.21

Para pensar/pesquisar Dê exemplo e discuta as reais diferenças entre Amdahl s e Gustafson s Law O que cada uma quer realmente representar?

Terminologias Um algoritmo é escalável se o nível de paralelismo aumenta no mínimo linearmente com o tamanho do problema. Uma arquitetura é dita escalável se continua a alcançar o mesmo desempenho por processador, mesmo para problemas maiores, com o aumento de processadores. Se aplicável, o usuário pode resolver problemas maiores no mesmo intervalo de tempo através da compra de uma máquina paralela com maiores dimensões Algoritmos paralelos-de-dados são mais escaláveis do que algoritmos com paralelismo de controle o nível de paralelismo de controle é geralmente constante, independente do tamanho do problema, enquanto o nível do paralelismo de dados é uma função crescente do tamanho do problema

Convergência entre Computação Paralela & Distribuída Existia uma grande dificuldade de manter máquinas paralelas a frente aos projetos de chip-único Computadores paralelos se tornaram mais difíceis de se construir e se usar do que se esperava. Motivo desta dificuldade: software Paralelizar e gerenciar algoritmos paralelos não é uma tarefa fácil

Programação Paralela No início dos anos 90: processamento paralelo foi retomado. O problema de programação paralela seria bem mais difícil de atacar do que se imaginava. Pesquisa na área de programação em paralelo tem sido um tópico importante. Mas ao mesmo tempo...

Internet Enquanto muitos estudavam processamento paralelo associado processadores ligados internamente em uma máquina, um outro grupo se concentrava em paralelismo externo através de redes de computadores a internet possibilitou a especificação de um tipo de paralelismo através de uma conexões entre processadores

Sistema Paralelo e Distribuído processamento distribuído renasceu como uma forma de paralelismo mais lenta computação distribuída e paralela são dois extremos num espectro de computação concorrente Sistema paralelo e distribuído é uma coleção de componentes de hardware e software que otimizam o desempenho por problema, vazão de múltiplos problemas e confiabilidade, ou uma combinação destes

Sistema Paralelo e Distribuído Problemas: a aglomeração de muitos processadores através de canais de comunicação: o desempenho pode cair muito. Para alcançar o máximo dos sistemas paralelos e distribuídos: projetistas e desenvolvedores de software precisam compreender a interação entre hardware e software

Sistema Paralelo e Distribuído computação distribuída é mais abrangente e universal do que computação paralela Paralelismo - forma restrita de computação distribuída sistema paralelo : voltado à solução de um problema único no menor tempo possível (otimização) Computação distribuída é mais geral e reúne outras formas de otimização...

Paralelismo é interessante? Na natureza, os eventos ocorrem em paralelo programação seqüencial ordena eventos paralelos essa ordenação dificulta a trabalho do compilador mas, maior desempenho com o uso de paralelismo no entanto, não é trivial atingir alto desempenho em computadores paralelos aplicações como os Grandes Desafios são limitados computacionalmente

Investindo em paralelismo Dificuldades encontradas pensar em paralelo é difícil conhecimento em paralelismo é recente pouco conhecimento sobre representações abstratas de computações paralelas

Investindo em paralelismo Em relação a características da máquina Relação entre a velocidade do processador Elementos de processamento heterogêneos Desempenho da interconexão de comunicação Latência de comunicação Congestionamento Topologia da rede Hierarquia de memória Tendência hoje: memória compartilhada distribuída superprocessadores distribuídos

Quais características importantes das aplicações? Processos/tarefas existe comunicação entre essas tarefas pode ser vantajoso executar várias tarefas em um só processador a tarefa perde o processador quando precisa de um dado a ser comunicado paralelismo virtual X real Por exemplo: existem 100 processadores disponíveis cada processador pode estar executando vários processos: virtualmente existem um total de 300 processos

Quais características importantes das aplicações? difícil definir processos/tarefas totalmente independentes comunicação entre processos pode gerar um tráfego de mensagens pesado comunicação entre processos: troca de mensagens: considera a topologia da rede de interconexão memória compartilhada: utilização de semáforos para proteção de regiões críticas direct remote-memory access: existência de processadores dedicados à comunicação

Modelos de Computação Paralela interface - uma máquina abstrata a abstração se faz necessária para facilitar a programação sem se preocupar com detalhes da máquina um modelo deve ser estável para ser um padrão um modelo contém os aspectos importantes tanto para os projetistas de software quanto para os da máquina as decisões de implementações são feitas para cada máquina destino, não havendo necessidade de se refazer programas

Aspectos Explorados pelo Modelo Independência da arquitetura Fácil entendimento

Aspectos Explorados pelo Modelo Facilidade de programação O programador não deve se preocupar com detalhes da máquina destino modelos abstratos: programação mais fácil O compilador é que deve traduzir para uma estrutura do programa em execução considerando o sistema computacional destino tarefa do compilador: mais árdua nível de abstração nível de máquina

Exercício Capitulo I do Livro disponibilizado por Ian Foster um resumo Exercícios 1, 2 e 3