Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Modelos de Computação Paralela: PRAM, BSP e CGM, Teses (TCC) de Computação Paralela

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)

2021

Compartilhado em 14/06/2021

vanessa-cunha-9
vanessa-cunha-9 🇧🇷

1 documento

1 / 5

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Modelos Realísticos de Computação Paralela
AMAURY ANTÔNIO DE CASTRO JUNIOR1
CLÁUDIA YOSHIE NASU
EDSON NORBERTO CÁCERES
HENRIQUE MONGELLI
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
pf3
pf4
pf5

Pré-visualização parcial do texto

Baixe Modelos de Computação Paralela: PRAM, BSP e CGM e outras Teses (TCC) em PDF para Computação Paralela, somente na Docsity!

Modelos Realísticos de Computação Paralela

AMAURY ANTÔNIO DE CASTRO JUNIOR^1

CLÁUDIA YOSHIE NASU

EDSON NORBERTO CÁCERES

HENRIQUE MONGELLI

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:

  • EREW ( Exclusive Read, Exclusive Write ) - Este modelo não permite qualquer acesso simultâneo a uma mesma posição da memória por mais de um processador, seja para leitura ou escrita; - CREW ( Concurrent Read, Exclusive Write ) - Este modelo permite somente leitura simultânea de uma mesma posição da memória por mais de um processa- dor, não sendo a mesma operação permitida para a es- crita simultânea; - CRCW ( Concurrent Read, Concurrent Write ) - Este modelo permite tanto a leitura, como a escrita concor- rente em uma mesma posição da memória por mais de um processador. Para evitar os possíveis conflitos do acesso simultâneo, temos os seguintes critérios: − CRCW comum: Na escrita simultânea, todos os processadores devem escrever o mesmo valor; − CRCW prioritário: Os valores escritos simulta- neamente podem ser diferentes. Ficará armazena- do na posição da memória o valor escrito pelo processador de maior prioridade (assumimos como sendo o processador com menor índice); − CRCW arbitrário: : Os valores escritos simulta- neamente podem ser diferentes e apenas um, entre todos os processadores, poderá escrever, não im- portando qual deles. O modelo PRAM, apesar de sua importância conceitual e teórica, não consegue capturar com exatidão a noção de paralelismo. As características não incorporadas ao modelo durante o desenvolvimento dos algoritmos, tais como custo adicional para referência a memória global e latência, têm grande impacto no desempenho das implementações. Como alternativas para este problema surgem os chamados modelos realísticos, como o BSP e o CGM, descritos em seguida, que incorporam algumas dessas características.

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.