• Nenhum resultado encontrado

Algoritmos Paralelos. Prof a : Cristina Boeres. Pós Graduação em Computação Instituto de Computação - UFF

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmos Paralelos. Prof a : Cristina Boeres. Pós Graduação em Computação Instituto de Computação - UFF"

Copied!
81
0
0

Texto

(1)

Algoritmos Paralelos

Prof

a

: Cristina Boeres

(2)

Bibliografia

 J. Jájá, Introduction to Parallel Algorithms, Addison-Wesley, 1992.

 Ian Foster , Designing and Building Parallel Programs, Addison-Wesley , 1995. (online)‏

 J. Dongarra et. al., Sourcebook of Parallel Computing, Morgan Kaufmann, 2003.

 T. G. Robertazzi, Networks and Grids - technology and theory, Springer, 2007.

 H. Casanova, A. Legrand and Y. Robert, Parallel Algorithms, CRC Press, 2008.

 S. Akl, Parallel Computation – Models and Methods , Prentice Hall

1997.

(3)

Programa do Curso

 Introdução e conceitos iniciais

 Motivação

 Introdução a tipos de arquiteturas paralelas

 Modelo de Programação Paralela

 Projeto de Algoritmos Paralelos

 Programação com Threads

(4)

Computação Sequencial ou serial

 Para solução de problemas, tradicionalmente resolvemos através de uma algoritmo sequencial

(5)

Computação Sequencial ou serial

 Jon Von Neumann especificou requisitos para computador eletrônico em 1945

 Instruções e dados devem ser armazenados na unidade de memória

 Unidades principais:

 CPU: unidade de controle e ALU

 MP

(6)

Computação Sequencial ou serial

 CPU: unidade de controle

 Busca a próxima instrução

 Decodifica

 Executa (pela ALU, simplificando)

 MP – memória de acesso aleatório guarda

código e dados

(7)

Por que computação paralela e distribuída?

 Sistemas de computadores sequenciais cada vez mais velozes

 velocidade de processador

 memória

 comunicação com o mundo externo

 Quanto mais se tem, mais se quer...

(8)

Por que computação paralela e distribuída?

 limites em processamento sequencial

 velocidade da luz, termodinâmica

(9)

Por que computação paralela e distribuída?

 Ao invés de um processador, vários processadores

(10)

Como são os ambientes atualmente?

 Um computador possui atualmente vários processadores

(11)

Por que tantos processadores

 O mundo real é massivamente paralelo

 Eventos acontecem ao mesmo momento e em sequência

(12)
(13)
(14)
(15)

Computação de Alto Desempenho

Os grandes desafios (Levin 1989):

 química quântica, mecânica estatística e física relativista;

 cosmologia e astrofísica;

 dinâmica e turbulência computacional dos fluídos;

 projeto de materiais e supercondutividade;

 biologia, farmacologia, seqüência de genomas, engenharia genética, dobramento de proteínas, atividade enzimática e modelagem de células;

 medicina, modelagem de órgãos e ossos humanos;

(16)

Demanda para velocidade computacional

 Existem várias áreas que demandam processamento

computacional mais veloz:

 modelagem numérica

 simulação de problemas científicos

 Computação deve ser finalizada em um tempo

(17)

“Grand‏Challenge”

 São problemas que não podem ser resolvidos em uma

quantidade de tempo razoável nos computadores atuais

 para resolver o problema computacionalmente, 10

anos seriam razoáveis?

 Modelagem de estruturas longas de DNA

 previsão de tempo global

 simulação e modelagem do movimento de corpos celestes (astronomia)

(18)

