Professional Documents
Culture Documents
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).
CE CE
Conmutador
Interno
CE CE
CE CE
Encaminador
+
Arbitraje
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.
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.
Controlador Controlador
de enlace de enlace
Canal
Estructura de un canal
Enlace largo
Conmutador Conmutador
phit
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
0,1
0,01
0,001
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
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.
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.
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.