



Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Os modelos de computação paralela pram, bsp e cgm, seus respectivos modelos de memória e características. O pram é um modelo síncrono de computação paralela, enquanto o bsp e o cgm são modelos realistas que consideram custos de comunicação e latência. Os modelos são descritos em detalhes, incluindo suas variações e parâmetros.
Tipologia: Teses (TCC)
1 / 5
Esta página não é visível na pré-visualização
Não perca as partes importantes!




UFMS – Universidade Federal de Mato Grosso do Sul CCET – Centro de Ciências Exatas e Tecnologia DCT – Departamento de Computação e Estatística Cx. Postal – 579 – CEP – 79070-900 – Campo Grande (MS) {amaury,cnasu,edson,mongelli}@dct.ufms.br
Resumo: A maioria das aplicações desenvolvidas para máquinas paralelas consideram apenas o pro- blema da paralelização com baixos requerimentos de comunicação. Entretanto, em máquinas reais, o tempo de comunicação é, em geral muito maior que o tempo de computação. Conseqüentemente, muitos algoritmos paralelos teoricamente eficientes, para o modelo PRAM, não produzem o desempe- nho esperado quando implementados em máquinas paralelas reais. Este trabalho apresenta os modelos de computação paralela, ditos realísticos, que buscam uma maior proximidade entre o desempenho teó- rico e prático dos algoritmos desenvolvidos. Esses modelos incorporam algumas características intrín- secas à computação paralela e assim, refletem a realidade com mais exatidão. Palavras-chave: paralelismo, modelos de computação paralela, algoritmos paralelos, algoritmos dis- tribuídos, computação paralela.
(^1) Professor do Curso de Engenharia da Computação da UCDB – Universidade Católica Dom Bosco em Campo
Grande/MS.
1. Introdução
A computação paralela tem como objetivo usar si- multaneamente um conjunto de processadores interli- gados, de modo a resolver um problema conjunta- mente mais rápido que o processamento seqüencial usando somente um processador [9].
Um computador paralelo é simplesmente uma coleção de processadores, tipicamente do mesmo tipo, interconectados de maneira a permitir a coordenação de suas atividades e a troca de dados [6]. O uso de computadores paralelos se faz necessário em diversos problemas onde o volume de dados e cálculos é gran- de e precisa-se de rapidez na obtenção das respostas.
Com a computação paralela a criação de algorit- mos modifica-se sensivelmente. As estratégias utili- zadas em algoritmos seqüenciais para resolver um problema não servem totalmente para a criação de algoritmos paralelos para o mesmo problema [7].
Além disso, é preciso considerar a natureza dos pro- blemas, alguns são inerentemente paralelizáveis; outros não apresentam um paralelismo tão transparente; e existem aqueles em que o grau de paralelismo é muito baixo ou inexistente. No desenvolvimento dos algoritmos temos que considerar também a arquitetura paralela a ser utilizada, pois isto afeta o desempenho dos algoritmos. O modelo PRAM, que poderia ser um padrão único para a computação paralela, não consegue capturar com exatidão a noção de paralelismo por ser completamente teórico. As características não incorporadas ao modelo, tais como, custo adicional para referência a memória não-local e latência, têm grande impacto no desempenho dos algo- ritmos. Os modelos de rede, por sua vez, são felizes na solução da inviabilidade de acesso em tempo constante a uma me- mória global. Mas os algoritmos, por outro lado, tendem a ser específicos para uma determinada topologia. E ainda, a suposição de que a comunicação entre vizinhos é feita em
tempo constante não reflete a realidade dos computa- dores paralelos.
A busca de um modelo adequado necessita da compreensão e da incorporação, em tal modelo, de características intrínsecas à computação paralela, bem como ignorar aquelas características secundárias superáveis através da tecnologia. Os modelos apre- sentados a seguir, denominados realísticos , buscam estabelecer padrões amplamente aceitos que reflitam as dificuldades inerentes do próprio paralelismo.
2. Modelos de Computação Paralela
No modelo de computação seqüencial de Von Neu- mann (RAM), que assume a existência de uma única unidade central de processamento e uma memória de acesso aleatório, é possível estabelecer uma relação entre os desempenhos das implementações e dos seus respectivos algoritmos através das medidas de com- plexidade de tempo baseadas em análises assintóticas. Neste modelo, estas medidas são capazes de refletir corretamente o desempenho dos algoritmos seqüenci- ais, servindo como referência para as implementa- ções. No entanto, na computação paralela, a mesma relação entre algoritmos e implementações ainda não encontrou um modelo apropriado. A presença de diversos elementos de processamento torna a defini- ção de um modelo de computação paralela considera- velmente mais complexa. Nesta seção, apresentare- mos os modelos paralelos mais conhecidos e utiliza- dos para o desenvolvimento e a análise de algoritmos paralelos, começando pelo modelo PRAM.
2.1 Modelo PRAM
O modelo PRAM [6] ( Parallel Random Access Ma- chine ) é uma extensão do modelo seqüencial RAM e o mais conhecido modelo de computação paralela. Pode ser descrito como sendo um conjunto de proces- sadores operando de modo síncrono, sob o controle de um relógio comum. Cada processador é identifica- do por um índice único e possui uma memória local própria, podendo comunicar-se com os demais pro- cessadores através de uma memória global comparti- lhada. Essa forma de comunicação possibilita o aces- so (leitura ou escrita) simultâneo de vários processa- dores a uma mesma posição da memória global. Des- se modo, surgem três variações do modelo PRAM baseadas na permissão, ou não, do acesso concorren- te:
2.2 Modelo BSP O modelo BSP ( Bulk Synchronous Parallel Model ) - Mo- delo Paralelo Síncrono Volumoso - foi proposto por Vali- ant [11], em 1990. Além de ser um dos mais importantes modelos realísticos, foi um dos primeiros a considerar os custos de comunicação e a abstrair as características de uma máquina paralela em um pequeno número de parâme- tros. O objetivo principal deste modelo é servir de modelo ponte entre as necessidades de hardware e software na computação paralela. Segundo Valiant, este é um dos fato- res responsáveis pelo sucesso do modelo seqüencial de Von Neumann. Uma máquina BSP consiste de um conjunto de p pro- cessadores com memória local, comunicando-se através de algum meio de interconexão, gerenciados por um roteador e com facilidade de sincronização global. Um algoritmo BSP consiste de uma seqüência de superpassos separados por barreiras de sincronização , como mostra a Figura 1. Em um superpasso, a cada processador é atribuído um conjunto de operações independentes, consistindo de uma
Figura 2 – O modelo CGM[5] Em uma rodada de comunicação, uma h -relação (com h = O(n/p) ) é roteada, isto é, cada processador envia O(n/p) dados e recebe O(n/p) dados. No modelo CGM, o custo de comunicação é modelado pelo nú- mero total de rodadas de comunicação.
O custo de um algoritmo CGM é a soma dos tem- pos obtidos em termos do número total de rodadas de computação local (análogo ao W do modelo BSP) e do número de superpassos (análogo ao T do modelo BSP), que equivale ao número total rodadas de co- municação.
2.4 Modelo BSP x Modelo CGM
Ambos os modelos, BSP e CGM, tentam reduzir os custos de comunicação de modo muito semelhante e buscam caracterizar uma máquina paralela através de um conjunto de parâmetros, sendo que dois destes se assemelham, o número de operações de computação local e o número de superpassos^2.
No entanto, existem algumas diferenças. Uma delas, segundo Götz[5], é que o modelo CGM simpli- fica o projeto e o desenvolvimento de algoritmos por ser um modelo mais simples e levemente mais pode- roso que o modelo BSP.
Além disso, um algoritmo CGM pode ser transfe- rido para o modelo BSP sem mudanças. Se um algo- ritmo CGM executa W operações de computação local, Tcp superpassos de computação e Tcm superpas- sos de comunicação, então o algoritmo BSP corres- pondente terá O ( W + ghTcm + L ( Tcp + Tcm )) de custo [2].
Em resumo, os modelos BSP e CGM apresentam muitas similaridades. Entretanto, o modelo CGM
(^2) No modelo CGM, denominados rodadas ( rounds ).
simplifica os custos de comunicação, facilitando o projeto de algoritmos.
3. Conclusões No final dos anos 80, o desenvolvimento de algoritmos paralelos para o modelo PRAM foi bastante grande. Infe- lizmente, os resultados teóricos obtidos não foram obser- vados nas implementações nas máquinas existentes. Nos anos 90, surgem os modelos BSP e CGM. Os algoritmos desenvolvidos nesses modelos, quando implementados nas máquinas atualmente existentes, apresentam resultados de speedup (tempo do algoritmo seqüencial dividido pelo tempo do algoritmo paralelo com p processadores) seme- lhantes aos previstos nas análises teóricas. Os modelos CGM e BSP trouxeram um progresso con- siderável a área de algoritmos paralelos, mas claramente o estado da arte necessita de futuras pesquisas. Esses mode- los são um bom campo para que estudantes de pós- graduação possam desenvolver suas pesquisas [3]. 4. Referências [1] E. Cáceres, A. Chan, F. Dehne, & S. W. Song. “Coarse grained parallel graph planarity testing”. Proc. In- ternational Conference on Parallel and Distribu- ted Processing Techniques and Applications , (PDPTA'2000) , Las Vegas, Nevada, 2000. [2] E. Cáceres, F. Dehne, A. Ferreira, P. Flocchini, I. Rie- ping, A. Roncato, N. Santoro & S. W. Song. “Efi- cient parallel graph algorithms for coarse grained multicomputers and BSP”. Lecture Notes in Com- puter Science , 1256:390-400, 1997. [3] F. Dehne, “Guest Editor's Introduction”, Algorithmica Special Issue on “Coarse grained parallel algo- rithms” , Vol. 24, No. 3/4, July/August 1999, pp. 173-176. [4] F. Dehne, A. Fabri & A. Rau-Chaplin. “Scalable pa- rallel computational geometry for coarse grained multicomputers”. ACM Conference on Computa- tional Geometry , 1993. [5] Silvia M. Götz. “Communication-Eficient Parallel Algorithms for Minimum Spanning Tree Compu- tations”. PhD thesis , Department of Mathematics and Computer Science - University of Paderborn - Germany, Maio 1998. [6] Joseph JáJá. “An Introduction to Parallel Algorithms”. Addison-Wesley, 1992. [7] Henrique Mongelli. “Algoritmos CGM para Busca Uni e Bidimensional de Padrões com e sem Escala”. Tese de Doutorado , Instituto de Matemática e Es- tatística - USP - Brasil, Abril 2000.
[8] Isabelle Guérin Lassous & Jens Gustedt. “List Ranking on a Coarse Grained Muliproces- sor”. Relatório Técnico, RR-3640 INRIA- Lorraine – Março, 1999.
[9] Marco Aurélio Stefanes. “Algoritmos e imple- mentações paralelas para florestas geradoras mínimas”. Tese de Mestrado , Instituto de Matemática e Estatística – USP – Brasil, De- zembro 1997.
[10] Marco Aurélio Stefanes. “Algoritmos paralelos para modelo realísticos”. Qualificação de Doutorado - Instituto de Matemática e Esta- tística - USP - Brasil, Março 2000.
[11] L. G. Valiant. “A bridging model for parallel computation”. Communications of the ACM , 33:103-111, 1990.