Por Nicolás Wolovick (Doctor en Ciencias de la Computación – UNC)
Centro de Computación de Alto Desempeño,
Universidad Nacional de Córdoba.
https://ccad.unc.edu.ar
En febrero recibimos a Serafín, nuestra nueva supercomputadora. Fueron 850 Kg de cajas, valuadas en 371.784 dólares estadounidenses. Estas cajas viajaron de California a Miami, ambos en EEUU, y luego a Santiago de Chile para llegar en camión a la Aduana del Aeropuerto de Córdoba.
Surgen algunas preguntas ¿Por qué tanta plata? ¿Por qué tanto peso? ¿Qué computadora podés comprar por un tercio de millón de dólares? ¿A cuántas PC equivale?
Empecemos por ver que tenían las cajas.
Lo primero de todo son las zapatillas para conectar las compus, iguales a las de la Foto 1. Nosotros les llamamos PDUs, por power distribution units.
Cada una de estas zapas sale 300 dolaricos. ¡Te están choreando! me podría decir algún alumno acá en Córdoba. Pero hay que tener en cuenta que son zapatillas de 24 conectores, se aguantan 32 amperes que es un montón, están probadísimas, y cuentan las historias que cuando prendieron la primera supercomputadora del CCAD, que se llamó Cristina, al principio todo estuvo bien, pero cuando la pusieron a correr las pruebas, las zapatillas volaron por los aires. Por suerte nada se rompió, salvo las pobres zapatillas. No estaban homologadas, le pusieron un poco de carga y los cables internos que eran demasiado finitos se calentaron y fundieron, ¡bum!
Ah, estas zapatillas no van en el piso, sino al costadito de racks, unos armarios especiales para computadoras. En la Foto 2 se lo vé a Marcos Mazzini inspeccionando uno de los 7 racks que tenemos para instalar computadoras dentro del UNC Data Center.
El gran peso y también mucha de la inversión están en 15 de estas cajotas que aparecen en la Foto 3. Pesan unos 40 Kg y valen 25.000 dólares cada una. Estas son las computadoras que calculan. Lo raro es que no compramos 15 computadoras por 300.000 dólares, compramos más, bastantes más. Cada chasis, así los llamamos, tiene 4 computadoras, o sea que en total son 60 computadoras. ¡Estamos mejorando la inversión! Pero es más interesante aún, porque cada una de estas computadoras tiene una placa madre o motherboard, que permite poner 2 procesadores como se muestra en la Foto 4.
Los procesadores van dentro de los enchufes o sockets que están al medio de las 4+4 rendijas azules que son para la RAM.
Bueno, según llevo la cuenta vamos 15⨉4⨉2 = 120 procesadores. Pero como dicen las vendedoras y vendedores de los colectivos «Pero como si todo esto fuera poco …», cada procesador es un AMD EPYC 7532 como el que está en la Foto 5.
Este procesador tiene internamente 32 núcleos o cores de procesamiento. Cof cof cof, la cuenta total entonces es 15⨉4⨉2⨉32 = 3840 núcleos.
Si pensamos que una PC moderna tiene 6 núcleos y 8 GiB de RAM, tenemos una computadora que es 640 veces más potente. Pero … ¿cuánto saldrían 640 PCs? Las comparaciones son odiosas o tal vez, necesarias. A más o menos 300 dólares por PC, tenemos 192.000 dólares. ¿De nuevo te chorearon Nico? Esperen un poco y les cuento porque en realidad es al revés: obtuvimos un preciazo. Pero antes tengo que decirles cómo se unen en red las 60 computadoras, así que vamos con eso.
Para interconectar las computadoras necesitamos, placas de red o NICs, un switch y 30 cables de red como los de la Foto 6, fijate que son la mitad de cables porque son bífidos, o sea tienen dos puntas.
Muy livianito todo, pero caro, ¡carísimo! Cada placa de red sale 800 dólares, cada cable 250 dólares, y el switch 24.000 dólares.
«¡Nico, ahora si te están robando mal!» pará pará pará. No me peguen … aún, porque acá está la salsa secreta.
La cosa es así. Si tengo 640 PCs y las tengo que unir, porque ese es el chiste, sumar todo el poder de cálculo y la memoria RAM, eso implica meter 640 cables Ethernet, una docena de switches, pero aun así no llego ni a palos a toda la plata que gastamos en interconectarlas.
Me pongo un poco filosófico y me pregunto ¿Para qué sirven 60 computadoras si no las puedo poner todas juntas a resolver un solo problema? Y acá está la clave. Quiero poder usar Serafín completo para hacer ¡una! simulación de galaxias con muchísimos cuerpos celestes, o más aún, quiero simular interacción entre varias galaxias, cada una de ellas con miles de millones de cuerpos celestes. Estas simulaciones se suelen hacer con 2048³ cuerpos celestes, eso es 8.589.934.592 de «cositas» adentro de la RAM de Serafín que interactúan todas contra todas. Con una sola máquina no puedo, porque 1) no me entra en la RAM y 2) porque aun si entrara tardaría años de simulación y ¡necesito saber si mi teoría es falsa o aún tienen posibilidades de ser verdadera mientras esté vivo!
«Nico, lo primero te lo creo, pero me estás mintiendo con lo segundo, ¡tenemos exactamente la misma cantidad de núcleos en total!».
Voy a intentar, con un ejemplo, mostrar que pasa cuando conectás muchas calculadores/as rápidas a través de una comunicación lenta.
Sumando números entre varias/os/es
Queremos sumar 32 números entre 4 personas. Sumar cada número toma 1 segundo. Comunicarse al lado, a unos 15 metros de distancia, tarda 10 segundos. Son 8 segundos de cálculo simultáneo y 3⨉(10+1)=33 de comunicación y suma lateral, para un total de 41 segundos.
Veamos qué pasa con 1024 números y mucha mucha gente, tantos como queramos, pero separados 15 mts de manera lineal.
- Una sola persona tarda 1024 segundos.
- Con 2 personas se tardan 512 segundos en sumar cada mitad simultáneamente y 11 segundos más en comunicar y sumar lateralmente, con un total de 523 segundos.
- Con 4 personas tardan 256 segundos en sumar cada parte simultáneamente y 33 segundos más en comunicar y sumar lateralmente. En total son 289 segundos.
Mejora, pero empezamos a ver que el tiempo de comunicación empieza a molestar.
- Con 8 personas tenemos 128 segundos en sumar cada parte, y 77 segundos de comunicación y suma lateral, para un total de 205 segundos.
Mejora, pero cada vez menos …
- Con 16 personas tenemos 64 segundos en sumar cada parte y 165 segundos de comunicación y suma lateral. Acá sonamos, ya la comunicación tarda más que la suma. Esto hace que el tiempo total empiece a aumentar y sean 229 segundos. Si, si y si. Era mejor quedarse en 8 personas, porque con 16 tengo que molestar al doble y a final tardo más.
- Si seguimos agregando personas, y llegamos a 512, cada una tienen una pequeña lista de dos números que tardan 2 segundos en sumar simultáneamente, pero la comunicación que crece y crece ya toma 11⨉511=5621 segundos y en total tardan 5623 segundos. Je, la estamos pifiando feo, porque ya todo el tiempo es comunicación y casi nada es suma.
Con el ejemplo anterior queremos mostrar que la velocidad de comunicación es fundamental para hacer las cosas colaborativamente y rápido entre todas las computadoras.
Y entonces ¿a cuántas PC equivale Serafín?
Bueno, en realidad es una pregunta que no tiene sentido.
Primero, cada una de las 60 computadoras que componen Serafín tiene 32+32 núcleos, o sea son un poquito más de 10 PC, todas en una, sin necesidad de red. Es una computadora densa, 10 veces más densa que una PC.
Segundo, las 60 computadoras están conectadas con una red de alta velocidad, 100 veces más rápida que la red Ethernet cableada de PC.
La combinación de computadoras densas y red de alta velocidad, hace que estos 850 Kg de materiales que le costaron a la UNC 371.784 dólares, sea muchísimo más que 640 PCs, porque permiten calcular un solo problema entre todas las computadoras que le sumemos.
En el caso ideal si un problema tarda 30 horas de cálculo en una computadora de Serafín, con 30 computadoras tardará 1 hora y si ponemos todas a funcionar tardará solo 30 minutos.
Para las 640 PCs conectadas por Ethernet, eso sería sencillamente eterno, la comunicación se come el cálculo y todo avanza pero super super lento.
De 30 horas a 30 minutos, es decir 60 veces más rápido, para resolver un problema que se traduce en mejores resultados y por lo tanto en una mejor ciencia para el país. Eso es Serafín.
Toda la información la podés encontrar acá.
Leé nuestro blog.