Movimento de Corpos Celestes

 Cada corpo é atra[ido pelo outro atrav[es de forças

gravitacionais

(19)

Movimento de Corpos Celestes

 Existindo N corpos

 N – 1 cálculo de força para cada corpo

 ou aproximadamente N2 cálculos, i.e. O(N2)

Depois deste cálculo, determinar as novas

posições dos corpos, repetindo esse

procedimento

N2 × T cálculos no total, sendo T o número de passos

*

Existe um algoritmo O(N log2 N)

(20)

Movimento de Corpos Celestes

 A galáxia deve ter em torno de 1011 estrelas

 Se cada cálculo da força leva em torno de 1 ms (sendo

extremamente otimista), então, são necessários:

(21)

Por que muitos processadores

 Para economizar tempo e dinheiro

 Teoricamente, mais recursos resolvem o problema

mais rapidamente – logo, economicamente mais barato

(22)

Disponibilidade de processadores

 Inicialmente: um processador + memória + dispositivos

 Um programa por vez

 Com desenvolvimento de Sistemas Operacionais

 Multiprogramação

 Necessidade de maior poder computacional

(23)

Disponibilidade de processadores

 Desenvolvimento de processadores

 Miniprocessadores e microprocessadores

 Nova realidade: estações de trabalho

 E depois, desktops

(24)

Evolução nas comunicações

TCP/IP HTML Mosaic XML

PHASE 1. Packet Switching Networks 2. The Internet is Born 3. The World Wide Web 4. with XML 5. The Grid

1969: 4 US Universities linked to form ARPANET TCP/IP becomes core protocol HTML hypertext system created

1972: First e-mail program created Domain Name System created

IETF created (1986)‏

CERN launch World Wide Web

1976: Robert Metcalfe develops Ethernet NCSA launch Mosaic interface

0 20 40 60 80 100 120 140 1965 1970 1975 1980 1985 1990 1995 2000 2005 2010 The‏'Network‏Effect’ kicks in, and the web

(25)

Arquitetura de Sistemas de Computadores

Uma classificação

 Memória Centralizada

 Memória Distribuída

Proposta por Flynn

 quantidade de instruções e dados processados em um

determinado momento

(26)

Classificação de Sistemas Paralelos

 SISD (single instruction single data)‏

 Um contador de programa

 Computadores seqüenciais

 SIMD (single instruction multiple data)‏

Um contador de programa, uma instrução executada por

diversos processadores sobre diferentes dados

(27)

Classificação de Sistemas Paralelos

 MISD (multiple instructions single data)‏

 Não aplicável

 MIMD (multiple instructions multiple data)‏

 Vários contadores de programa

 Diferentes dados

 Os vários computadores paralelos e distribuídos atuais

(28)

Plataforma de Execução Paralela

 SMPs (Symmetric MultiProcessors)‏

 MPPs (Massively Parallel Processors)‏

 Cluster ou NOWs (Network Of Worstations)‏

(29)

SMPs ou Multiprocessadores

 único espaço de endereçamento lógico

 mecanismo de hardware (memória compartilhada)‏

 comunicação espaço de endereçamento compartilhado

 operações de loads e stores

 Acesso a memória é realizada através de leitura

(load) e escrita (store), caracterizando desta forma, a comunicação entre processadores

(30)

SMPs ou Multiprocessadores

 Sistema homogêneo

 Compartilhamento total da mesma memória

 Uma única cópia do Sistema Operacional

 Imagem única do sistema

 Excelente conectividade: fortemente acoplados

(31)

SMPs ou Multiprocessadores

 Exemplos:

 Sun HPC 10000 (StarFire), SGI Altix, SGI Origin, IBM

pSeries

 atualmente:

 multiprocessadores multicores

 heterogeneidade

(32)

SMPs ou Multiprocessadores

 Exemplos:

 Sun HPC 10000 (StarFire), SGI Altix, SGI Origin, IBM

pSeries

 atualmente:

 multiprocessadores multicores

(33)

SMPs ou Multiprocessadores

(34)

MPPs ou Multicomputadores

 Diferem quanto a implementação física

 Módulos ou elementos de processamento contendo:

 múltiplos processadores com memória privativa

 computadores completos

 Espaço de endereçamento

(35)

MPPs ou Multicomputadores

 Comunicação

 troca de mensagens

 Rede de interconexão:diferentes topologias

 Fracamente acoplados

 Escaláveis

(36)

MPPs ou Multicomputadores

 Sistema homogêneo ( ou heterogêneo )‏

 Interconexão: redes dedicadas e rápidas

 Cada nó executa sua própria cópia do Sistema

Operacional

 Imagem única do sistema

 visibilidade dos mesmos sistemas de arquivo

(37)

MPPs ou Multicomputadores

 Partições dedicadas a cada aplicação

 Aplicações não compartilham recursos

 Pode ocorrer que uma aplicação permaneça em estado

de espera

 Exemplos:

Cray T3E, IBM SP2s, clusters montados pelo próprio

usuário, com propósito de ser um MPP

(38)

MPPs ou Multicomputadores

(39)

Cluster de computadores ou NOWs

 Conjunto de estações de trabalho ou PCs

 Interconexão: redes locais

 Nós: elementos de processamento = processador +

memória

 Diferenças em relação a MPPs:

 não existe um escalonador centralizado

 redes de interconexão tendem a ser mais lentas

(40)

Cluster de computadores ou NOWs

 Resultado das diferenças:

 Cada nó tem seu próprio escalonador local

 Compartilhamento de recursos

 sem partição dedicada a uma aplicação

 Aplicação

(41)
(42)

Cluster de computadores

 Possibilidade de compor um sistema de alto desempenho

e um baixo custo (principalmente quando comparados com MPPs).

 Rede de computadores ser tornaram mais atraentes do

que adquirir um supercomputador (custo bem maior)

 Possível atingir alto desempenho a um custo bem

menor (década 1990)

 processador de última geração pode ser incluído no

(43)

Cluster de Computadores

 E mais importante: portabilidade de software

 Softwares existentes podem ser utilizados ou

facilmente adaptados

 Projetos bastante conhecidos nesta época:

 Berkeley NOW (network of workstations)

(44)

Beowulf Clusters*

 Grupo de computadores do tipo commodity que

atingem alto desempenho a baixo custo

 Geralmente interconectados por uma rede de alta

(45)

Máquinas atuais

(46)

Vários níveis de chache: Level 1 (L1) cache Level 2 (L2) cache Processor L2 Cache Bus interface L1 cache Processor L2 Cache Bus interface L1 cache Processor L2 Cache Bus interface L1 cache Processor L2 Cache Bus interface L1 cache Memory controller Processor/ memory bus

(47)

Máquinas atuais (quadcore shared memory)

(48)

Máquinas atuais (desde 2005)

 Dual ou até multi-cores

 Dois ou mais elementos de processamento em

independentes em um pacote

 Na verdade, uma ideia antiga que não havia sido colocada em

pratica até recentemente. Os limitantes até então eram baseados em limites tecnológicos:

 Dissipação de energia (sempre um problema) e limitação

da frequência de relógio

(49)

GPU clusters

 Última tendência dos clusters de computadores: incorporar

GPUs para atingir alta performance

 Pelo menor três dos cinco computadores mais rápidos do

mundo possuem GPUs.

(50)

Top500 description

 Na lista TOP500 ordenação e de acordo com:

1) Rmax 2) Rpeak

