Modelos Realísticos de Computação Paralela



Documentos relacionados
Modelos Computacionais. Jorge Barbosa

Evolução da Computação de Alto Desempenho na Ótica da Lista. ou (Se um processador já é rápido, imaginem um sistema com processadores :-)

Árvores Parte 1. Aleardo Manacero Jr. DCCE/UNESP Grupo de Sistemas Paralelos e Distribuídos

Prof a Andréa Schwertner Charão DELC/CT/UFSM

Algoritmos Paralelos usando CGM/MPI: Uma Introdução. Edson Norberto Cáceres e Siang Wun Song DCT/UFMS e DCC/IME/USP DCC-IME-USP - Aula 02

Sistemas Operacionais Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios Capítulo 6 - Threads

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Modelos para Concorrência

Fundamentos de Arquitetura e Organização de Computadores

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

Arquitetura e Organização de Computadores

OBSERVAÇÕES: EXERCÍCIOS

Sistema Operacional. Implementação de Processo e Threads. Prof. Dr. Márcio Andrey Teixeira Sistemas Operacionais

1.1. Definição do Problema

Introdução a Banco de Dados. INTRODUÇÃO

Universidade Estadual de Mato Grosso do Sul UEMS Curso de Ciência da Computação Disciplina de Algoritmos Paralelos e Distribuídos

Metodologias de Programação

Figura 8: modelo de Von Neumann

Relatório Técnico: Descrição do algoritmo para pesquisa automática dos egressos do curso de Ciência da Computação

NÍVEIS DE CONHECIMENTO ESPERADOS DOS ESTUDANTES: A NOÇÃO INTUITIVA DE CONJUNTO.

Conteúdo. 1 Introdução. Histograma do 1o Sorteio da Nota Fiscal Paraná 152/15. 1º Sorteio Eletrônico da Nota Fiscal Paraná

Conteúdo. 1 Introdução. Histograma do Quinto Sorteio da Nota Fiscal Paraná 065/16. Quinto Sorteio Eletrônico da Nota Fiscal Paraná

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

MODELAGEM MATEMÁTICA DE UM SISTEMA DE DISTRIBUIÇÃO DE ENERGIA ELÉTRICA EM MÉDIA TENSÃO 1. Gabriel Attuati 2, Paulo Sausen 3.

COMO DETERMINAR O IMPACTO DAS VARIAÇÕES PERCENTUAIS

INPE Outubro, Fabiana. S. Santana, César Bravo, Antonio. M. Saraiva Projeto:

E-QP-EIF-076 REV. B 14/Abr/2008 PROCEDIMENTO DE INSPEÇÃO DE FABRICAÇÃO PINTURA INDUSTRIAL - INSTRUÇÕES AO CANDIDATO - GERAL -

Modelo de Programação Paralela

Engenharia Econômica

2) Em relação aos algoritmos de sincronização de relógios:

