Está en la página 1de 21

ESTRUCTURA Y FUNCIONAMIENTO DE LA

RED DE INTERCONEXIN
CONMUTADOR

Los conmutadores de la red dirigen los paquetes hacia el nodo destino. Para cada
paquete que llega por alguna de sus entradas; el conmutador ibtiene el canal de salida
pr el que ha de reenviarlo con el fin de que alcance su destino. Generalmente un
conmutador permite transferencias en paralelo entre sus entradas y salidas.
Concretamente, los conmutadores de altas prestaciones permiten conexiones entre
entradas y salidas que implementan cualquier aplicacin biyectiva del conjunto de las
entradas en el conjunto de las salidas (cualquier permutacin).

En esta figura podemos ver un ejemplo de permutacin. Un


0 0
conmutador (n entradas y n salidas) puede
1 1
2 2
implementar n! permuaciones diferentes. Los
3 3 conmutadores tambin pueden implementar conexiones
uno-a-todos o todos-a-uno, como difusiones o reducciones.

Los conflictos aparecen cuando dos o ms entradas en un instante 0 0


dado quieren acceder a la misma salida, como se muestra en la 1 1
siguiente figura. En este caso, debern acceder a la salida una 2 2
3 3
entrada detrs de la otra.

En la figura que veremos a continuacin se puede ver la estructura general para un


conmutador 4 x 4 (4 puertos de entrada y 4 puertos de salida). Cada puerto de entrada
y cada puerto de salida en la figura tienen asociado un controlador de enlace (CE) que
controla las transferencias a travs de los enlaces de unidades de control de flujo.
CE CE

CE CE
Conmutador
Interno
CE CE

CE CE

Encaminador
+
Arbitraje

En los conmutadores generalmente se proporciona algn medio para el


almacenamiento (buffer) de la informacin en trnsito. Cada entrada puede tener
asociado un buffer que ocupan las unidades que llegan por dicha entrada. Igualmente,
se puede asignar un almacenamiento a cada salida, en el que se colocan las unidades de
los paquetes que han de reenviarse por dicha salida. El tamao de un buffer es mltiplo
de una unidad de control de flujo deconmutacin o flit. Cada una de estas unidades
ocupar una celda del buffer. Los flits de un paquete esperarn en el buffer de entrada
hasta que se le asigne una salida al paquete y cada uno esperar hasta que pueda
avanzar hacia o por dicha salida. Generalmente, para implementar los buffer de entrada
se opta por una estructura de cola circular o una estructura de cola enlazada. Los buffer
circulares son ms fciles de gestionar: habr que actualizar el puntero a la cabeza
cuando un flit deje el buffer, o actualizar el puntero de la cola cuando llegue un nuevo
flit al buffer. Pero requieren por el contrario un tamao prefijado de espacio. Por otra
parte, los buffer con estructura de cola enlazada tienen una penalizacin por gesntin
mayor ya que adems de actualizar cabecera o cola, hay que actualizar punteros entre
celdas (flits) y habr que gestionar una lista con las celdas libres. Una cola con gestin
(arbitraje entre paquetes almacenados) FIFO es una opcin para los buffer de entrada
sencilla de implementar. Los buffer en la salida permiten ajustarla velocidad del
conmutador con la del canal de salida, si en canal de salida puede recibir en un momento
dado ms flits de los que puede enviar. El buffer de salida puede consistir en una
implementacin con gestin FIFO. Se pueden encontrar diseos de conmutadores con
una memoria comn centralizada para el almacenamiento, y otros, por ejemplo, que
combinan almacenamientos asociados a entradas y memoria central. Si se utiliza una
memoria centralizada, sta puede implementar adems el conmutador interno. No
obstante hay que tener en cuenta que la memoria comn debera proporcionar un
ancho de banda de lectura y escritura suficiente para atender a todas las entradas y
salidas del conmutador. En conmutadores para redes estticas, los puertos de
comunicacin con la interfaz de red pueden tener caractersticas diferentes al resto de
entradas/salidas (que se conectan a otros cnutadores).
El conmutador interno se puede implementar con una memoria comn centralizada,
como acabamos de comentar, o tambin con un bus compartido, aunque la mayor parte
de las implementaciones de altas prestaciones utilizan un conmutador de barras
cruzadas. La circuitera de barras cruzadas permite cualquier aplicacin biyectiva del
conjunto de las entradas en el conjunto de las salidas. Un conmutador interno con
entradas y salidas estara entonces basado en multiplexores : 1, de entradas y
una salida (cada una de estas salidas sera una de las lneas de salida de la figura que se
muestra a continuacin).

m entradas
0 1 2 3 4 5 m-1

1
Cerrado deja pasar lo que hay en
2 la entrada a a la salida
v
n salidas

3
v
4
v
5
v

n-1
v
Cada multiplexor se puede implementar por ejemplo mediante puertas triestado o
puertas OR cableadas que contrlan el valor de la lnea de salida del multiplexor. Los
conmutadores con circuitera de barras cruzadas son conmutadores no-bloqueantes.
El conmutador decide para cada paquete que llega la salida por la que ha de
encaminarse para llegar al destino. Esa decisin se toma por una circuitera de control
de encadenamiento, el encaminador que vimos en la estructura genrica de un
conmutador 4 x 4, utilizando la informacin en la cabecera del paquete (de ah la
conexin que aparece en la figura desde las entradas a la circuitera de control). Puede
haber circuitera de encaminamiento asociada a cada entrada, de esta forma se podrn
tomar decisiones de encaminamiento en paralelo para todas las entradas. Los conflictos
entre paquetes (entradas) que quieren pasar a la misma salida se resuelven mediante
una circuitera de control para el arbitraje (para planificar el paso de flits a travpes del
conmutador interno desde las entradas a las salidas). Interesa que haya circuitera de
arbitraje asociada a cada salida, que arbitre entre las peticiones de comunicacin a dicha
salida. De esta forma se puede arbitrar en paralelo peticiones a las distintas salidas. Se
podr seleccionar una salida siempre que sta est disponible para recibir nuevos datos
(control de flujo para gestin de buffer).
A continuacin mostraremos unas figuras donde se ilustra el proceso de arbitraje que
planifica las transferencias entre puertos de entrada y puertos de salida. Para
seleccionar entre las peticiones (o reconocimientos) se puede utilizar prioridad fija,
rotante, aleatoria, menos recientemente seleccionado (empleadapor ejemplo en el chip
EV7), etc., tambin utilizadas para arbitrar el acceso a buses. Las conexiones entre
entradas y salidas del conmutador interno (seales de control de los multiplexores de
entradas) dependen del resultado del encaminamiento y del arbitraje.

Arbitraje paralelo de peticiones de


