Manual de uso

⌘K
  1. Inicio
  2. Documentos
  3. Manual de uso
  4. 5. Especificaciones Hardw...
  5. Comparativa de rendimiento

Comparativa de rendimiento

Definiciones previas

_

Rendimiento teórico

El rendimiento teórico o rendimiento pico hace referencia a la potencia máxima de procesamiento que sería capaz de proporcionar una CPU o sistema en un entorno de funcionamiento ideal, donde todos sus componentes funcionaran al máximo de sus especificaciones.

Como indica el nombre, se trata de una medida teórica que no se puede obtener en situaciones reales debido, entre otras razones, por el cuello de botella entre la velocidad del procesador y la memoria, y la dependencia de datos.

La manera de determinar el rendimiento pico de un sistema es muy simple. Como ya se ha comentado, solo hay que tener en cuenta las especificaciones técnicas del procesador, en concreto su frecuencia de funcionamiento y el número de operaciones que es capaz de finalizar por ciclo (arquitecturas superescalares, operaciones vectoriales, etc):

Rpeak = nº total de cores cores · frecuencia · número de operaciones por ciclo

Rendimiento empírico

Con el fin de obtener unos datos más cercanos a la realidad, se suelen utilizar una serie de pruebas de rendimiento o benchmarks. Existen una gran cantidad de tipos de benchmarks, que pueden medir distintos aspectos de rendimiento de los equipos informáticos, como el sistema de almacenamiento, ancho de banda a memoria, procesamiento gráfico,… o el rendimiento global del sistema. Algunos son totalmente sintéticos (programas diseñados para medir el rendimiento) como kernels o porciones de programas reales.

Flops

La unidad de con la que se suele medir el rendimiento son los flops, u operaciones en coma flotante por segundo. Al tomarse como unidad de rendimiento estas operaciones genéricas, se hace una abstracción la ISA concreta del procesador, lo que permite comparar arquitecturas distintas. Se suelen usar doble precisión (64 bits) para realizar las comparaciones, aunque con la irrupción del machine learning, también se están usando precisiones más bajas, e incluso operaciones de enteros.

Pruebas de rendimiento

_

En este entorno de computación científica, las métricas más relevantes son la potencia de cálculo y los anchos de banda y latencias a memoria, red de comunicaciones y almacenamiento. Los benchmarks más populares  en entornos HPC son 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, y es la utilizada en la lista del TOP500 (los 500 sistemas más potentes del mundo).

HPCG (high performance conjugate gradient) es un benchmark relativamente nuevo,  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 obtiene solo una fracción de la potencia bruta de la CPU. Complementa a Linpack, el cual hace un uso más intensivo del procesador, por lo que se suelen dar los valores de ambos benchmarks para describir un sistema.

Rendimiento de los nodos de PROTEUS

_

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:

Apodo Núcleo único Nodo Completo
Calypso 9,32 74,56
Kratos 13,88 166,56
Hermes v1 41,6 832
Hermes v2 38,4 768
Metis v1 83,2 2329,6
Metis v2 86,4 2073,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:

Apodo Núcleo único % No Turbo % Nodo Completo %
Calypso 8,87 95,1 66.09 88,6
Kratos 14,09 102,5 13,3 95,8 151,6 91
Hermes v1 42,68 109,7 38,99 93,7 671,2 80,6
Hermes v2
Metis v1
Metis v2 1534,51 74
HPCG
_

Esta tabla se encuentra en construcción… Disculpa las molestias.

Apodo Núcleo único % No Turbo % Nodo Completo %
Calypso
Kratos
Hermes v1
Hermes v2
Metis v1
Metis v2

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.

¿Cómo podemos ayudarte?