2 Redes de interconexión fija
4.4 Evaluación, Ethernet
4.4.1 Análisis del ping-pong
Para un primer análisis, se utilizaron tarjetas de comunicación de 1 Gb/s, y un switch de 100 Mb/s.
Se utilizo la herramienta de intel y desde la línea de comando:
C:\Program Files (x86)\Intel\MPI\4.0.1.007\em64t\bin\imb-mpi1.exe pingpong
Para el número de bytes especificado menor a 64, el protocolo transmite de hecho 72 bytes de los cuales 46 son o datos, o relleno. Los valores reportados para 0, 1,
2, …, 32 bytes son por lo tanto extrapolaciones del tiempo de transmisión
requerido si pudiéramos transmitir esa cantidad de bytes.
Ahora bien, 72 bytes equivalen a 720 bits por codificación. Cada bit requiere 1/100x106=10 ns. Los 720 bits requieren, por lo tanto, 7.2 us para su transmisión. Podemos hacer la siguiente tabla (tabla 4.1):
110 Tabla 4. 1 Análisis del ping-pong (1)
Parece razonable considerar los primeros 7 valores de la diferencia entre el tiempo total y tiempo de datos como la latencia de comunicación. Esta latencia no es constante (configuración del switch y tiempos de acceso de las tarjetas de comunicación dependen del tiempo de ejecución del software que no es predecible en términos absolutos). El valor medio de la latencia sería, entonces, TL=1/7(150.4 + 222.7 + … + 226.3) = 1487.4/7 = 212.5 us
Para campos de datos mayores a 1024 bytes, el protocolo divide el total en datagramas de longitud igual o menor a 1500 bytes. Evidentemente, la latencia se aplica únicamente al primer datagrama, en virtud de que el direccionamiento para
bytes
totales tiempo (us) tiempo reportado diferencia 0 26 2.6 153.0 + 150.4 1 27 2.7 225.5 + 222.7 2 28 2.8 225.4 + 222.6 4 30 3.0 223.2 + 220.2 8 34 3.4 232.7 + 229.3 16 42 4.2 220.1 + 215.9 32 58 5.8 232.1 + 226.3 64 90 9.0 231.5 + 222.5 128 154 15.4 243.8 + 228.4 256 282 28.2 266.3 + 238.1 512 538 53.8 314.3 + 260.5 1,024 1050 105.0 398.2 + 293.2 2,048 2074 207.4 531.4 + 324.0 4,096 4,122 412.2 709.6 + 297.4 8,192 8,218 821.8 970.0 + 148.2 16,384 16,410 1,641.0 1,653.4 + 12.4 32,768 32,794 3,279.4 3,038.1 - 241.3 65,536 65,562 6,556.2 5,821.6 - 734.6 131,072 131,098 13,209.8 11,389.1 - 1,820.7 262,144 262,170 26,217.0 22,507.3 - 3,709.7 524,288 524,314 52,431.4 45,000.1 - 7,431.3 1,048,576 1,048,602 104,860.2 89,492.0 - 15,368.2 2,097,152 2,097,178 209,717.8 178,516.8 - 31,201.0 4,194,304 4,194,330 419,433.0 356,468.5 - 62,964.5
111
los subsecuentes no cambia. Sin embargo, entre datagramas se insertan 12 bytes de relleno, con lo cual el tiempo teórico se incrementaría.
Obsérvese que el tiempo teórico es mayor que el reportado para datos de más de 32 KBytes. Esto es inconsistente con las especificaciones del sistema, que incluye un switch de 100 Mb/s (10 MB/s).
El ancho de banda reportado para 32 KBytes es de 10.29 MB/s y crece para valores mayores de datos.
La única explicación razonable es que, para la configuración utilizada (tarjetas de comunicación de 1 Gb/s y un switch de 100 Mb/s), el protocolo analizado no es aplicable.
Nótese que para velocidades de 1Gb/s y mayores, Ethernet no especifica la cantidad máxima de bytes por datagrama y otros parámetros, sino recurre al estándar Fibre Channel. Dicho estándar utiliza el término “marco” (frame) como
unidad de información, conformada como sigue: SOF (start of frame) 4 byte Encabezado del marco 24 bytes CRC (cyclic redundancy check) 4 bytes EOF (end of frame) 4 bytes Total: 36 bytes más n bytes de datos, con 0 n 2112 bytes
Esto es, un marco contiene entre 36 bytes y 2148 bytes.
Una diferencia crucial entre los estándares Ethernet y Fibre Channel consiste en el hecho de que, para transmisión punto a punto de mensajes largos, la fragmentación de estos mensajes en marcos de 2112 bytes implica que el encabezado del marco se incluye únicamente en el primero. Los subsecuentes contienen solamente los campos SOF, CRC y EOF para un total de 12 bytes de control, más el campo de datos de hasta 2112 bytes. De aquí se obtiene una eficiencia de (2112/2124) x100 = 99.44%.
Parece, entonces, que dadas las tarjetas de comunicación Gigabit, el protocolo utilizado fue el de fibre channel, a pesar de la utilización de un switch de 100 Mb/s.
112
A continuación se presenta el análisis anterior para una configuración que incluye tarjetas de comunicación de 1 Gigabit, y un switch de las mismas características. Para el análisis, se utiliza el estándar fibre channel.
En la tabla 4.2 se muestran, los bytes totales que se calcularon como sigue: (datos) + 36 + 12(cuadros-1), donde se consideró que cada cuadro lleva, a lo más, 2048 bytes de datos.
El tiempo de transmisión teórico considerado es de 1 ns/bit = 0.01 us/byte en virtud de que fibre channel utiliza la misma codificación de 10 bits por byte que Ethernet.
bytes de
datos cuadros bytes totales tiempo (us) tiempo reportado diferencia ancho de banda 0 1 36 0.36 58.44 58.08 0.00 1 1 37 0.37 56.94 56.57 0.02 2 1 38 0.38 55.07 54.69 0.03 4 1 40 0.40 56.50 56.10 0.07 8 1 44 0.44 55.57 55.13 0.14 16 1 52 0.52 60.19 59.67 0.25 32 1 68 0.68 55.19 54.51 0.55 64 1 102 1.00 71.04 70.04 0.86 128 1 164 1.64 90.53 88.89 1.35 256 1 292 2.92 58.93 56.01 4.14 512 1 548 5.48 86.41 80.93 5.65 1,024 1 1060 10.60 80.07 69.47 12.20 2,048 1 2084 20.84 138.33 117.49 14.12 4,096 2 4,144 41.44 215.09 173.65 18.16 8,192 4 8,264 82.64 226.76 144.12 34.45 16,384 8 16,512 165.12 333.59 168.47 46.84 32,768 16 32,984 329.84 579.31 249.47 53.94 65,536 32 65,944 659.44 845.91 186.47 73.89 131,072 64 131,864 1,318.64 1,636.23 317.59 76.40 262,144 128 263,704 2,637.04 2,850.05 213.01 87.72 524,288 256 527,384 5,273.84 6,234.37 960.53 80.20 1,048,576 512 1,054,744 10,547.44 12,191.21 1,643.77 82.03 2,097,152 1,024 2,109,464 21,094.64 23,857.64 2,763.00 83.83 4,194,304 2,048 4,218,904 42,006.94 50,535.91 8,528.97 79.15
113
De la tabla 4.2 se desprende que la latencia, considerando el promedio de los primeros 7 valores de la diferencia entre el tiempo reportado y el valor teórico del tiempo de transmisión del total de bytes, es de 56.8 us.
En virtud de que las tarjetas de comunicación son las mismas que para el caso anterior, la reducción de 212.5 us a 56.8 us se debe al cambio del switch.
Es interesante analizar los valores reportados para el ancho de banda de la comunicación (expresado en MB/s). El valor máximo posible para el esquema a un Gb/s es, evidentemente, 100 MB/s.
El ancho de banda máximo reportado es de 87.72 MB/s para 0.25 MB de datos. Anchos de banda del orden de los 80 MB/s se obtienen solamente para archivos grandes. Para archivos pequeños, el ancho de banda se reduce dramáticamente, por ejemplo, a 14.2 MB/s para 2 KB de datos (aproximadamente 1 marco, o
“frame”, de datos). Ello ilustra la importancia de la latencia como factor limitante en
la comunicación para aplicaciones de cómputo paralelo, aplicaciones en las cuales el intercambio de datos de control, de pocos bytes, ocurre con frecuencia.
Por otra parte, el no obtener anchos de banda cercanos a los valores especificados para las componentes del sistema, es explicable por los siguientes factores:
1.- El protocolo Ethernet exige que el archivo a transmitir sea copiado, primero, a un buffer en memoria y luego transferido a la tarjeta de comunicación para su transmisión. El nodo receptor, a su vez, transfiere los datos recibidos a un buffer en memoria, y de ahí a la dirección destino en memoria principal. Esto es, el archivo a transmitir es copiado 4 veces antes y después de ser enviado. Aunque estas copias pueden efectuarse a velocidades de DMA (Direct Memory Access), el proceso requiere tiempo. Nótese que a velocidades de 1 Gb/s o más, el protocolo Ethernet sigue controlando las capas 3 y superiores del modelo OSI. Únicamente las capas 1 y 2 del modelo obedecen, ahora, al estándar fibre channel. Este último respeta, sin embargo, la filosofía de la capa 2 de Ethernet en lo que al uso de los buffers de datos se refiere, aunque éstos pueden ser, ahora, de mayor capacidad (hasta 216 - 256 bytes, donde estos
últimos están destinados a funciones de control).
2.- La comunicación entre los componentes tarjeta de comunicación – switch –
tarjeta de comunicación requiere la sincronización de las mismas para cada cuadro (frame), en virtud de que su operación es asíncrona. Los tiempos involucrados (cantidad de ciclos de reloj) dependen del diseño de estos componentes y sus valores no son fácilmente obtenibles.
114