Puerto Puerto
ent. 0 sal. 0 conexin con puertos de salida.
1)Fase de peticin: cada unidad
Puerto Puerto solicita la salida por la que debe
ent. 1 sal. 1 encaminarse.
2)Fase de reconocimiento: los
Puerto Puerto
ent. 2 sal. 2
puertos de salida disponibles
seleccionan una nica entrada
Puerto Puerto (podran seleccionarla, por ejemplo,
ent. 3 sal. 3 aleatoriamente).
Obsrvese que habra circuitera de
Peticin Reconocimiento
arbitraje asociada a las salidas.

Arbitraje paralelo de peticiones de


conexin con puertos de salida.
Puerto Puerto
1)Fase de peticin: en la que una
ent. 0 sal. 0
unidad puede solicitar varias salidas.
2)Fase de reconocimiento: los Puerto Puerto
puertos de salida disponibles ent. 1 sal. 1
seleccionan una nica entrada
(podran seleccionarla, por ejemplo, Puerto Puerto
ent. 2 sal. 2
aleatoriamente).
3)Cada puerto de entrada que recibe Puerto Puerto
reconocimientos selecciona una de ent. 3 sal. 3
las salidas (por ejemplo,
aleatoriamente). Peticin Reconocimiento Aceptacin
Obsrvese que en este caso, tambin
hay circuitera de arbitraje asignada
a las entradas.
Si se ajusta la implementacin del conmutador a un algoritmo de encaminamiento
concreto, se puede llegar a reducir la complejidad de los componentes del conmutador
(encaminamiento, conmutador interno, arbitraje).
Para incrementrar las prestaciones, las operaciones dentro del conmutador se pueden
segmentar en etapas; por ejemplo en tres: enaminamiento, arbitraje paralelo y paso por
el conmuador interno.
El coste del conmutador interno implementado como barras cruzadas depende del
producto de las entradas y salidas. Mientras que el coste del resto de componentes
depende generalmente del nmero de entradas (almacenamiento, controladores de
enlace, encaminador, arbitraje) o del nmero de salidas (almacenamiento,
controladores de enlace, arbitraje).

ENLACES Y CANALES
Los enlaces de la red conectan dos componentes del sistema de comunicacin
(conmutador-conmutador, o conmutador-interfaz de red). Proporciona una conexin
punto a punto. Por los enlaces se transfieren los bits que constituyen los paquetes, y bits
para el control de flujo. A veces se utiliza la denominacin de canal para referirse al
conjunto formado por: el enlace, los controladores del enlace en el emisor y en el
receptor, aadiendo tambin el almacenamiento (buffer) que contiene las unidades de
informacin que se transfieren e igualmente se puede incluir el almacenamiento donde
se van recibiendo. En este caso, cuando hablamos de enlace, nos referimos al cable o
medio que interconecta fsicamente los conmutadores entre s y estos con las interfaces
de red. Los controladores de enlace aslan de las caractersticas del medio fsico de
transferencia, se encargan de adecuar al medio la informacin binaria a transferir como
una seal digital.

Conmutador Enlace Conmutador


Datos de paquete + Control flujo
CE CE

Controlador Controlador
de enlace de enlace

Canal
Estructura de un canal

El controlador de enlace del receptor muestrea en el medio para extraer la informacin


digital transferida en forma de pulss o variaciones, de tensin, corriene o intensidad de
luz. El almacenamiento asociado a las entradas del conmutador permite desacoplar el
ritmo de recepcin de unidades del reloj interno del conmutador.
Los canales de una red pueden ser unidireccionales o bidireccionales. Si son
unidireccionales constan de un enlace que les permite transferir unidades de
informacin slo en un sentido. Los canales bidireccionales permiten transferir en los
dos sentidos. Los canales bidireccionales full-duplex permiten que en paralelo se pueda
transferir informacin en los dos sentidos; para ello constan de dos enlaces
independientes dedicados cada uno a la transferencia en un sentido. Los canales
bidireccionales half-duplex disponen de un nico enlace, por lo que no pueden transferir
en ls dos sentidos al mismo tiempo; en un momento dado, slo se puede sostener la
transferencia en un nico sentido.
Los enlaces (medio fsico) en computadores paralelos pueden estar constituidos por un
conjunto de lneas: hilos elctricos (aluminio sobre silicio, o cobre) o fibras pticas.
Las fibras pticas permiten equilibrar el ancho de banda de distancias cortas y largas en
mayor medida que el cobre.
Podemos caracterizar las propiedades lgicas de un enlace, por lo que se podra
denominar longitud y anchura. Respecto a la longitud, un enlace es largo o corto. Es
corto si slo puede estar transfiriendo un nico smbolo en un momento dado, smbolo
que ocupar el enlace durante un ciclo de red. El retardo de propagacin por el canal
determina el ciclo de red. La unidad de informacin que se transfiere por un enlace en
un ciclo de red se denomina phit (unidad fsica, Physical unIT), mientras que la unidad
lgica que se transfiere por un canal entre conmutadores como se indic anteriormente
se denomina flit (unidad de control de flujo, Flow control unIT). Un enlace ser largo si
se propagan simultneamente por el enlace una secuencia de smbolos (canal
segmentado), como se observa en la siguiente figura.

Enlace largo
Conmutador Conmutador

phit

Propagacin de phits en un enlace largo

Se pueden inyectar nuevos smbolos en el enlace antes de que los inyectados


previamente hayan llegado al otro extreo del mismo. Los smbolos (phits) pasan al
enlace uno cada ciclo de red y se recogen en el destino igualmente uno cada ciclo. En
enlaces largos, el ciclo de la red es menor que el tiempo de propagacin de las seales
por el enlace. Al propagarse varios smbolos simultaneamente, se incrementa el ancho
de banda en la transferencia por el canal. El ciclo de red depende de la velocidad a la
que se pueden transmitir los smbolos de forma segura por el canal, sin solaparse, y de
forma que se puedan muesrear correctamente en el receptor.
El ancho de banda de un canal depende del ciclo de la red, y del nmero de lneas de los
enlaces. La velocidad mxima a la que se pueden transmitir los bits de forma segura a
atravs de un canal (ancho de banda terico o capacidad del canal) depende de diversos
factores, entre ellos estn, la cantidad de energa empleada para transmitir la seal por
una lnea (consumo de potencia), la distancia que debe atravesar (debido a que la
energa se disipa y dispersa conforme viaja a lo largo del medio), la cantidad de ruido, el
desplazamiento entre seales transmitidas por diferentes lneas del enlace, y el tamao
del almacenamiento en el destino para los smbolos que se propagan (para enlaces
largos). El nmero de lneas afecta a factores como el consumo de potencia y al coste.
El problema de desplazamiento se puede evitar para un mismo nmero de lneas
permitiendo una transmisin en paralelo de la informacin por mltiples enlaces serie
(phit igual a 1), en lugar de una transmisin por un enlace con mltiples lneas (phit gual
al nmero de lneas).
phit

< Desplazamiento de bits en un enlace

Por lo general, en lneas largas (fibra ptica) el retardo de propagacin depende


