Arquitectura

PROTEUS es un cluster de nodos con procesadores x86_64 Intel Xeon conectados entre ellos por una doble red de comunicaciones (1GbE e Infiniband FDR). También dispone de 2 tarjetas gráficas Tesla de NVIDIA para GPGPU. Como almacenamiento, cuenta con un sistema de archivos distribuido Ceph para almacenamiento general y con uno basado en Lustre para las aplicaciones que requieran de un mayor ancho de banda.

Familias de procesadores

La composición actual de PROTEUS es el fruto de una serie de ampliaciones y mejoras. Los nuevos nodos se han ido añadiendo a los que ya había, procurando que puedan coexistir sin problemas.

Actualmente, contamos con las siguientes familias de procesadores (etiquetadas con los apodos que les hemos asignado)

ApodoArquitectura (modelo)#Nodos#Cores/NodoRAM GBAño
ArtemisClovertown (E5345)10842007
CalypsoHapertown (E5410)51882008
KratosWestmere (X5690)4212482012
Hermes v1Haswell (E5-2660 v3)1320642015
Hermes v2Broadwell (E5-2640 v4)420642015
Metis v1Skylake (Gold 6132)828962019
Metis v2Cascadelake (Gold 6226)4024962019

También contamos con dos nodos con una mayor cantidad de memoria, para las aplicaciones que así lo necesiten:

ApodoArquitectura (modelo)#Nodos#Cores/NodoRAM GBAño
Hermes00Haswell (E5-2698 v3)1322562015
Metis00Cascadelake (Gold 6226)1243862019

Comparativa de rendimiento

Estas distintas familias tienen un rendimiento muy diferente. Un mismo programa puede tardar distintos tiempos en completarse según el nodo en que corra. Para ayudar a la estimación del tiempo de ejecución se ha realizado una comparativa de la potencia de cálculo de las CPUs de cada familia.

La potencia de cálculo de un sistema se suele medir en FLOPS (Floating Point Operations per Second), esto es el número de operaciones en coma flotante por segundo, normalmente en doble precisión. Esta medida es independiente del conjunto de instrucciones de la CPU y sirve para comparar sistemas con arquitecturas distintas. La potencia de cálculo de los procesadores actuales permiten tasas de miles de millones de operaciones por segundo, por lo que se suele usar el múltiplo GFLOPS.

Potencia máxima teórica

Podemos calcular la potencia de cálculo teórica de una CPU si conocemos los detalles de su arquitectura. Este valor se conoce como máximo teórico o Rpeak. La forma más simple de calcularlo es multiplicar el número de núcleos por su frecuencia y por el máximo número de instrucciones en coma flotante de doble precisión que es capaz de realizar por ciclo. Así, para un nodo, la expresión sería:

Rpeak (GFLOPS) = #sockets · #cores/socket · GHz · #ops/ciclo

No obstante, este es el límite superior teórico y es muy improbable que se alcance en situaciones reales. El máximo teórico nos sirve para poder saber en qué grado estamos aprovechando el potencial de la CPU.

Pruebas de rendimiento (benchmarks)

Las pruebas de rendimiento son programas creados para conocer las características de un sistema informático. Las hay de muchos tipos y pueden medir distintos aspectos de la máquina, como el sistema de almacenamiento, ancho de banda a memoria, procesamiento gráfico, etc. o el conjunto del sistema.

En este entorno de computación científica, los aspectos más relevantes son la potencia de cálculo de la CPU y el ancho de banda a memoria principal. Para evaluar estos componentes se han empleado dos benchmarks ampliamente utilizados en entornos HPC: Linpack y HPCG.

Linpack es una librería que resuelve problemas de algebra lineal. Ha sido muy utilizada como benchmark de CPU. HPL (High Performance Linpack) es una versión paralela y optimizada de la misma que se usa para medir el rendimiento de los supercomputadores que aparecen en la lista del TOP500.

HPCG (high performance conjugate gradient) es un nuevo benchmark, también usado en supercomputadores, creado con la intención de modelar el acceso real que hacen los programas a memoria principal. Los accesos a memoria suelen hacer de cuello de botella por lo que este benchmark optiene solo una fracción de la potencia bruta de la CPU. Complemente a Linpack, el cual hace un uso más intensivo del procesador.

Resultados

En las siguiente tablas se muestran los resultados obtenidos al calcular el máximo teórico y al evaluar los nodos mediante los benchmarks Linpack y HPCG. Se han realizado dos evaluaciones: en una se ha empleado un único núcleo y en la otra todos los núcleos que contiene el nodo.

Máximo teórico – Rpeak (GFLOPS)

Calculado con la formula de más arriba y teniendo en cuenta que el número de operaciones por ciclo para cada arquitectura (4, 16 o 32), obtenemos los siguientes Rpeaks:

ApodoNúcleo únicoNodo Completo
Artemis9,3274,56
Calypso9,3274,56
Kratos13,88166,56
Hermes v141,6832
Hermes v238,4768
Metis v183,22329,6
Metis v286,42073,6

Linpack

Se ha usado la versión de HPL ofrecida por Intel, la cual está especialmente optimizada para sus procesadores. Las pruebas se han hecho utilizando un único núcleo y con todos los disponibles en el sistema. También, para aquellas CPUs que soportan TurboBoost, se han recogido los resultados con esta opción activa y desactivada.

ApodoNúcleo único%No Turbo%Nodo Completo%
Artemis8,4490,550,4167,6
Calypso8,8795,166.0988,6
Kratos14,09102,513,395,8151,691
Hermes v142,68109,738,9993,7671,280,6
Hermes v2
Metis v1
Metis v21534,5174

HPCG

ApodoNúcleo único%No Turbo%Nodo Completo%
Artemis
Calypso
Kratos
Hermes v1
Hermes v2
Metis v1
Metis v2

Conociendo estos datos, se puede estimar la velocidad relativa para programas secuenciales y paralelos.