3) tamanho de memória 4) alfabética

 Campos da lista:

 Rank- Position within the TOP500 ranking

 Location - Location and country

 System – name, configuration and manufacturer  #Proc. - Number of processors (Cores)

 Rmax - Maximal LINPACK performance achieved

(51)

Grades Computacionais

 Utilização de computadores

 independentes

(52)

Grades Computacionais

 Diferenças: clusters X grades

 heterogeneidade de recursos

 alta dispersão geográfica (escala mundial)‏  compartilhamento

(53)

Grades Computacionais

 Componentes

PCs, SMPs, MPPs, clusters

 controlados por diferentes entidades  diversos

domínios administrativos

 Não têm uma imagem única do sistema a princípio

 Vários projetos tem proposto o desenvolvimento de

middlewares de gerenciamento

 camada entre a infraestrutura e as aplicações a

(54)

Grades Computacionais

 Para executar uma aplicação eficientemente, middlewares

deve estar preparados para:

 Dinamismo do sistema

 Variedade de plataformas

(55)

Grades Computacionais

 Sistema não dedicado e diferentes plataformas

 Usuários da grades devem obter autorização e

certificação para acesso aos recursos disponíveis na grade computacional

 Falhas nos recursos tanto de processamento como

comunicação são mais frequentes que as outras plataformas paralelas

 Mecanismos de tolerância a falhas devem tornar essas