Erros e Incertezas. Rafael Alves Batista Instituto de Física Gleb Wataghin Universidade Estadual de Campinas (Dated: 10 de Julho de 2011.

APOSTILHA AULA 4 O CICLO DE VIDA DO PROJETO

Entrada e Saída Transmissão Serial e Paralela

Organização e comunicação em plataformas paralelas

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Curso de Sistemas de Informação 8º período Disciplina: Tópicos Especiais Professor: José Maurício S. Pinheiro V

SISTEMAS REALIMENTADOS

3 Modelos de Simulação

DIRETRIZES PARA ESTRUTURAÇÃO DO TRABALHO DE CONCLUSÃO DE CURSO DE GRADUAÇÃO DO CURSO DE ENGENHARIA DE PRODUÇÃO

Linux e Computação Científica

Informática Aplicada

1. Estrutura de Dados

Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

O SOFTWARE R EM AULAS DE MATEMÁTICA

3 Informações para Coordenação da Execução de Testes

Engenharia de Software

Como Fazer uma Monografia

Processo de Desenvolvimento de Software

Inteligência Artificial Redes Neurais Artificiais

Como definir a melhor meta de vendas através do Índice da Margem de Contribuição (Imc)

Disciplina Fundamentos de Redes. Introdução à Mascara de Subrede

Aula 8 Variações da Eliminação de Gauss/Fatoração LU.

Programação de Computadores I. Linguagem C Função

ANÁLISE EXPLORATÓRIA DE DADOS

Estruturas de Repetição

PLANEJAMENTO E MODELAGEM

Integralização do Curso Nova grade de Ciência Proposta

Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos Jorge Figueiredo, DSC/UFCG. Análise e Técnicas de Algoritmos 2005.

INE 5323 Banco de Dados I

UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO REDE DE COMPUTADORES II Prof. Dr. Adenauer C.

Sistemas Distribuídos Capítulo 4 - Aula 5

TOKEN RING & TOKEN BUS

O Sistema de Computação

ANÁLISE DA EVOLUÇÃO DOS PREÇOS DA CESTA BÁSICA DE TRÊS PASSOS-RS 1

Ref.: Produtos BNDES Finame, BNDES Finame Agrícola e BNDES Finame Leasing

Cursos de Mestrado em TSI Situação em Ensino Superior Público... f.2 2 Ensino Superior Particular e Cooperativo... f.5

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Eventos, Tarefas,Tempos e Prazos

Algoritmos Paralelos - ordenação

Introdução à Algoritmos. Aula 11

PESQUISA OPERACIONAL: NA TOMADA DE DECISÕES ADMINISTRATIVA

Memórias cache. Tópicos. João Canas Ferreira Tópicos de Arquitectura de Computadores. 1 Aspectos elementares

Regulamento Interno Trabalho de Conclusão de Curso (TCC) Artes Visuais - Licenciatura e Bacharelado

Curso de Formação Continuada Faculdade de Educação

Cursos de Doutoramento em TSI - Situação em Ensino Superior Público...g.2 2 Ensino Superior Particular e Cooperativo...g.6

CIRCULAR TÉCNICA N o 171 NOVEMBRO 1989 TABELAS PARA CLASSIFICAÇÃO DO COEFICIENTE DE VARIAÇÃO

Lição 5 Medidas Descritivas Medidas de Dispersão

Unidade III- Determinantes

Os conceitos aprendidos são fundamentais, essenciais para escrever um programa macro. Mas o que é um programa macro?

INTERNET GROUP MANAGEMENT PROTOCOL - IGMP

Circuitos Aritméticos

Arquitectura interna de um computador

Tipos de Software e Ambientes de Processamento

INTRODUÇÃO À INFORMÁTICA

Definindo melhor alguns conceitos

Serão suficientes quatro cores para pintar um mapa plano de forma a que dois países vizinhos não partilhem a mesma cor?

O SOFTWARE LIVRE COMO FERRAMENTA DE ENSINO

Algoritmo Paralelo para Árvore Geradora usando GPU

Objetivos da disciplina:

Fernando Seiti Yamamoto ALGORITMO EXATO PARA A ÁRVORE DE STEINER EUCLIDIANO NO PLANO

Introdução. Hardware (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação. joseana@computacao.ufcg.edu.

Normas para apresentação dos trabalhos

FELIPE MASSARDO PROJETO DE INTERFACE PARA UM SISTEMA DE AVALIAÇÃO DE USABILIDADE DE SITES TRANSACIONAIS

IMPLEMENTAÇÃO DE ALGORITMOS RSA PARA REDE ÓPTICA SLICE NA FERRAMENTA DE SIMULAÇÃO TONETS

Placas Gráficas. Placas Gráficas. Placas Gráficas. Placas Gráficas. O que é? Para que serve? Resolução (cont.) Resolução

Modem e rede local Guia do usuário

ASPECTOS RELEVANTES NA ANÁLISE DE NOVOS INVESTIMENTOS

A f e r i ç ã o da Qu a l i d a d e de Se r v i ç o

Transcrição:

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 problema 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 desempenho 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ínsecas à computação paralela e assim, refletem a realidade com mais exatidão. Palavras-chave: paralelismo, modelos de computação paralela, algoritmos paralelos, algoritmos distribuídos, computação paralela. 1. Introdução A computação paralela tem como objetivo usar simultaneamente um conjunto de processadores interligados, de modo a resolver um problema conjuntamente 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 é grande e precisa-se de rapidez na obtenção das respostas. Com a computação paralela a criação de algoritmos modifica-se sensivelmente. As estratégias utilizadas 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 problemas, 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 algoritmos. Os modelos de rede, por sua vez, são felizes na solução da inviabilidade de acesso em tempo constante a uma memó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 1 Professor do Curso de Engenharia da Computação da UCDB Universidade Católica Dom Bosco em Campo Grande/MS.

tempo constante não reflete a realidade dos computadores 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 apresentados 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 Neumann (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 complexidade de tempo baseadas em análises assintóticas. Neste modelo, estas medidas são capazes de refletir corretamente o desempenho dos algoritmos seqüenciais, 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 consideravelmente mais complexa. Nesta seção, apresentaremos os modelos paralelos mais conhecidos e utilizados 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 Machine) é 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 processadores operando de modo síncrono, sob o controle de um relógio comum. Cada processador é identificado por um índice único e possui uma memória local própria, podendo comunicar-se com os demais processadores através de uma memória global compartilhada. Essa forma de comunicação possibilita o acesso (leitura ou escrita) simultâneo de vários processadores a uma mesma posição da memória global. Desse modo, surgem três variações do modelo PRAM baseadas na permissão, ou não, do acesso concorrente: 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 processador, não sendo a mesma operação permitida para a escrita simultânea; CRCW (Concurrent Read, Concurrent Write) - Este modelo permite tanto a leitura, como a escrita concorrente 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 simultaneamente podem ser diferentes. Ficará armazenado 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 simultaneamente podem ser diferentes e apenas um, entre todos os processadores, poderá escrever, não importando 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) - Modelo Paralelo Síncrono Volumoso - foi proposto por Valiant [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âmetros. 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 fatores responsáveis pelo sucesso do modelo seqüencial de Von Neumann. Uma máquina BSP consiste de um conjunto de p processadores 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

combinação de passos de computação, usando dados disponibilizados localmente no início do superpasso, e passos de comunicação, através de instruções de envio e recebimento de mensagens. Neste modelo, uma h-relação em um superpasso corresponde ao envio e/ou recebimento de, no máximo, h mensagens em cada processador. Uma mensagem enviada em um superpasso será recebida somente no próximo superpasso. Figura 1 O modelo BSP[5] Os parâmetros do modelo BSP são os seguintes: n: tamanho do problema; p: número de processadores disponíveis, cada qual com sua memória local; L: o tempo mínimo entre dois passos de sincronização. Também chamado de parâmetro de periodicidade ou latência de um superpasso; g: é a capacidade computacional dividida pela capacidade de comunicação de todo o sistema, ou seja, a razão entre o número de operações de computação realizadas em uma unidade de tempo e o número de operações de envio e recebimento de mensagens. Este parâmetro descreve a taxa de eficiência de computação e comunicação do sistema. Os dois últimos parâmetros, L e g, são usados para computar os custos de comunicação no tempo de execução de um algoritmo BSP. O parâmetro L representa o custo de sincronização, de tal forma que cada operação de sincronização contribui com L unidades de tempo para o tempo total de execução. L também pode ser visto como a latência de comunicação, para que os dados recebidos possam ser acessados somente no próximo superpasso. A capacidade de comunicação de uma rede de computadores está relacionada ao parâmetro g. Através deste parâmetro podemos estimar o tempo tomado pela troca de dados entre processadores. Se o número máximo de mensagens enviadas por algum processador durante uma troca simples é h, então seriam necessárias até gh unidades de tempo para a conclusão da troca. Na prática, o valor de g é determinado empiricamente, para cada máquina paralela, através da execução de benchmarks apropriados [8]. De modo mais formal, o tempo total de execução de um superpasso de um algoritmo BSP é igual a w i +gh i +L, onde w i = max{l; t 1 ;...; t p } e h i = max{l; c 1 ;...; c p }, t j e c j são, respectivamente, o número de operações de computação executadas e o número de mensagens recebidas e/ou enviadas pelo processador j no superpasso i. O custo total do algoritmo é dado pela soma dos custos de cada um dos superpassos. Vamos assumir que o algoritmo BSP possui um total de T superpassos e, sejam a soma de todos os valores de w e h de cada superpasso. W = T w i i= 0 Então, o custo total de um algoritmo BSP é W + gh + LT. O valor de W representa o total de computações locais e o valor de H representa o volume total de comunicação. 2.3 Modelo CGM e O modelo CGM (Coarse Grained Multicomputer) - Multicomputador com Granularidade Grossa - foi proposto por Dehne et al [4], em 1993. É semelhante ao modelo BSP, no entanto, é definido em apenas dois parâmetros: n: tamanho do problema; p: número de processadores disponíveis, cada um com uma memória local de tamanho O(n/p). O termo granularidade grossa (coarse grained) vem do fato de que o tamanho do problema é consideravelmente maior que o número de processadores, ou seja, n/p p. Um algoritmo CGM consiste de uma seqüência de rodadas (rounds), alternando fases bem definidas de computação local e comunicação global, como mostra a Figura 2. Normalmente, durante uma rodada de computação utilizamos o melhor algoritmo seqüencial para o processamento dos dados disponibilizados localmente. H = T h i i= 0

simplifica os custos de comunicação, facilitando o projeto de algoritmos. 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 tempos 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 comunicaçã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 simplifica o projeto e o desenvolvimento de algoritmos por ser um modelo mais simples e levemente mais poderoso que o modelo BSP. Além disso, um algoritmo CGM pode ser transferido para o modelo BSP sem mudanças. Se um algoritmo CGM executa W operações de computação local, T cp superpassos de computação e T cm superpassos de comunicação, então o algoritmo BSP correspondente terá O(W + ght cm + L(T cp + T cm )) de custo [2]. Em resumo, os modelos BSP e CGM apresentam muitas similaridades. Entretanto, o modelo CGM 2 No modelo CGM, denominados rodadas (rounds). 3. Conclusões No final dos anos 80, o desenvolvimento de algoritmos paralelos para o modelo PRAM foi bastante grande. Infelizmente, os resultados teóricos obtidos não foram observados 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) semelhantes aos previstos nas análises teóricas. Os modelos CGM e BSP trouxeram um progresso considerável a área de algoritmos paralelos, mas claramente o estado da arte necessita de futuras pesquisas. Esses modelos são um bom campo para que estudantes de pósgraduaçã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. International Conference on Parallel and Distributed Processing Techniques and Applications, (PDPTA'2000), Las Vegas, Nevada, 2000. [2] E. Cáceres, F. Dehne, A. Ferreira, P. Flocchini, I. Rieping, A. Roncato, N. Santoro & S. W. Song. Eficient parallel graph algorithms for coarse grained multicomputers and BSP. Lecture Notes in Computer Science, 1256:390-400, 1997. [3] F. Dehne, Guest Editor's Introduction, Algorithmica Special Issue on Coarse grained parallel algorithms, Vol. 24, No. 3/4, July/August 1999, pp. 173-176. [4] F. Dehne, A. Fabri & A. Rau-Chaplin. Scalable parallel computational geometry for coarse grained multicomputers. ACM Conference on Computational Geometry, 1993. [5] Silvia M. Götz. Communication-Eficient Parallel Algorithms for Minimum Spanning Tree Computations. 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 Estatística - USP - Brasil, Abril 2000.

[8] Isabelle Guérin Lassous & Jens Gustedt. List Ranking on a Coarse Grained Muliprocessor. Relatório Técnico, RR-3640 INRIA- Lorraine Março, 1999. [9] Marco Aurélio Stefanes. Algoritmos e implementações paralelas para florestas geradoras mínimas. Tese de Mestrado, Instituto de Matemática e Estatística USP Brasil, Dezembro 1997. [10] Marco Aurélio Stefanes. Algoritmos paralelos para modelo realísticos. Qualificação de Doutorado - Instituto de Matemática e Estatística - USP - Brasil, Março 2000. [11] L. G. Valiant. A bridging model for parallel computation. Communications of the ACM, 33:103-111, 1990.