Computação Paralela Walfredo Cirne Univ. Federal de Campina Grande http://walfredo.dsc.ufcg.edu.br Lei de Moore • Computadores dobram de performance a cada 18 meses • Nas últimas 2 decadas, computadores melhoraram de performance em 10.000 vezes • Como resultado, os computadores hoje têm mais ou menos o mesmo desempenho (na mesma ordem de magnitude) Paralelismo • Em suma, computadores hoje são muuuito rápidos • Mas fazemos coisas cada vez mais complexas • Mas temos cada vez mais dados para processar • O que fazer se você precisa processar por anos? • Usar vários processadores simultaneamente Lei de Amdalh • speed-up = tempo seqüencial / tempo paralelo • tempo seqüencial = intrinsecamente-seqüencial + paralelizável • melhor tempo paralelo = intrinsecamente-seqüencial • melhor speed-up = 1 + paralelizável/intrinsecamente-seqüencial Principais Aspectos de Computação Paralela • Plataforma de Execução • Modelos de Programação • Aplicações Plataformas de Execução de Aplicações Paralelas • • • • SMPs MPPs NOWs Grids acoplamento distribuição SMP CPU Memória CPU ... CPU MPP Escalonado r CPU CPU CPU ... Mem. Mem. Mem. requisições NOW requisições CPU requisições requisições CPU CPU ... Mem. Mem. Mem. Grid CPU CPU CPU ... Mem. Mem. Mem. Internet Características das Plataformas de Execução SMPs MPPs NOWs Grids excelente muito boa boa média/ruim Heterogeneidade nula baixa média alta Compartilhado não não sim sim única comum comum múltipla 10 1.000 1.000 100.000 Conectividade Imagem Escala Grids podem diferir bastante • TeraGrid – 4 centros de supercomputação norte-americanos – Cada centro com milhares de processadores dedicados ao TeraGrid – Canais de altíssima velocidade (40 GBits/s) – Poder agregado de 13,6 TeraFlops • SETI@home – Ciclos ociosos de 1.6 milhões de processadores espalhados em 224 países – Computa em média a uma velocidade de 10 Teraflops Grid como Fonte de Computação Grid Computacional (fonte de recursos computacional) [a metáfora da rede elétrica] Um Grid do Futuro VR Simul MegaCiclos Databank Inc. Embratel Mastercard Grid Auditing Modelos de Programação • Troca de mensagens – MPI, PVM – sockets • Memória compartilhada – OpenMP – pthreads, threads Java Aplicações • SPMD x MPMD – SPSD = sequêncial • Classes de aplicação – Bag-of-Tasks – Master-slave (ou manager-work :-) – Data parallel • Granularidade – Grão = computação feita entre comunicações – Grão fino requer SMP (ou, pelo menos, MPP) – Grão grosso tolera Grid