(56)

Grades Computacionais

 Para utilização eficiente da grade computacional

 Gerenciamento da execução da aplicação através de

políticas de escalonamento da aplicação ou balanceamento de carga

 Escalonamento durante a execução da aplicação se faz

(57)
(58)

Grades Computacionais

 Computação em Cluster foi estendido para computação ao

longo dos sites distribuídos geograficamente conectados por redes metropolitanas

 Ambientes tipicamente heterogêneos e compartilhados

 Ainda, aspectos que devem ser tratados

 Segurança

(59)

Grades Computacionais

O sonho do cientista (The Grid Vision)‏

 Computação em Grid adota tanto o nome quanto o

conceito semelhantes aqueles da Rede de Potência Elétrica para capturar a noção ou a visão de:

 Oferecer desempenho computacional eficientemente;

 De acordo com a demanda;

 A um custo razoável;

(60)
(61)
(62)

SETI@home: Search for Extraterrestrial

Intelligence at Home

 “ETI@home is a scientific experiment that uses

(63)

SETI@home: Search for Extraterrestrial

Intelligence at Home

A abordagem:

 radio telescopes para ouvir sinais do espaço

 tais sinais podem ser ruídos de origem celeste ou

provenientes da terra (estações de TV, radares e satélites)

(64)

SETI@home: Search for Extraterrestrial

Intelligence at Home

A abordagem:

 Maior poder computacional possibilita cobrir uma procura

maior de ruídos

 Primeiramente – supercomputadores especiais foram

utilizados

 Em 1995 (iniciado na verdade em 1999), David Gedye

(65)

SETI@home: Search for Extraterrestrial

Intelligence at Home

(66)

Grades Computacionais

Grid middlewares: tem como objetivo facilitar a utilização de um ambiente grid

 APIs para isolar usuários ou programas da complexidade deste ambiente

 Gerenciar esses sistemas automaticamente e eficientemente para executar aplicações no ambiente grid (grid-enabled

applications)‏

(67)

Grades Computacionais

Como o usuário (dono da aplicação) escolhe?

 Vários middlewares existem, qual o mais apropriado?

 Não há a garantia de suporte

 Pouca comparação entre os middlewares

 por exemplo, qual desempenho, grau de intrusão?

 É difícil encontrar grids com o mesmo tipo de software

(68)

Cloud Computing

Computação em Nuvens

 Computação provida como um serviço sobre a internet

 Infra-estrutura geograficamente distribuída

 Com algumas características de autonomic computing

 Que características são essas?

(69)

Cloud Computing

Computação em Nuvens

 Exemplos

Googleaps, facebook, amazon

 Exemplo de aplicação – gerenciamento de documentos

(70)

Cloud Computing

Computação em Nuvens

 Modelo econômico de utilização dos serviços

 Ambiente que prove uma quantidade maior de serviços a

baixo custo

 Baixo consumo de energia

(71)

Diferenças entre Grid e Cloud Computing

AlHakami, H. et al, Comparison Between Cloud and Grid Computing: Review Paper, in International Journal on Cloud Computing: Services and Architecture (IJCCSA),Vol.2, No.4, August 2012

 Recursos

os recursos na grade estão disponíveis e compartilhados  na nuvem, os recursos são providos de acordo com a

(72)

Diferenças entre Grid e Cloud Computing