linealmente de la longitud, y en las lneas cortas del logaritmo de la longitud. Este
retardo afecta a la latencia del enlace o tiempo que tarda un smbolo en propagarse
desde el emisor al receptor.
Con respecto a la anchura, los enlaces pueden ser anchos o estrechos, Los enlaces
anchos permiten transferir en paralelo bits del paquete y bits de control, por ejemplo
para control de flujo. Por tanto, tienen lneas independientes para transferir los bits de
control. Los enlaces estrechos multiplexan en el tiempo en las mismas lneas, bits de
control y bits de los paquetes.
PRESTACIONES GENERALES DEL SISTEMA DE
COMUNICACIN
Para evaluar un sistema de comunicacin se utilizan diferentes medidas de prestaciones,
entre las que se encuentran medidas usuales de tiempo de respuesta y productividad.
Nos podemos encontrar medidas de tiempo de respuesta y productividad que
pretenden evaluar el comportamiento del sistema de comunicacin en la transferencia
de un mensaje entre dos nodos, que podemos denominar medidas de prestaciones
extremo-a-extremo. stas no evalan todos los aspectos del diseo de un sistema de
comunicacin. Para evaluar el comportamiento de un sistema de comunicacin en
presencia de mltiples comunicaciones en paralelo se utilizan medidas de tiempo y
productividad globales. Dentro de las prestaciones que ofrece el sistema de
comunicacin a aplicaciones paralelas hay que considerar tambin medidas adicionales
como la escalabilidad, tolerancia a fallos o calidad de servicio y la eficiencia con la que
implementan funciones colectivas habituales en programas paralelos, como difusin o
barreras.

PRESTACIONES EXTREMO-A-EXTREMO
Las medidas de prestaciones extremo-a-extremo evalan las prestaciones que ofrece el
sistema de comunicacin en la transferencia de un mensaje de un nodo o proceso fuente
a un nodo o proceso destino (comunicacin uno-a-uno). Se incluye la evaluacin del
hardware y del software, y se dan en trminos de dos parmetros: latencia y ancho de
banda. Con estos parmetros se pretende evaluar la sincronizacin y el camino
completo de comunicacin entre dos nodos (se suele incluir algn conmutador de la
red), incluyendo las interfaces (como fuente y como destino) y a veces tambin la
biblioteca de funciones o en general la herramienta de programacin que puede usar el
programador de aplicaciones para acceder al sistema de comunicacin (MPI, PVM,
OpenMP).
Las medidas experimentales de latencia y ancho de banda, se obtienen con un
microbenchmark, como por ejemplo un test ping-pong. En este microbenchmark
intervienen dos procesos: uno de ellos enva un mensaje (ping) al segundo, ste recibe
el mensaje y lo devuelve al primero (pong), el test finaliza con la recepcin del mensaje
de vuelta en el proceso que hace el primer envo. Las llamadas al reloj del sistema para
medir el tiempo, se hacen en el proceso que inicia y termina el test. Justo antes de enviar
(ping) el mensaje de tamao mnimo se consulta el tiempo, y se vuelve a consultar al
recibir la contestacin (pong). La latencia se calcula restando estas dos medidas y
dividiendo por dos. En las siguientes grficas se presentan los resultados obtenidos en
un test ping-pong programado con LAM-MPI entre dos computadores con procesadores
Celeron a 1,7 GHz conectados mediante una red Fast Ethernet.
Tiempo de Comunicacin
1

Tiempo en escala logartmica (s)


L + tamao/B

0,1

0,01

0,001

Latencia total de comunicacin.


0,0001 Aproximacin lineal del tiempo
de comunicacin a partir de la
1
2

1048576
4

16
32

131072
64

512
128
256

1024
2048
4096

16384

524288
8192

32768
65536

262144
latencia L y el ancho de banda
asinttico B.
Tamao del mensaje en escala logartmica (bytes)

11
10
Productividad (MB/s)

9
8
7
6 Punto de
5 potencia
4
3 media
2
1 Productividad y ancho
de banda asinttico.
2
1

4
8

1048576
32
16

131072
64
128
256
512
1024
2048
4096

16384

524288
8192

32768
65536

262144

Tamao del mensaje en escala


logartmica

Dentro de las medidas de prestaciones extremo-a-extremo se incluyen:


1) Ancho de banda terico, ancho de banda disponible o capacidad del canal ().
Es la capacidad de transmisin de los canales de la red; por tanto, no se obtiene
experimentalmente. Se suele expresar en megabits por segundo. Para el
ejemplo de las figuras (Fast Ethernet) sera 100 Mb/s (12,5 MB/s).
2) Latencia total o tiempo de comunicacin ().
Es el tiempo de transferencia total de un mensaje de un tamao concreto .
En la primera grfica se representa el tiempo de comunicacin para diferentes
tamaos de mensaje.
3) Latencia ().
Generalmente, se denomina as al tiempo necesario para enviar un mensaje de
tamao pequeo (tamao 0, 1 byte, 8 bytes). = (0). En el ejemplo, la
latencia sera de unos 144,6 (tiempo de transferencia para 8 bytes).
4) Productividad o ancho de banda efectivo ().
Tambin denominado a veces slo ancho de banda. Es el nmero de bytes
enviados por unidad de tiempo entre dos nodos; tpicamente se da en
megabytes por segundo. Se suele representar en una grfica en funcin del
tamao del mensaje [ = /()]. La grfica de la ltima grfica presenta
el ancho de banda efectivo obtenido para distintos tamaos de mensaje.
5) Ancho de banda asinttico ().
El ancho de banda asinttico, llamado a veces simplemente ancho de banda, es
la productividad a la que se tiende conforme aumenta el tamao del mensaje
que se transfiere, es decir, es la productividad mxima que permite el sistema
de comunicacin entre dos nodos (procesos). Es, por tanto, el valor al que se
limita la grfica de productividad. Su mayor o menor aproximacin al ancho de
banda terico depende principalmente del diseo de la interfaz de red y de las
herramientas de programacin (si se han incluido en la medida estas ltimas).
En el ejemplo en la ltima grfica, su valor est entorno a 10 MB/s. Con el ancho
de banda asinttico y el punto de potencia media se obtiene una visin
parcial de la grfica de productividad. El punto de potencia medio se define
como el tamao del mensaje para el que el sistema de comunicacin obtiene
una productividad igual a la mitad del ancho de banda asinttico. El punto de
potencia medio para el ejemplo de la ltima grfica es algo superior a 2.048
bytes.

Latencia y ancho de banda asinttico para varios ejemplos


