Reentrada atmosférica en Marte de la cápsula que transportaba el rover Perseverance, previsiones meteorológicas, simulación numérica de crash de automóvil, cálculo de las prestaciones aerodinámicas de un avión... Toda simulación numérica comienza por una fase de modelización —física, mecánica, biológica u otra— que, por lo general, conduce a complejas ecuaciones matemáticas. Salvo en casos didácticos, resolver estas ecuaciones «a mano» resulta imposible, por lo que hay que recurrir a algoritmos de resolución numérica, que a su vez recurren a métodos matemáticos. Así, un cálculo de aerodinámica externa en torno a un automóvil exige resolver, en cada instante, un sistema formado por millones de ecuaciones, lo que requiere horas de cálculo incluso en una máquina potente.
El cálculo de alto rendimiento -----------------------------
A comienzos de la década de 2000, el cálculo de alto rendimiento (o HPC, por high performance computing), también llamado cálculo intensivo, seguía reservado a unos pocos centros nacionales de investigación o a grandes empresas. Por entonces, un «superordenador» era siempre una máquina virtual formada por cientos de máquinas —llamadas nodos de cálculo— conectadas entre sí mediante una red muy rápida. Naturalmente, un sistema informático de este tipo resulta muy costoso: desde la inversión inicial hasta las necesidades permanentes de mantenimiento, pasando por los sistemas de refrigeración. La simulación numérica se reparte entonces entre los distintos procesadores de los nodos de cálculo. Se habla de cálculo paralelo.
Durante los últimos veinte años, el rendimiento de los procesadores —CPU, sigla de central processing units— y las capacidades de memoria han mejorado considerablemente, haciendo que nuestros ordenadores personales sean ya mucho más potentes. Hoy en día, una CPU puede estar formada por varios núcleos de cálculo —típicamente cuatro, ocho, dieciséis o incluso veinte—, y cada núcleo puede alcanzar una potencia de 10 GFlops (diez mil millones de operaciones en coma flotante por segundo). Por tanto, con una CPU de veinte núcleos se puede alcanzar una potencia teórica, ya impresionante, de 200 GFlops —sin contar los efectos de caché, latencia y transferencia de datos, y suponiendo una distribución ideal de las operaciones entre los distintos núcleos—.