Você está na página 1de 17

Computação Paralela

Computação Paralela
Apresentação da Disciplina

Tércio de Morais1
1 Ciência da Computação

Universidade Federal de Alagoas - Campus Arapiraca

Arapiraca, 8 de julho de 2016

Tércio de Morais Computação Paralela


Computação Paralela

Objetivos

Apresentar uma visão geral sobre o assunto


Mostrar as diferentes facetas da Computação Paralela

Tércio de Morais Computação Paralela


Computação Paralela

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

Tércio de Morais Computação Paralela


Computação Paralela
Introdução

Onde tem paralelismo?

Podemos encontrar paralelismo em diferentes nı́veis de abstração


de um sistema computacional
Computador Paralelo – hardware
Sistema de Multi-processadores para suporte à programação
paralela.
Multi-computador
Multi-processadores centralizados

Tércio de Morais Computação Paralela


Computação Paralela
Introdução

Onde tem paralelismo?

Programação Paralela – software


Linguagens de programação que permitem que algoritmos sejam
desenvolvidos para executar instruções em paralelo.

Questão
Mas se o computador já é multi-processador, o problema já não
está resolvido?

Tércio de Morais Computação Paralela


Computação Paralela
Introdução
Definições

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

Tércio de Morais Computação Paralela


Computação Paralela
Introdução
Motivação

Motivação

Por que computar em paralelo?


Reduzir o tempo para resolver problemas
Resolver problemas complexos e de maior dimensão
Tirar proveito de recursos computacionais disponı́veis
Superar limitações do modelo monoprocessador
É um dos grandes desafios da década (textitGrand Challenge
Problems)

Tércio de Morais Computação Paralela


Computação Paralela
Introdução
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.

Tércio de Morais Computação Paralela


Computação Paralela
Evolução dos Super-Computadores
Um Breve Histórico

História

Cray-1 (1976) Pipeline Vector Processor


Single CPU
100 milhões de operações em ponto flutuante por segundo
ENIAC fazia 350 operações 30 anos antes

Very Large Scale Integration (VLSI)


Década de 80
Cosmic Cube
ENIAC fazia 350 operações 30 anos antes

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

Computadores Paralelos Modernos

Depois dos Clusters


Computação paralela cresceu em termos de tecnologia de hardware
e de software.
Ao mesmo tempo que reduziu a complexidade e os custos.

Infraestruturas Modernas
Grades Computacionais
Computação em Nuvens

Tércio de Morais Computação Paralela


Computação Paralela
Computadores Paralelos Modernos
Grids

Grades Computacionais – 1997


Definição
É um modelo computacional capaz de alcançar uma alta taxa de
processamento através de uma coleção de recursos computacionais
distribuı́dos em rede local ou rede de longa distância, formando
uma máquina virtual.

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

Computação em Nuvem – 2006


Definição
Computação em Nuvem é um paradigma onde recursos
computacionais são compartilhados entre os usuários na forma de
serviço

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)

Tércio de Morais Computação Paralela


Computação Paralela
Concorrência

======================================

Tércio de Morais Computação Paralela


Computação Paralela
Concorrência

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

O caso da conta corrente


Imagine que você tem R$100, 00 em sua conta. Então você
deposita mais R$100, 00 ao mesmo tempo que um débito
automático no valor de R$110, 00 é cobrado em São Paulo e outro
de valor R$100, 00 é cobrado no Rio. A pergunta é: Qual o saldo
ao final das operações?

Tércio de Morais Computação Paralela


Computação Paralela
Concorrência
Paralelismo

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

Programação de Computadores Paralelos

Até agora falamos de concorrência em nı́vel de hardware.


Mas como realizamos o paralelismo?

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

Tércio de Morais Computação Paralela

Você também pode gostar