1 / 65

Introdução à Computação Paralela e Ambientes de Grade

Introdução à Computação Paralela e Ambientes de Grade. Inês de Castro Dutra. Departamento de Ciência de Computadores Universidade do Porto ines@dcc.fc.up.pt. Grades Computacionais. Idéia é utilizar computadores independentes geograficamente distantes Diferenças: clusters x grids

justis
Download Presentation

Introdução à Computação Paralela e Ambientes de Grade

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução à Computação Paralela e Ambientes de Grade Inês de Castro Dutra Departamento de Ciência de Computadores Universidade do Porto ines@dcc.fc.up.pt

  2. Grades Computacionais • Idéia é utilizar computadores • independentes • geograficamente distantes • Diferenças: clusters x grids • heterogeneidade (nós muito diferentes) • alta dispersão geográfica (escala mundial) • compartilhamento (inexistente) • múltiplos domínios administrativos • controle totalmente distribuído

  3. Grades Computacionais • Componentes • PCs, SMPs, MPPs, clusters • controlados por diferentes entidades  diversos domínios administrativos • Não têm uma imagem única do sistema • Sistema não dedicado • Aplicação deve estar preparada para: • dinamismo • variedade de plataformas

  4. GradesComputacionais • Escalonamento de aplicação • recursos controlados por vários escalonadores distintos que devem decidir: • quais recursos serão utilizados pela aplicação • quais tarefas cada um destes recursos realizará • submeter solicitações aos escalonadores apropriados tarefa do escalonador de aplicações • Grids: duas camadas de escalonamento

  5. Escalonador de Aplicação Escalonador de Aplicação Escalonador de Recursos Escalonador de Recursos Escalonador de Recursos Grades Computacionais usuário usuário usuário SMP Cluster SMP MPP

  6. Grades Computacionais Computador convencional Workstation MPP Cluster Workstation Internet SMP Servidor Cluster SMP MPP Servidor

  7. Grades Computacionais • Middleware: Globus, Condor, OurGrid, gLite • usuário pode obter poder computacional de forma transparente • sob demanda • Soluções: • evitam problemas no nível do usuário • introduzem novas abstrações que facilitam o uso da grade

  8. Top500 Supercomputer Rmax Maximal LINPACK performance achieved Rpeak Theoretical peak performance GFlopss

  9. Resumindo... • Plataformas de Execução Paralela

  10. Programação Paralela

  11. Programação Paralela • Paralelismo explícito • Linguagens (SR) • Bibliotecas (OpenMP, MPI) • Suporte de Sistema (lib do SO) • Paralelismo implícito • Compiladores paralelizadores (F90, HPF) • Linguagens declarativas (Prolog) • Sistemas híbridos (Concurrent Logic)

  12. Modelos de Programação Paralela • Modelos • Memória Compartilhada • Passagem de Mensagem • Paradigmas • SPMD (Single Program Multiple Data) • MPDM (Multiple Program Multiple Data)

  13. Ambientes de Programação Paralela • Clusters • Memória Compartilhada • Software DSM (Click, HLRC, TreadMarks) • Passagem de Mensagens • PVM • MPI • OpenMP

  14. Ambiente: PVM • Modelo de programação • passagem de mensagem • software: • biblioteca no nível do usuário (C/Fortran) • protocolo TCP ou UDP • Modelos de paralelismo: SPMD ou MPDM

  15. Ambiente: PVM • Primitivas para: • criação e gerenciamento de processos • troca explícita de mensagens • primitivas de PVM possuem o prefixo PVM_ • Sistemas computacionais: • homogêneos ou heterogêneos

  16. Ambiente: MPI • Padronização a partir do PVM • Modelo de programação: • passagem de mensagem • software: • biblioteca no nível do usuário (C/Fortran) • protocolo TCP ou UDP • Modelos de paralelismo: SPMD ou MPDM

  17. Ambiente: MPI • Primitivas para: • criação e gerenciamento de processos • troca explícita de mensagens • primitivas de MPI possuem o prefixo MPI_ • Sistemas computacionais: • homogêneos ou heterogêneos • Corrige algumas deficiências técnicas do PVM

  18. Ambiente: OpenMP • Busca por uma padronização de facto • Organização independente envolvendo • fabricantes de computadores (SGI, Compaq, Hewllet-Packard, Intel, IBM, Kuck & Associates, Sun , U.S. Department of Energy ASCI Program) • desenvolvedores de aplicações e vendedores

  19. Ambiente: OpenMP • Modelo de programação: • semelhante ao modelo seqüencial • desenvolvido para dar suporte ao passo final da implementação de um algoritmo paralelo • linguagens: C, C++ e Fortran • expressão do paralelismo • diretivas incluídas no código fonte (comentários em Fortran e #pragmas em C ou C ++) • em conjunto com rotinas de bibliotecas

  20. Programação Paralela • Grades Computacionais • Globus Toolkit • Condor • OurGrid • gLite

  21. Globus Toolkit Globus Toolkit v4 www.globus.org Data Replication CredentialMgmt Replica Location Grid Telecontrol Protocol Delegation Data Access & Integration Community Scheduling Framework WebMDS Python Runtime Reliable File Transfer CommunityAuthorization Workspace Management Trigger C Runtime Authentication Authorization GridFTP Grid Resource Allocation & Management Index Java Runtime Security Data Mgmt Execution Mgmt Info Services CommonRuntime

  22. Sistema Condor Resource Sistema Condor www.wisc.edu/condor Access Control Resource Owner Match-Making SystemAdministrator Condor Request Agent Customer/User Application RM Distributed Scalable Adaptable Customizable Application

  23. Cluster Node Cluster Node Desktop Desktop Central Manager (Frieda’s) = Process Spawned negotiator collector schedd schedd schedd master master master master master startd startd startd startd startd Sistema Condor = ClassAd Communication Pathway Sistema Condor www.wisc.edu/condor

  24. Sistema Condor-G • Globus • middleware deployed across entire Grid • remote access to computational resources • dependable, robust data transfer • Condor • job scheduling across multiple resources • strong fault tolerance with checkpointing and migration • layered over Globus as “personal batch system” for the Grid www.wisc.edu/condor

  25. Sistema Condor-G www.wisc.edu/condor

  26. Sistema OurGrid • Aplicações Bag-of-Tasks (BoT) • Compartilhamento de recursos peer-to-peer • Principais componentes • OurGrid peer: • Network of Favors • mecanismo de alocação autônomo e totalmente descentralizado • MyGrid broker:escalonamento • SWAN security service:máquina virtual de proteção www.ourgrid.org

  27. Sistema OurGrid Ourgrid www.ourgrid.org

  28. gLite • Utiliza funções do Globus • Estrutura: BDII, UI, RB, WN, CE, SE, IE • Aplicações definidas utilizando JDL • Middleware adotado pelo projeto de grid europeu (EGEE) • Outros componentes: • AMGA • LFC • API semelhante a de outros RMSs www.ourgrid.org

  29. Desenvolvimento de Programas Paralelos

  30. Metodologia para Programação Paralela • Metodologia é (quase) independente da máquina • Estágios: • particionamento • comunicação • aglomeração • mapeamento

  31. Particionamento • Divisão da aplicação em tarefas em menores • Decomposição do domínio da aplicação • Objetivos aumentar: • concorrência • localidade de referência

  32. Comunicação • Troca de informações entre processos • Sincronização entre processos • Definir: • estruturas de dados e • algoritmos apropriados

  33. Aglomeração • Avaliação de requisitos de desempenho e custo • Objetivos se necessário: • combinar tarefas para reduzir custos de comunicação • tarefas maiores podem melhorar o desempenho, mesmo que diminua a concorrência

  34. Mapeamento • Cada tarefa é atribuída a um processador • Estático ou dinâmico • Objetivos: • maximizar a utilização dos processadores • minimizar os custos de comunicação • balanceamento de carga

  35. Metodologia para Programação Paralela Particionamento Problema Comunicação Aglomeração Mapeamento

  36. Métricas de Desempenho

  37. Métricas de Desempenho Speedup = grau de melhora de desempenho Eficiência = porção utilizada da capacidade Redundância = aumento da carga qdo em p processadores Utilização = utilização dos recursos durante computação Qualidade = importância de utilizar processamento paralelo

  38. Métricas de Desempenho Speedups(p) = T(1) / T(p), onde T(1) = tempo do melhor algoritmo sequencial possível e p = número de processadores Eficiênciae(p) = s / p = T(1) / (p T(p)) Redundânciar(p) = O(p) / O(1), onde O(p) = número total de ops em máquina com p processadores Utilizaçãou(p) = r(p) e(p) = O(p) / (p T(p)) Qualidadeq(p) = (s(p) e(p)) / r(n) = T3(1) / (p T2(p) O(p))

  39. Escalabilidade • Modelos de aplicações • Limites algorítmicos • Limites arquiteturais Métricas de Desempenho

  40. Modelos de Aplicações • Carga fixa = máquinas maiores para • computar + rápido • Tempo fixo = máquinas maiores para • problemas maiores • Memória fixa = máquinas maiores para • problemas que precisam de + memória

  41. Limites Algorítmicos • Falta de paralelismo • Freqüência de sincronização • Padrão de comunicação/acesso • Escalonamento deficiente

  42. Limites Arquiteturais • Latência/banda de comunicação • Latência/banda de E/S • Overhead de sincronização • Overhead de coerência • Capacidade de memória

  43. Métricas de Desempenho • Lei de Amdahl: • Speedup: s = T(1)/T(p) • Trabalho total: c = Ts + Tp = T(1) • T(p) = Ts + Tp/p • s = (Ts + Tp) / (Ts + Tp/p) = c / (Ts + Tp/p) • s = c/Ts qdo p tende a infinito

  44. Métricas de Desempenho • Lei de Gustafson: • Tempo total: c = Ts + Tp • Trabalho total: t = Ts + Tp • Scaled Speedup ss = t / c • ss = (Ts + p * Tp) / (Ts + Tp) • = (Ts + p * Tp) / c = (Ts + p * (c - Ts)) / c • = p + (Ts * (1-p)) / c, linear em Ts

  45. Métricas de Desempenho • Speedup superlinear: • Overhead reduzido (escalonamento, por exemplo) • Mais memória/cache • Tolerância a latência • Randomização (problemas de otimização) • Problemas que possuem múltiplas soluções

  46. Exemplos

  47. Modelo de Programação Seqüencial Modelo mais simples Paralelismo implementado pelo compilador ou software + básico for i = 1 to N a[i] = 1 Paralelismo explorado pelo compilador (p.e.: F90, HPF ou runtime paralelo)

  48. Modelo de Programação Paralelo baseado em Memória Compartilhada doall i = 1 to N a[i] = 1 for j = 1 to NPROCS-1 fork(compute,j) compute(0) lock(mutex) x = x + 1 unlock(mutex)

  49. Modelo de Programação Paralelo baseado em Troca de Mensagens Proc pid: (N é o tamanho do problema) chunk = N/NPROCS for j = pid*chunk to (pid+1)*chunk-1 a[i] = 1 send(dest,&a[pid*chunk],chunk*sizeof(int))

  50. Programando em MC

More Related