AlHakami, H. et al, Comparison Between Cloud and Grid Computing: Review Paper, in International Journal on Cloud Computing: Services and Architecture (IJCCSA),Vol.2, No.4, August 2012

 Heterogeneidade de recursos

(73)

Diferenças entre Grid e Cloud Computing

AlHakami, H. et al, Comparison Between Cloud and Grid Computing: Review Paper, in International Journal on Cloud Computing: Services and Architecture (IJCCSA),Vol.2, No.4, August 2012

 Segurança

segurança do usuário não foi atacado em grades (mais

segurança de acesso)

(74)

Diferenças entre Grid e Cloud Computing

AlHakami, H. et al, Comparison Between Cloud and Grid Computing: Review Paper, in International Journal on Cloud Computing: Services and Architecture (IJCCSA),Vol.2, No.4, August 2012

 Gerenciamento

(75)

Features Grid Cloud

Resource Sharing Collaboration (VOs, fair share) not shared.

Virtualization Virtualization of data and computing resources

Virtualization of hardware and software platforms.

Security Security through credential delegations

Security through isolation.

High Level Services Plenty of high level services. No high level services defined yet.

Architecture Service orientated User chosen architecture.

Software Dependencies Application domain dependent software

Application domain independent software

Platform Awareness The client software must be Grid-enabled

The software works on a customized environment

Scalability Nodes and sites scalability Nodes, sites, and hardware scalability

Standardization Standardization and interoperability Lack of standards for Clouds interoperability.

User Access Access transparency for the end user.

Access transparency for the end user.

(76)

Definindo melhor alguns conceitos

Concorrência

 termo mais geral, um programa pode ser constituído por mais de um thread/processo concorrendo por recursos

Paralelismo

 uma aplicação é executada por um conjunto de processadores em um ambiente único (dedicado)‏

Computação distribuída

(77)

Definindo melhor alguns conceitos

Qualquer que seja o conceito, o que queremos?

 estabelecer a solução do problema

 lidar com recursos independentes

 aumentar desempenho e capacidade de memória

(78)

O que paralelizar?

 Pode estar em diferentes níveis de sistemas computacionais atuais

 Hardware

 Sistema Operacional

 Aplicação

 As principais questões que são focadas são

 Desempenho

 Corretude

(79)

Por que paralelizar?

Aplicação Paralela

 várias tarefas

 vários processadores

(80)

Modelos de Programação Paralela

 Criação e gerenciamento de processos

 estático ou dinâmico

 Comunicação

 memória compartilhada: visão de um único espaço de endereçamento

global

(81)

Modelos de Programação Paralela

 Expressão de Paralelismo: Paradigmas

 SPMD ( Single Program Multiple Data )‏

 MPMD (Multiple Program Multiple Data )‏

 Metas

 aumento no desempenho

Referências

Documentos relacionados

Overall, this set of empirical results support the existence of a subsample of countries (Germany, France, United States of America and Canada) where it is found statistically

Systematic review of accuracy of fetal urine analysis to predict poor postnatal renal function in cases of congenital urinary tract obstruction. Outcome and etiologies of

larvae EM MEL DE APIÁRIOS DO ESTADO DO PIAUÍ Todas as 61 amostras de mel, coletadas no Estado do Piauí, apresentaram resultados negativos quanto à presença de esporos de

O tempo de duração da digestão no nosso organismo depende do tipo e da consistência do alimento, mas em média, o tempo de permanência do alimento em cada trecho do tudo

Eucalyptus regnans (F. MUELL.) Eucalyptus resinífera (SM) Eucalyptus robusta (SM) Eucalyptus rudis (ENDL.) Eucalyptus saligna (SM) Eucalyptus seeana (MAIDEN)

I find that caps on individual contributions are associated with the convergence of platforms, whereas other commonly found measures, such as direct public funding, public disclosure

O cinema mantém até hoje uma estreita relação com o meio teatral. Os dois requisitos básicos para o bom critério destas artes cênicas são: o artifício de