Escolar Documentos
Profissional Documentos
Cultura Documentos
Computação Paralela
Apresentação da Disciplina
Tércio de Morais1
1 Ciência da Computação
Objetivos
Agenda
1 Introdução
Definições
Motivação
2 Evolução dos Super-Computadores
Um Breve Histórico
3 Computadores Paralelos Modernos
Grids
Computação em Nuvem
4 Concorrência
Paralelismo
5 Programação de Computadores Paralelos
Questão
Mas se o computador já é multi-processador, o problema já não
está resolvido?
Computação Paralela
Definição
Modelo computacional onde vários cálculos são realizados
simultaneamente
Princı́pio dividir para conquistar
Uso de computadores paralelos para reduzir o tempo de
processamento de algoritmos/problemas complexos.
Engenharia, meteorologia, geologia etc
Motivação
Desafios
Uma simples questão:
Se um único processador consegue resolver um problema em N
segundos, podem N processadores resolver o mesmo problema em
1 segundo?
Figura:
Tércio deSequencial
Morais vs. paralelo
Computação Paralela
Computação Paralela
Evolução dos Super-Computadores
Super-Computadores
Uma definição?
São os computadores mais poderosos que podem ser
construı́dos.
Computador com altı́ssima velocidade de processamento e
grande capacidade de memória.
Quanto mais rápido, maior seu status de Super-computador.
Pioneiro: Seymour Cray na década de 60.
História
Beowulf (1994)
Cluster com 16 processadores DX4 conectados (10Mbit/s)
Commodities dos processadores
Tércio de Morais Computação Paralela
Computação Paralela
Computadores Paralelos Modernos
Infraestruturas Modernas
Grades Computacionais
Computação em Nuvens
Caracterı́sticas
Custo muito menor que Cluster;
Uso racional do recursos:
Computadores ociosos podem ser usados para outras tarefas;
Suporte à heterogeneidade;
Novos computadores podem ser adicionados à grade.
Camada de software para integrar aplicações e hardware:
Middleware
Tércio de Morais Computação Paralela
Computação Paralela
Computadores Paralelos Modernos
Computação em Nuvem
Caracterı́sticas
Redução de custo de infraestrutura: estilo Pay-as-you-go para
alocação de recursos
Ilusão de recursos infinitos
Recursos elásticos
O cliente pode alocar mais máquinas se a demanda aumentar;
Se não são mais necessários, o cliente pode desalocar o
recursos;
Só é cobrado durante o tempo de uso do recurso.
O usuário pode configurar seu recurso através de Máquinas
Virtuais. Por exemplo: escolher processador, tamanho de
memória e sistema operacional.
Prover recursos através de serviços em diferentes nı́veis de
abstração:
Infraestrutura – Infrastrucute as a Service(IaaS)
Plataforma – Platform as a Service(PaaS)
Aplicação – Software as a Service(SaaS)
======================================
Concorrência
Desafio
Além de usar múltiplos processadores em paralelo, programadores
e/ou compiladores devem ser capazes de identificar quais
operações podem ser executadas em paralelo
Tipos de Paralelismo
Paralelismo de dados
Mesma operação sobre dados diferentes
Os dados são divididos e submetidos ao mesmo algoritmo
Exemplo: soma de matrizes
Paralelismo Funcional
Diferentes operações sobre dados diferentes
Neste caso, as tarefas e dados são independentes
Exemplo: aplicação web
Pipeline
Conjunto de operação são executadas em etapas
Uma tarefa com 5 etapas pode paralelizar até 5 operações
Exemplo: worflow de processos
Tércio de Morais Computação Paralela
Computação Paralela
Programação de Computadores Paralelos
Estratégias
Estender um compilador
Estender uma linguagem de programação
Adicionar uma camada de programação paralela
Criar uma linguagem de programação paralela