Departamento de Ci�ncia da Computa��o - USP
Date: 26 de maio de 2002
TERCEIRO EXERC�CIO-PROGRAMA PRAZO DE ENTREGA: AT� 17/06/02
Em computa��o paralela, uma das estruturas de mais sucesso no in�cio dos anos 90 foi o hipercubo. Atrav�s desta estrutura pode-se interconectar v�rios n�s de um computador para formar-se um computador paralelo. Alguns exemplos de hipercubos podem ser vistos abaixo:
A defini��o do hipercubo pode ser feita da seguinte forma: Dado ,
inteiro. Os v�rtices do hipercubo s�o os n�s da forma
. Dois n�s
e
s�o adjacentes se eles
diferem em apenas uma posi��o, ou bit.
Al�m de poder ser definida de forma recursiva, o hipercubo tamb�m tem
outras propriedades interessantes. Dado um hipercubo com (pot�ncia
de 2), n�s cada n� est� ligado a
n�s e a dist�ncia m�xima entre
dois n�s �
.
Naturalmente, uma das opera��es mais usadas em computa��o paralela � a
troca de mensagens, opera��o que pode ser feita de maneira muito
simples, usando apenas passos. Basicamente o algoritmo
utilizado � o seguinte.
para i de 1 at� k fa�a troque mensagens entre os n�s adjacentes na dimens�o i
Podemos ver na figura 2 as diversas etapas de troca de mensagem para um hipercubo de 8 n�s.
Observando-se a figura vemos que uma mensagem do n� com destino ao
n�
passa pelos n�s
,
at� chegar ao seu destino final.
Dados , e um n� do hipercubo
fa�a uma fun��o que
retorna uma �rvore com os n�s ating�veis a partir do n�
.
A partir do n� mudando a primeira dimens�o temos
. A partir do n�
mudando a segunda dimens�o temos:
, e a partir de
,
.
Desta forma teremos em cada n�vel da �rvore os n�s a uma dist�ncia dada
do n�
.
O seu programa tamb�m deve ser capaz de imprimir esta �rvore de forma conveniente.
Em um cen�rios mais complexo, podemos fornecer uma matriz ,
, que representa mensagens a serem transmitidas no hipercubo. Podemos
supor que as mensagens na coluna 1 correspondem �s mensagens que o n�
deve enviar. Na linha 1 teremos as mensagens destinadas a
ele mesmo, na 2 as mensagens ao n�
, e assim por diante.
Usando o esquema de comunica��o por dimens�es, dados , uma matriz de
comunica��o
e uma aresta do hipercubo imprima a soma de todas as
mensagens que passar�o por ela.
3 010 0 2 3 4 5 6 7 8 9 0 11 12 13 14 15 16 17 18 0 20 21 22 23 24 25 26 27 0 29 30 31 32 33 34 35 36 0 38 39 40 41 42 43 44 45 0 47 48 49 50 51 52 53 54 0 56 57 58 59 60 61 62 63 0 111 110Onde a primeira linha indica o tamanho do hipercubo (no caso do exemplo com
Para este exemplo a sa�da do seu programa deve ser algo como:
010 011 001 101 111 000 100 110Que representa a seguinte �rvore:
Al�m disto o programa tamb�m deve imprimir (ops ainda n�o calculei..)
(que corresponde a
).
This document was generated using the LaTeX2HTML translator Version 99.2beta6 (1.42)
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.
The command line arguments were:
latex2html ep3 -split 0
The translation was initiated by Alfredo Goldman on 2002-05-27