HPCG (High Performance Conjugate Gradient) es un benchmark diseñado para evaluar el rendimiento de sistemas de computación de alto rendimiento (HPC) en cargas de trabajo representativas del mundo real, centrándose en la capacidad de memoria y la eficiencia de la comunicación. A diferencia de LINPACK, que se enfoca en operaciones de punto flotante intensivas (FLOPs), HPCG mide el rendimiento resolviendo un sistema de ecuaciones lineales dispersas utilizando el método del gradiente conjugado precondicionado. Este método es representativo de muchos algoritmos iterativos utilizados en simulaciones científicas e ingeniería, donde la latencia de acceso a memoria, el ancho de banda de memoria y la eficiencia de la interconexión son factores críticos.

HPCG es ampliamente utilizado en la comunidad de supercomputación para clasificar y comparar los sistemas más potentes del mundo, como los que aparecen en la lista TOP500. Supercomputadoras como Fugaku, Frontier y Aurora ejecutan HPCG para demostrar su capacidad en cargas de trabajo que requieren un balance entre computación y acceso a datos. Los resultados de HPCG son un indicador clave para instituciones de investigación, laboratorios nacionales y empresas que dependen de HPC para simulaciones complejas en campos como la meteorología, la física de partículas, la dinámica de fluidos computacional (CFD) y el diseño de materiales, donde la optimización de la memoria y la comunicación son tan cruciales como la capacidad de cómputo bruto.

Para un Arquitecto de Sistemas Staff+, HPCG es un benchmark fundamental porque revela las verdaderas capacidades de un sistema HPC más allá de los FLOPs teóricos. Un alto rendimiento en HPCG indica un diseño equilibrado del sistema, con una interconexión de baja latencia, un subsistema de memoria de alto ancho de banda y una jerarquía de caché eficiente. Al evaluar plataformas para cargas de trabajo intensivas en datos o algoritmos iterativos, el arquitecto debe considerar los resultados de HPCG como un factor crítico. Un sistema con un HPCG bajo, a pesar de tener un alto LINPACK, puede ser un cuello de botella para aplicaciones que requieren acceso frecuente a la memoria o comunicación entre nodos. Esto influye directamente en la selección de hardware, el diseño de la red de interconexión (ej. InfiniBand, Slingshot) y la optimización de la topología de memoria, impactando la escalabilidad y la eficiencia de las aplicaciones científicas y de ingeniería más exigentes.