Se puede hacer un superordenador con sólo conectar PC’s con cables cruzados de ethernet?

Un superordenador debería tener dos propiedades:

  1. Puede manejar problemas más grandes que un ordenador ordinario
  2. El rendimiento puede escalar a medida que se incrementa el presupuesto

Incluso unos pocos PCs atados entre sí podría tener esa primera propiedad. Sin embargo, escalar significaría permitir interconectar un número razonablemente grande de PCs.

No es práctico tener más de unas cinco interfaces Ethernet en cada PC, así que la pregunta se convierte en «¿cuántas máquinas puedes interconectar?» Pues bien, si se conecta literalmente cada PC a todos los demás, se tiene lo que llamaríamos una red directa o totalmente conectada… y las cinco interfaces por máquina significarían escalar a no más de seis PC:

main-qimg-52d8039eca35cb8cadc9ad464eb1294c.webp

En febrero de 1994, cuando mi grupo de investigación construyó el primer superordenador clúster de PCs Linux del mundo, cuatro PCs conectados por Ethernet realmente se calificaban como un superordenador paralelo. Sin embargo, ha pasado mucho tiempo desde que cuatro -o incluso seis- PCs fueron suficiente escala para justificar que un sistema se llamara superordenador.

Por supuesto, hay otras topologías (patrones de cableado) que pueden escalar utilizando sólo unas pocas interfaces por PC y cables cruzados. Por ejemplo, una malla toroidal 1D -un anillo- puede escalar para conectar muchas máquinas:

main-qimg-96051720371626235393fedd03bafaa6.webp

El inconveniente es que obtendrá un rendimiento pésimo porque se necesitan varios saltos para ir de una máquina a la mayoría de las demás y el tráfico entre varios pares tendría que compartir muchas de las mismas rutas de cable. Técnicamente, tendrías una alta latencia (retraso en el envío de un mensaje) y un bajo ancho de banda de bisección (ancho de banda entre pares de PCs cuando todos los PCs se están comunicando). Puede hacerlo mejor con una topología como una malla 2D:

main-qimg-944fad6cf19c11968926890373621e8a.webp

El problema con estas topologías de sólo cables cruzados es que la latencia y el ancho de banda de bisección siguen sin ser muy buenos a medida que se escala a sistemas más grandes.

Por lo tanto, la respuesta moderna es utilizar conmutadores en la construcción de su topología de red. Un conmutador permite que todas las máquinas conectadas a él hablen simultáneamente con una latencia mínima y un gran ancho de banda de bisección. El gran número de puertos de un conmutador significa que se pueden construir topologías con las que se puede cubrir un número mucho mayor de PC con baja latencia y alto ancho de banda de bisección.

Son posibles muchas topologías de red con conmutadores. Por ejemplo, aquí se muestra una pequeña red de vecindario plana (FNN) que puede enlazar ocho PCs utilizando sólo tres interfaces por PC y conmutadores con sólo cuatro puertos cada uno:

main-qimg-9665e9e7e99582837b6c447aead8b62f.webp

El uso de este tipo de red con conmutadores Ethernet básicos (que suelen tener 32 o más puertos cada uno) permite escalar hasta al menos cientos de PCs, al tiempo que ofrece un ancho de banda de bisección muy alto y una latencia de sólo un salto de conmutación entre cualquier par de PCs. Otras topologías, como las redes de vecindario planas y dispersas (SFNN), permiten escalar hasta muchos miles de ordenadores manteniendo un rendimiento de red similar. Por ejemplo, KASY0 fue el primer superordenador SFNN del mundo y utilizó conmutadores Ethernet de 24 puertos para construir una red de alto rendimiento que interconectaba 128 nodos de PC:

main-qimg-1bbdb3bf47cd00de09c81f65bbff7394

KASY0 era una máquina bastante grande cuando mi grupo de investigación la construyó en 2003. Los mayores superordenadores tienen ahora literalmente millones de nodos… por lo que conectar directamente seis PC ya no es realmente supercomputación 😉