Red Latencia B (MB/s) Interfaz Software Hardware API
(s)
Fast Ethernet 123 11.75 TCP/IP/3Com 3c905 Boomerang MPI
[Fernndez 2001] Pentium II 333 MHz
Fast Ethernet 185 10.5 TCP/IP/3Com 3c905 Boomerang PVM
[Fernndez 2001] Pentium II 333 MHz
Gigabit Ethernet 59 31 TCP/IP/Packet Engines GNIC II, Socket
[M-VIA Faq] Pentium II 400 MHz
Gigabit Ethernet 19 60 M-VIA/Packet Engines GNIC-II,
[M-VIA Faq] Pentium II 400 MHz
Gigabit Ethernet 36 75 CLIC/SMC9462TX y3C996-T
MTU 9000 Bytes
Gigabit Ethernet 68.75 CLIC/SMC9462TX y3C996-T MPI
MTU 9000 Bytes
Gigabit Ethernet 14.7 81.5 Fast Messages
[FM Home]
Gigabit Ethernet 8.5 118.5 GAMMA/Negear GA621,
MTU 1500 Bytes Pentium III 1 GHz
Gigabit Ethernet 8.5 122 GAMMA/Negear GA621,
MTU 4116 Bytes Pentium III 1 GHz
Gigabit Ethernet 32 123.6 GAMMA/Netgear GA620, Alteon
MTU 5140 Bytes TIGON-II, Pentium III 1 GHz
Myrinet (1.28 9.6 100 Fast Messages
Gb/s)
QsNet 5 307 Elanlib/Elan MPI
[Petrini, 2002]
Sun Fire Link 3.7 792 RSM MPI
[Sistare 2002]
Sun Fire Link 1.7 RSM
[Sistare 2002]
-Si no se especifica API se utilizan funciones proporcionadas por la interfaz software.
-En Gigabit Ethernet se pueden utilizar tamaos de paquetes (MTU) mayores que los habituales 1500 byte, (tumbo
-GAMMA depende de la tarjeta de red, ya que modifica el driver.
-Alcanza el 97,6% del ancho de banda disponible 1 Gb/s (=125 MS/s).
-Hardware de la interfaz propio de la de red.
-Tanto el software como el hardware de la interfaz son propios de la red.

La latencia total de comunicacin se modela para un tamao de forma ms o menos


aproximada (depende de la implementacin concreta de la comunicacin) mediante la
latencia y el ancho de banda asinttico (como habamos visto en el primer grfico):
() = + /
La latencia engloba la sincronizacin utilizada para la transferencia, y el ancho de banda
caracteriza la transferencia de datos (gran cantidad de datos). Este modelo lineal se
utiliza habitualmente para sistemas que implican transferencia de datos, como es un
sistema de comunicacin o el sistema de memoria (que en multiprocesadores engloba
al sistema de comunicacin). En la tabla anterior se pueden ver valores de latencias y
ancho de banda (asintticos) para varios sistemas de comunicacin.
La latencia total de comunicacin se compone de un tiempo de sobrecarga en el
procesador del nodo fuente, un tiempo de sobrecarga en el procesador del destino y de
un tiempo debido a la transferencia a travs de la red y al procesamiento en el hardware
de las interfaces de red (NI en la figura) de la fuente y del destino.

AQU VA LA FIGURA 8.18


La sobrecarga en el procesador del nodo fuente es un tiempo que consume el
procesador para el envo del mensaje. Le sobrecarga del procesador destino es un
tiempo que consume el procesador destino en la recepcin. Esta sobrecarga puede ser
un tiempo constante, si el procesador simplemente pide a la interfaz hardware que
realice la transferencia, o puede depender del tamao de la transferencia, como por
ejemplo ocurre si el procesador tiene que realizar alguna copia de memoria. El punto
clave es que en este tiempo el procesador est ocupado con la comunicacin, por lo que
no puede realizar otro trabajo til u ocuparse de una nueva comunicacin. La sobrecarga
tambin puede incluir la ejecucin de las funciones de bibliotecas que, a nivel de
aplicacin, se utilizan en la comunicacin. El tiempo entre comunicaciones consecutivas
no obstante, puede ser mayor que el tiempo de sobrecarga del procesador, por estar
limitado por la velocidad de la interfaz hardware.

AQU VA LA FIGURA 8.19


El resto de tiempo incluido en la comunicacin ser la latencia de red observada por los
procesadores.
Ntese, que la latencia total de comunicacin para un mensaje, comprende el tiempo
que supone la transferencia de todo el mensaje y, por tanto, incluye el tiempo que
supone el procesamiento en la interfaz y la transferencia a travs de los enlaces y
conmutadores de la red de los paquetes asociados al mensaje. Adems de uno o
mltiples paquetes de datos del mensaje, puede haber tambin involucrados en la
latencia algn paquete de control.

La latencia de transpone para un paquete es el tiempo que transcurre desde que se


inyecta en la red el primer bit del paquete hasta que el ltimo bit llega a la interfaz del
destino. Dentro de la latencia de transporte, el tiempo de encaminamiento comprende
el tiempo que transcurre desde que se inyecta la cabecera del paquete en la
interconexin hasta que sta se recibe en la interfaz del destino. El tiempo restante
hasta completar la latencia de transporte se caracteriza por un ancho de banda y se
obtiene dividiendo, el tamao del paquete sin la cabecera (tamao que incluye datos y
presumiblemente bits de control) por este ancho de banda. La latencia ser menor
cuanto ms se aproxime este ancho de banda al ancho de banda del canal, lo que
depende de la implementacin de la red (especialmente de la tcnica de conmutacin).
Para obtener la latencia y el ancho de banda en funciones colectivas se debe tener en
cuenta el momento en el que el primer nodo de los involucrados comienza la
comunicacin y el momento en que termina el ltimo.

PRESTACIONES GLOBALES
Cuando ejecutamos una aplicacin paralela, en un momento dado se pueden encontrar
en el sistema de comunicacin mltiples transferencias de la aplicacin, y en la red,
mltiples paquetes. Las prestaciones extremo-a-extremo no evalan el comportamiento
del sistema de comunicacin completo. Se requieren medidas de prestaciones que
evalen globalmente el comportamiento del sistema de comunicacin ante mltiples
transferencias simultneas. Estas medidas intentan englobar con ms detalle los
diferentes aspectos del diseo de una interfaz y de una red de interconexin (como son
el encaminamiento, la topologa, la tcnica de conmutacin y el control de flujo) y cmo
se comportan ante conflictos entre transferencias.
La evaluacin de prestaciones globales de una red de interconexin se realiza mediante
medidas de latencia media y ancho de banda global con la intervencin de todos los
nodos terminales de la red de interconexin (igualmente se podra evaluar todo el
sistema de comunicacin, en cuyo caso se incluira la interfaz). Para obtener estas
medidas experimentalmente, se inyecta trfico en la red desde todos los nodos de
entrada, generando los destinos en cada nodo siguiendo algn patrn de comunicacin.
Por ejemplo, se puede utilizar una distribucin uniforme, normal, o esquemas de
comunicacin frecuentes en algoritmos paralelos como barajes, intercambio o difusin
(trfico no uniforme).
Generando los destinos con una distribucin uniforme todos los nodos destinos en la
red sern destinos equiprobables para cada nodo de entrada: la probabilidad de que un
nodo mande un mensaje a , con , es igual para todo y todo . Con trfico
uniforme, si dividimos la red en dos partes con igual nmero de conmutadores y con
igual nmero de nodos terminales (de entrada y de salida) cada una, se observa, que
cada parte manda la mitad de los paquetes que generan a nodos del trozo de la red en
el que se encuentran, y la otra mitad a nodos del trozo opuesto.

AQU VA (Figura 8.20).

Pasando por tanto la mitad del trfico generado entre estas dos partes (1/ 4 + 1/ 4 =
1/2).
Una distribucin normal para generar los destinos simula una mayor probabilidad de
enviar paquetes a nodos terminales cercanos que a nodos alejados. Permite simular el
comportamiento de redes estticas para trfico local (localidad espacial). Mientras que
con esquemas de comunicacin frecuentes en algoritmos paralelos, corno por ejemplo
permutaciones o reducciones, se tiene en cuenta la posibilidad de que haya canales ms
utilizados que otros (localidad temporal). En este caso se simula el comportamiento de
la red con trfico no uniforme.
Para obtener la latencia media, se mide el tiempo de transferencia de todos los paquetes
generados y se halla la media dividiendo entre el nmero de paquetes. La productividad
global o productividad aceptada es el nmero de bits (paquetes) que se estn
transfiriendo por segundo en toda la red. Se obtiene contando los paquetes (bits)
recibidos en los destinos en un intervalo de tiempo. Como esta medida depende del
tamao de la red, se suele dar dividida por el nmero de nodos. Entonces vendra dada
en bits por nodo y segundo (o microsegundo) o bits por nodo y ciclo de reloj. Hay varias
denominaciones y valores relacionados con la productividad global que conviene definir:
productividad solicitada, productividad mxima (ancho de banda asinttico), ancho de
banda de biseccin (medida relacionada con el ancho de banda terico o capacidad de
la red).
Para evaluar las prestaciones de la red es conveniente obtener la productividad mxima
que nos ofrece la red. sta depender del patrn de comunicacin (distribucin de
destinos). La productividad mxima se alcanza cuando la red se satura, es decir cuando
no puede aceptar ms trfico. El punto de saturacin de la red representa el ancho de
banda global de la red que puede utilizarse de forma efectiva para una distribucin de
destinos o patrn de comunicacin dado; es decir, sera la productividad o ancho de
banda global asinttico. Se puede dar en bits por segundo, y para facilitar las
comparaciones entre redes, se divide por el nmero de nodos de entrada.
AQU VA FIGURA 8.21
La productividad solicitada o aplicada (applied load, offered bandwidth, generation rate,
injection rate) depende del trfico generado en los nodos de entrada (bits/s generados
por todos los nodos dividido entre el nmero de nodos). Mientras que la productividad
aceptada (accepted bandwidth, delivered bandwidth), sera la productividad que la red
realmente lleva a cabo (bits/s recibidos en todos los nodos, dividido entre el nmero de
nodos). Como se ilustra en la figura anterior, si la productividad solicitada es moderada,
la latencia media permanece baja, y la productividad solicitada coincide con la
productivad aceptada (o simplemente productividad de la red). Pero llega un punto, al
incrementar la productividad solicitada, que los conflictos en los recursos del sistema de
comunicacin entre distintas transferencias, hacen que la latencia crezca
espectacularmente. La red tiene ms trfico del que puede hacer avanzar de forma
efectiva hacia el destino, por lo que no puede aceptar ms trfico, de ah que se sature
la productividad. Es interesante conocer esta productividad mxima de la red. El sistema
debe evitar llegar a este punto de saturacin. Para ello la interfaz puede dejar de
inyectar trfico si detecta, a travs del control de flujo, que el sistema est prximo al
punto de saturacin, evitando as la devaluacin drstica de las prestaciones.
Hay medidas tericas que caracterizan la productividad mxima de la red de
interconexin. Si las transferencias se realizan entre nodos directamente conectados
con un enlace, un lmite para la productividad mxima sera la suma del ancho de banda
de todos los enlaces de la red dividido por el nmero de nodos. Pero sta sera una
medida demasiado optimista de la productividad mxima. Una medida ms acertada de
la capacidad de la red vendra dada por la productividad mxima que ofrece para trfico
uniforme.
Se puede calcular fcilmente un lmite superior para la productividad mxima con trfico
uniforme, obteniendo el ancho de banda de biseccin de la red. El ancho de biseccin
de una red se puede definir como el nmero mnimo de enlaces (o lneas) que cortados
dividen la red en dos mitades similares con igual nmero de conmutadores y de nodos
terminales (de entrada y de salida). En la figura del trfico uniforme y ancho de banda
de biseccin para un toro 4x4 se observa que con trfico uniforme, la mitad de los
paquetes generados atraviesan el plano (lnea vertical discontinua) que divide la red en
dos mitades con igual nmero de conmutadores y nodos terminales. Igualmente se
observa que el trfico que atraviesa este plano utiliza el ancho de banda de los ocho
canales que inciden en el plano. La productividad mxima a travs de este plano o ancho
de banda de biseccin se obtiene cuando se divide el trfico equitativamente entre
todos los canales de la biseccin. El ancho de banda de biseccin para la red toro 4 x 4
de la figura ser la suma de los anchos de banda de estos ocho canales. Cuanto menor
sea este ancho de banda menor ser el trfico uniforme permitido. As pues, para
obtener el ancho de banda de biseccin de una red se puede dividir sta en dos mitades
similares con igual nmero de conmutadores y nodos terminales, trazando un plano. La
suma del ancho de banda de los enlaces que atraviesan este plano nos dar el ancho de
banda de biseccin. Cuando hay varias posibilidades de divisin, se debe escoger aquella
que proporciona menor ancho de banda. Si el ancho de banda de biseccin es de bits
/s, entonces en una red de N nodos con trfico uniforme, un nodo podr inyectar en la
red como mximo 2 / bits/s. Por tanto, la productividad por nodo de entrada podr
ser como mximo de 2 / bits/s (como en la ltima figura). Es habitual expresar la
productividad de una red como una fraccin de la productividad mxima para trfico
uniforme.
Probablemente, para un patrn de comunicacin dado, habr enlaces que se saturarn
antes que otros. Si no hay enlaces saturados, la red puede aceptar an ms trfico, por
lo que no estara trabajando a su mxima productividad. Para calcular el ancho de banda
aceptado para un patrn de comunicacin dado, hay que tener en cuenta , tanto la carga
de los enlaces, concretamente de aquellos que para un patrn de trfico particular
soporten la mayor fraccin de trfico. Los enlaces que soportan mayor carga en una red,
para un patrn de comunicacin dado, actan de cuello de botella (hot-spot) y sern los
primeros en saturarse conforme se incremente la tasa de bits inyectados en la red. Se
saturan cuando transfieren con un ancho de banda igual al ancho de banda del enlace;
a partir de ese momento la red alcanza su punto de saturacin.
En la prctica, adems, hay que tener en cuenta que parte del ancho de banda de la red
se consume por la transferencia de informacin de control, por tanto, el ancho de banda
del sistema de comunicacin que percibirn los procesadores del nodo se ver reducido
por este factor.

MEDIDAS DE PRESTACIONES ADICIONALES


Adems de las medidas de prestaciones genricas de tiempo y productividad, tambin
resulta de inters para evaluar el sistema de comunicacin, medidas adicionales tales
como:

Funcionalidad. Se refiere a la variedad de tipos de transferencias (mensajes o


accesos a memoria) que implementa el sistema de comunicacin, en la interfaz
y/o en los conmutadores. Puede implementar transferencias uno-a-uno de datos
sincronizando el proceso fuente y el proceso destino entre s (citas o ren-dez-
vous), transferencias uno-a-uno de datos sincronizando slo el destino con la
fuente, transferencias unilateral (one-side) de escritura, de lectura o de lectura-
modificacin-escritura (en multiprocesadores se implementan en hardware);
transferencias colectivas tipo mltiples uno-a-uno, como permutaciones; uno-a-
muchos, como difusin; muchos-a-uno, como reduccin; o funciones muchos-a-
muchos, como las barreras.
Escalabilidad. Posibilidad que ofrece el diseo de red de incrementar las
prestaciones globales (productividad global) conforme se incrementa el nmero
de entradas y salidas que interconecta. Para que el diseo sea escalable, la red
debe poder expandirse modularmente. No todas las topologas de red permiten
una expansin modular a priori indefinida (por ejemplo el hipercubo).
Tolerancia a fallos. Alta disponibilidad. Como consecuencia del fallo de algn
componente del sistema de comunicacin (conmutadores, enlaces, interfaces),
algunas entradas y salidas pueden quedar sin camino para comunicarse. Hay
sistemas de comunicacin que se pueden reconfigurar tras el fallo de (o cuando
se detiene voluntariamente) algn componente para volver a conseguir que se
puedan comunicar todas las entradas y salidas. Para poder recuperarse debe
haber redundancia de componentes (que permita redundancia de caminos). As,
por ejemplo, para recuperarse de un fallo del hardware de la interfaz debera
haber varias interfaces hardware; para poder recuperarse del fallo de algn
enlace o conmutador, la topologa debe ofrecer caminos alternativos
atravesando otros enlaces o conmutadores. Esta reconfiguracin puede suponer
la paralizacin temporal de las comunicaciones y la prdida de alguna
transferencia (que deberan reenviarse). Si el sistema de comunicacin tiene una
muy alta disponibilidad (tolerantes a fallos) se espera que las transferencias
generadas por el procesador lleguen a su destino, aunque falle algn
componente durante la transferencia.
Calidad de servicio (QoS, Quality of Service). Est relacionada diferentes
alternativas para asignar recursos a los mensajes o paquetes segn la poltica de
servicio que requieran. Los conflictos que surgen cuando dos mensajes quieren
utilizar a la vez el mismo recurso, se pueden resolver con diferentes alternativas.
Por ejemplo, se puede servir primero al que lleg en primer lugar, o se puede
servir primero al mensaje que lleva ms tiempo en la red. El sistema puede
garantizar, por ejemplo, un servicio ms rpido para cierto trfico, como el
multimedia.
Eficiencia (prestaciones/coste). El coste del sistema de comunicacin depende
del nmero y complejidad de los chips utilizados en su implementacin, y de la
densidad y longitud de las interconexiones entre estos chips (conexiones en las
tarjetas, dentro de un armario, entre armarios). La longitud de los enlaces
(distancia entre nodos) influye en la latencia, ancho de banda, y en el consumo
de potencia. Las distancias son mayores en conexiones entre diferentes armarios
(cabinets). Usando fibra ptica se puede equilibrar el ancho de banda de enlaces
cortos y largos hasta mayores distancias que con enlaces de cobre. Conforme se
incrementa en el sistema el nmero de procesadores, memorias, dispositivos de
E/S, se aumenta la complejidad del cableado de la red. La complejidad de las
conexiones est limitada por la densidad del cableado permitida (restricciones
fsicas) por las tecnologas utilizadas en la fabricacin (tecnologa de integracin
para el chip, tecnologa para tarjeta, etc.) y por el nmero mximo de pines
permitido en un chip por la tecnologa de encapsulado.
Hay otros factores que se tienen en cuenta al decidir la tecnologa comercial de red de
interconexin o sobre la interfaz de red apropiadas para un computador paralelo, y al
decidir sobre la red o interfaz a medida a disear para un sistema paralelo. Entre estos
factores se encuentran:

Divisibilidad. Posibilidad de dividir el sistema en subsistemas paralelos ms


pequeos. Los computadores paralelos usualmente se comparten por mltiples
usuarios. Es deseable que el trfico producido por un usuario no afecte a las
prestaciones de la aplicacin ejecutada por otro. Esto se puede conseguir si la
red de interconexin se puede dividir en subredes ms pequeas (y de igual
funcionalidad). Igualmente, esta divisin resulta de inters por razones de
seguridad.
Simplicidad. Un diseo sencillo puede proporcionar mayores prestaciones por
doble motivo. Por una parte, un diseo simple puede conducir a menores ciclos
de reloj, y por otra, permite que la red (o el sistema de comunicacin global) sea
ms fcil de comprender, por lo que resulta ms asequible explotar sus
prestaciones.
Carga de trabajo. Si se conoce la carga de trabajo que va a soportar el
computador paralelo, se podran extraer los esquemas de comunicacin usuales,
tamao de los mensajes, frecuencia de inyeccin de mensajes o paquetes, etc.
Esto permitira escoger un sistema de comunicacin cuyos parmetros se ajusten
a las caractersticas observadas en la carga de trabajo. Por ejemplo, si se sabe
que las prestaciones van a tener mucho clculo y poca comunicacin, se puede
utilizar una tecnologa de red barata con bajas prestaciones en latencia y ancho
de banda extremo-a-extremo (implementacin estndar para LAN), y nodos de
procesamiento (procesadores, memoria, buses) con altas prestaciones. Si la
comunicacin es frecuente y de tamao reducido, hay que buscar un sistema de
comunicacin con baja latencia y alto ancho de banda. En un cluster, por
ejemplo, se podra optar por tecnologa SAN, como QsNet o Myrinet, o
procurarse (si resulta suficiente) una buena interfaz software que baje la latencia
e incremente el ancho de banda para componentes LAN estndar con buen
ancho de banda. Si se utiliza frecuentemente difusin, se puede optar por una
implementacin de red con soporte hardware para difusin como, por ejemplo,
la red SAN QsNet.
Eficiencia (prestaciones/precio). El uso de componentes modulares disponibles
comercialmente en tiendas reduce el coste global del sistema. Tambin lo reduce
el uso de componentes disponibles comercialmente en niveles ms bajos como
a nivel de tarjeta o dentro de un chip. El mayor volumen de ventas permite que
el precio no sea directamente proporcional a las prestaciones.
FUNCIONALIDAD DEL SISTEMA DE COMUNICACIN. SERVICIOS DE COMUNICACIN
COLECTIVOS
Los sistemas de comunicacin ofrecen a niveles superiores facilidades para
implementar paso de mensajes, variables compartidas, o ambas posibilidades.
Utilizando como estilo de programacin paso de mensajes para la comunicacin de
datos entre procesos, el programador o herramienta de programacin generalmente
utiliza explcitamente funciones para paso de mensajes (send-receive) de bibliotecas o
API (Application Programming Interface) que garantizan la correcta comunicacin,
incluyendo la sincronizacin del proceso que recibe con el que enva. En este caso, la
comunicacin entre procesos se realiza en una fase. Con el estilo de programacin de
variables compartidas, la comunicacin de datos (de mensajes) entre procesos queda
oculto al programador en accesos a memoria de lectura y de escritura (load-store), el
hardware que se ocupa de controlar los accesos a memoria se encarga de realizar las
transferencias, a nivel de datos o a nivel de lneas de cach. En este caso, la
comunicacin entre procesos se realiza en dos fases: primero el proceso que enva
escribe el mensaje en una posicin de memoria, y despus, el proceso que recibe, lee
el mensaje de esa posicin de memoria. Para garantizar una correcta comunicacin (se
debe leer despus de escribir), el programador o la herramienta de programacin debe
utilizar explcitamente, adems de las instrucciones de acceso a memoria, funciones
para la sincronizacin del proceso que enva con el proceso que recibe.
Para implementar paso de mensajes entre procesos (computadores), el sistema de
comunicacin puede ofrecer funciones que permiten implementar la comunicacin
entre ellos en una fase, asegurando adems una correcta recepcin de datos en el
destino implementando adicionalmente sincronizacin. Se pueden ofrecer, por
ejemplo, transferencias uno-a-uno de datos sincronizando el proceso fuente y el
proceso destino entre s (citas o rendez-vous), o transferencias uno-a-uno de datos
sincronizando slo el destino con la fuente.
En el caso de variables compartidas, el sistema de comunicacin est relacionado con
el sistema de acceso a memoria. Implementa la comunicacin entre procesos o hebras
(procesadores) en dos fases: escritura en memoria y lectura de memoria, ambas
realizadas mediante instrucciones de acceso a memoria del procesador. Adems
debera ofrecer primitivas extra para implementar eficientemente la sincronizacin
(control de flujo) que se requiere para que la lectura sea posterior a la escritura y se
pueda implementar as, a niveles superiores, la comunicacin entre dos procesos. La
diferencia principal entre un multicomputador y un multiprocesador est en el estilo
de programacin ms eficiente teniendo en cuenta el hardware del sistema de
comunicacin.
Tambin hay bibliotecas a nivel de aplicacin que disponen de funciones que
implementan comunicaciones unilaterales (one-side) en las que o bien un proceso
enva un mensaje (escribe en un nodo remoto, put) o bien un proceso recibe un
mensaje (lee de un nodo remoto, get). Son funciones de biblioteca que implementan
acceso a memoria remota (RMA). Para garantizar la comunicacin efectiva entre
procesos, el orden de los accesos remotos (sincronizacin entre procesos) se debe
imponer explcitamente por el programador utilizando funciones de sincronizacin de
la biblioteca. Por ejemplo, MPI incluye comunicaciones parciales (MPI_PUT, MPI_GET),
al igual que Shmen (biblioteca implementada por Cray utilizada actualmente tambin
en otros sistemas). Estas funciones se implementan de forma directa en hardware con
memoria fsicamente compartida, de hecho se est imitando la comunicacin en
multiprocesadores. Podemos encontrar adems otros sistemas cuyo hardware
favorece la implementacin de primitivas put y get (por ejemplo, Sun Fire Link) e
incluso DMA para accesos remotos (RDMA) (por ejemplo, QsNet de Quadrics).

PROTOCOLOS DE COMUNICACIN
El proceso completo de paso de informacin entre dos procesos que se ejecutan en
procesadores diferentes, adems de la transmisin fsica en la red de comunicacin, implica una
serie de procedimientos a ejecutar tanto en el nodo emisor como en el receptor, procedimientos
que no podemos desdear, ya que bien pudiera ocurrir que la latencia de los mismos llegara a
superar a la de la propia transmisin fsica de los mensajes. Aunque no vamos a efectuar un
anlisis detallado de los protocolos implicados en esos procesos, vamos a acabar este captulo
haciendo un pequeo resumen de los mismos. Protocolos estndar en el mundo de las redes de
computadores, tales como TCP/IP, no resultan adecuados para los sistemas MPP (aunque se
usan en clusters de bajo nivel). La implementacin habitual de los mismos hace entrar en juego
al sistema operativo del nodo emisor, para efectuar una copia del mensaje a transmitir de la
memoria de usuario a la del propio sistema operativo. El mismo proceso se repite en el nodo
receptor.

El overhead aadido por estas intervenciones del sistema operativo puede ser aceptable si la
velocidad de transmisin es baja (100 Mb/s), pero no lo es cuando la velocidad es alta (10 Gb/s).
En los ltimos tiempos se han desarrollado protocolos ms eficientes para ser usados tanto en
sistemas MPP de diseo especfico como en clusters de procesadores. El objetivo de estos
protocolos es reducir al mximo el coste (tiempo) de generacin y recepcin de los paquetes
que transmite la red, para lo que se eliminan las copias en memoria del S.O. (protocolos de 0
copias) y se gestiona la generacin y la recepcin de paquetes de manera muy eficiente. Dos de
las alternativas ms conocidas son VIA (Virtual Interface Architecture) e InfiniBand. Las redes
comerciales estndar suelen traer implementados de forma nativa (ms rpido) estos
protocolos o los soportan mediante emulacin (ms lento). Adems de ello, en otros casos
Myrinet, por ejemplo se utilizan protocolos de comunicacin propios (GM).
Aunque hay un poco de todo, aparte de las redes de diseo especfico (propias de los sistemas
MPP de alta gama), las redes ms utilizadas en los clusters son Gigabit Ethernet por un lado,
barata pero de no muy alto rendimiento (por ejemplo, la latencia de paquetes pequeos con
MPI anda en torno a los 50 s o ms), e InfiniBand y Myrinet por otro (ms rpidas que la
primera, pero tambin ms caras). InfiniBand es una infraestructura y protocolo de
comunicaciones de alto rendimiento; la figura representa un nodo general de un sistema
paralelo que utiliza InfiniBand.

Los elementos que forman el nodo pueden ser muy variados: en el caso ms simple, un solo
procesador, y en el ms complejo, uno o varios sistemas paralelos (SMP), sitios especficos de
entrada/salida o de almacenamiento masivo de datos (RAID), etc. La comunicacin entre los
elementos que forman el nodo se realiza mediante conmutadores, mientras que la
comunicacin entre nos se realiza mediante encaminadores de mensajes. Myrinet es otro
referente en las redes de alta velocidad. Los nodos se conectan a la red mediante un NIC
(network interface card) de diseo especfico que ejecutan el protocolo de comunicacin (GM);
as, el procesador del nodo solamente ejecutar "clculo", y el de la tarjeta de comunicaciones
se encargar de todo lo relacionado con la comunicacin (adems, el usuario puede programar
las funciones de la tarjeta de comunicaciones, para adaptarla a necesidades concretas). En
general, los nodos se conectan en una red de Clos (fat tree), tal como la de la figura (64 nodos).
Los enlaces son de 10 + 10 Gb/s y la latencia de paquetes pequeos con MPI llega a estar por
debajo de los 2 s.
EVOLUCIN DE LOS COMPUTADORES
PARALELOS
Los intentos de utilizacin de paralelismo para mejorar la velocidad de clculo son tan antiguos
casi como la propia historia de los computadores. Los prototipos experimentales y las mquinas
comerciales han sido tan abundantes como a menudo efmeros. Comentaremos nada ms
algunos de los ms relevantes. Los primeros computadores paralelos fueron en gran medida
experimentos universitarios. Entre los pioneros, uno de los ms conocidos es el ILLIAC IV
(University of Illinois, 1968). Era una mquina de tipo SIMD, que explotaba el paralelismo de
datos. Tena 64 procesadores unidos en una red de caractersticas similares a las de un toro 2D.
Otras mquinas de xito con el mismo modelo de cmputo han sido el DAP (1980)
procesadores muy simples de 1 bit, conectados en una malla 2D, que admita hasta un mximo
terico de 16 k procesadores y los computadores de Thinking Machines CM-1 y CM-2 (1985)
una estructura similar a la anterior, pero formando hipercubos, hasta 64 k procesadores.
Pasando al modelo MIMD, entre los multiprocesadores de memoria compartida (SMP) est el
NYU Ultracomputer (New York Univ., 1983), que utilizaba como red de comunicacin una red
Omega. Otros ejemplos en la misma lnea son Balance (1985) y Symmetry (1990) 30
procesadores i386, ambos de la casa Sequent, o la BBN TC2000 (1989) 512 procesadores
MC88000. En ese tipo de sistemas la red de comunicacin ms habitual ha sido el bus o una
red multietapa. Aunque en todos los casos la intencin era utilizar un nmero elevado de
procesadores, en la realidad se limitaron siempre a un nmero reducido; sin embargo, la
experiencia acumulada con el diseo y el uso de ese tipo de mquinas ha hecho que hoy en da
casi todos los sistemas monoprocesador sean en realidad pequeos multiprocesadores de 2-
4 procesadores conectados en un bus comn. Los sistemas multicomputador (MPP) han seguido
una evolucin similar. Una de las primeras mquinas de este tipo fue el Cosmic Cube con
intencin de unir en un hipercubo de 6 dimensiones 64 procesadores i8086, con comunicacin
SF, diseado en los laboratorios de CalTech en 1980. A partir de esa mquina evolucionaron
posteriormente las mquinas de la familia iPSC (Intel Personal SuperComputer): los hipercubos
iPSC1 e iPSC2 (este ltimo, con conmutacin de circuitos). La ltima versin de esa serie,
Paragon, permite conectar hasta .048 procesadores i860 en una malla de 2 dimensiones (varias
versiones de esa mquina, con 540 procesadores, funcionaron con gran xito). Aunque lo
habitual es que todas estas mquinas tengan su origen en los Estados Unidos, tambin ha habido
desarrollos equivalentes en Europa. El ms conocido, sin duda es el SuperNode de Parsys,
basado en procesadores Transputer (1985 - 1990). El desarrollo de este tipo de arquitecturas es
cada vez mayor: el T3D de CRAY (un toro de 3 dimensiones, con 128 - 2048 procesadores Alpha,
4 canales virtuales, WH), el SP2 de IBM (128 procesadores en una red multietapa), el SPPA de
Convex y el VPP500 de Fujitsu (usando un crossbar), la J-Machine MIT, la CM-5 de Thinking
Machines..., y las mquinas de la serie ASCII, con las que se logr por vez primera una velocidad
de clculo de 1 Teraflop/s. Muchos de estos ejemplos han tenido una vida comercial de cierto
xito, aunque ya no estn en vigor. En los ltimos aos han aparecido supercomputadores como
el Earth Simulator o el Blue Gene, que han conseguido velocidades de clculo enormes (en estos
momentos por encima de los 200 TF/s). Por su parte, entre las arquitecturas de memoria
compartida distribuida podemos citar el DASH de Stanford (en su primera versin, 64 MIPS
RS3000). El esquema de conexin es jerrquico, en 16 grupos de 4 procesadores. Dentro de cada
grupo, los 4 procesadores se conectan en un bus comn, y los grupos se conectan formando una
malla 2D. Este tipo de mquina evolucion posteriormente hacia las mquinas de la serie Origin,
que analizaremos en el prximo captulo. En lo que a la topologa del sistema se refiere, las
ltimas mquinas son todas mallas, toros o rboles; por ejemplo, el Cray XT3 (30508 pr.) o el
IBM Blue Gene/L (65536 2 pr.) son toros de tres dimensiones, y el Thunder de Intel (1024 4
pr.) o el IBM ASC Purple (1280 8 pr.) son rboles hechos mediante conmutadores de ocho
puertos. No podemos dejar de lado las arquitecturas con ms empuje, los clusters, tanto los de
alto nivel Roadrunner, Mare Nostrum..., como los ms modestos, habituales ya en los
centros de clculo de universidades, laboratorios y empresas, debido a su buena relacin
coste/eficiencia, formados por un nmero relativamente alto de nodos de cmputo (64 1024)
unidos por algn tipo de red de comunicacin de alto rendimiento (InfiniBand, Myrinet,
Quadrics) o simplemente por Gigabit Ethernet. Es habitual agrupar el desarrollo de las mquinas
paralelas en generaciones; estaramos en la tercera (con los clusters, tal vez en la cuarta)
generacin de las mismas. Inicialmente se utiliz store-and-forward e hipercubos, pero hoy en
da se han impuesto tanto wormhole/cut-through como las topologas en malla, toro, rboles y
similares. Es cada vez ms difcil hacer una clasificacin clara y sencilla de estas mquinas, ya
que en muchos casos utilizan caractersticas de varios tipos para conseguir la mayor eficiencia
posible (en muchos casos, estructuras jerrquicas que utilizan diferentes modelos en cada nivel
de la jerarqua). Por otra parte, se han establecido ya dos estndares de facto para programar
estos sistemas paralelos. Por un lado, OpenMP, para el caso de aplicaciones de memoria
compartida; y, por otra parte, MPI, para la programacin de aplicaciones mediante paso de
mensajes. Igualmente, cada vez estn ms desarrolladas herramientas complementarias para la
gestin de estos sistemas que permiten observar la mquina como una unidad, efectuar
debugging, profiling, etc. En el ltimo captulo haremos un breve resumen de las mquinas
paralelas ms rpidas del mundo y la evolucin de las mismas, as como de las herramientas
para programar aplicaciones paralelas.