Your SlideShare is downloading. ×
0
Computação ParalelaProf. Adriano Teixeira de Souza
◦   Como ganhar desempenho em    programas?     3 opções                     Prof. Adriano Teixeira de Souza
1.   Melhorar o ambiente de execução        Ex: Comprar um processador melhor2.   Melhorar o algoritmo        Ex: substi...
   Programa executa em uma única CPU    ◦ Dividido em uma série de instruções    ◦ Executadas uma após a outra*    ◦ Apen...
   Utilização de múltiplos recursos computacionais    para resolver um determinado problema    ◦ Múltiplas CPUs    ◦ Prob...
   Tempo/Dinheiro   Limite da computação sequencial   Solução de grandes problemas   Alocação de recursos    ◦ Cluster...
   Paralelismo no nível de instruções    ◦ Pipeline, superescalar    ◦ Implícito para o programador   Várias linhas de e...
Prof. Adriano Teixeira de Souza
   Classificação de Flynn (1970)                SISD         SIMD                MISD        MIMD                        ...
   SISD (Single Instruction Single Data)    ◦ Computadores com um único processador    ◦ Instruções executadas em seqüênc...
   SIMD (Single Instruction Multiple Data)    ◦ Cada processador executa a mesma instrução      em sincronia, mas usando ...
MIMD (Multiple Instructions Multiple Data)  Classe dos computadores paralelos  Não determinismo:   Várias coisas ocorre...
IBM – RoadRunner                                                    Los Alamos National LaboratoryClusterPowerXCell 8i 3.2...
MPP                                            Cray – JaguarAMD x86_64 Opteron Quad Core 2300 MHz          Oak Ridge Natio...
Cluster Krusty – LCAD Unioeste18 nós – Pentium IV 3.2 HT GHz1 GB RAMRede Gigabit EthernetSO Linux Fedora                  ...
   Modelo de programação:    ◦ Múltiplas threads compartilhando dados   Aspecto crítico:    ◦ sincronização quando difer...
#include <omp.h>#include <stdio.h>                                          Exemplo OpenMP#include <stdlib.h>int main (int...
Sistemas Distribuídos - Computação Paralela
Upcoming SlideShare
Loading in...5
×

Sistemas Distribuídos - Computação Paralela

1,264

Published on

Published in: Technology
1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
1,264
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
89
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Sistemas Distribuídos - Computação Paralela"

  1. 1. Computação ParalelaProf. Adriano Teixeira de Souza
  2. 2. ◦ Como ganhar desempenho em programas?  3 opções Prof. Adriano Teixeira de Souza
  3. 3. 1. Melhorar o ambiente de execução  Ex: Comprar um processador melhor2. Melhorar o algoritmo  Ex: substituir um algoritmo de ordenação Bubble por Quicksort3. Paralelização  Não é a solução para todos os problemas do mundo  Alguns problemas não são paralelizáveis (ou muito difíceis de se ganhar desempenho) Prof. Adriano Teixeira de Souza
  4. 4.  Programa executa em uma única CPU ◦ Dividido em uma série de instruções ◦ Executadas uma após a outra* ◦ Apenas uma instrução é executada por vez* Prof. Adriano Teixeira de Souza
  5. 5.  Utilização de múltiplos recursos computacionais para resolver um determinado problema ◦ Múltiplas CPUs ◦ Problemas são divididos para serem executados simultaneamente Prof. Adriano Teixeira de Souza
  6. 6.  Tempo/Dinheiro Limite da computação sequencial Solução de grandes problemas Alocação de recursos ◦ Cluster ◦ Grids Arquiteturas estão mudando!!! Prof. Adriano Teixeira de Souza
  7. 7.  Paralelismo no nível de instruções ◦ Pipeline, superescalar ◦ Implícito para o programador Várias linhas de execução: threads Programador é ◦ Suporte do sistema operacional responsável pela Vários núcleos exploração do Vários processadores paralelismo 7 Prof. Adriano Teixeira de Souza
  8. 8. Prof. Adriano Teixeira de Souza
  9. 9.  Classificação de Flynn (1970) SISD SIMD MISD MIMD Prof. Adriano Teixeira de Souza
  10. 10.  SISD (Single Instruction Single Data) ◦ Computadores com um único processador ◦ Instruções executadas em seqüência ◦ Placas gráficas Prof. Adriano Teixeira de Souza
  11. 11.  SIMD (Single Instruction Multiple Data) ◦ Cada processador executa a mesma instrução em sincronia, mas usando dados diferentes Prof. Adriano Teixeira de Souza
  12. 12. MIMD (Multiple Instructions Multiple Data)  Classe dos computadores paralelos  Não determinismo: Várias coisas ocorrendo ao mesmo tempo  Memória Compartilhada Multicore SMP (Symmetric Multi-Processing)  Memória Distribuída Cluster MPP (Massively Parallel Processors)  Híbridos Prof. Adriano Teixeira de Souza
  13. 13. IBM – RoadRunner Los Alamos National LaboratoryClusterPowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz129.600 cores98TB de memóriaSO Linux (Fedora and Red Hat enterprise editions)Interconexão: Infiniband Prof. Adriano Teixeira de Souza
  14. 14. MPP Cray – JaguarAMD x86_64 Opteron Quad Core 2300 MHz Oak Ridge National Laboratory181.504 cores362TB de memóriaInterconexão: Cray SeaStar / InfinibandSO CNL (adaptação do Suse) Prof. Adriano Teixeira de Souza
  15. 15. Cluster Krusty – LCAD Unioeste18 nós – Pentium IV 3.2 HT GHz1 GB RAMRede Gigabit EthernetSO Linux Fedora Prof. Adriano Teixeira de Souza
  16. 16.  Modelo de programação: ◦ Múltiplas threads compartilhando dados Aspecto crítico: ◦ sincronização quando diferentes tarefas acessam os mesmos dados Ferramentas para programação: ◦ linguagens concorrentes (C#, Java ...) ◦ linguagens seqüenciais + extensões/biliotecas (OpenMP, Pthreads) Prof. Adriano Teixeira de Souza
  17. 17. #include <omp.h>#include <stdio.h> Exemplo OpenMP#include <stdlib.h>int main (int argc, char *argv[]){ int nthreads, tid; #pragma omp parallel private(nthreads, tid) { /* Obtain thread number */ tid = omp_get_thread_num(); printf("Hello World from thread = %dn", tid); /* Only master thread does this */ if (tid == 0) { nthreads = omp_get_num_threads(); printf("Number of threads = %dn", nthreads); }} /* All threads join master thread and disband */ Prof. Adriano Teixeira de Souza
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×