Red de conocimiento informático - Consumibles informáticos - Optimización de la informática de alto rendimiento

Optimización de la informática de alto rendimiento

La Computación de Alto Rendimiento (HighPerformance Computing) es una rama de la informática, que se refiere principalmente a la tecnología de investigación y desarrollo de computadoras de alto rendimiento desde los aspectos de arquitectura, algoritmos paralelos y desarrollo de software.

Con el rápido desarrollo de la tecnología informática, la velocidad informática de las computadoras de alto rendimiento continúa aumentando y sus estándares también cambian constantemente.

La informática de alto rendimiento simplemente significa completar ciertos tipos de cargas de trabajo técnicas en 16 o más servidores. No importa si este número requiere 8, 12 o 16 servidores. Según la definición, se supone que cada servidor ejecuta su propio sistema operativo independiente y su infraestructura de entrada/salida asociada se basa en el sistema COTS.

En resumen, lo que se discute son los clústeres informáticos de alto rendimiento de Linux.

Un centro de información con 20.000 servidores no tiene problemas para ejecutar simulaciones de dinámica molecular, al igual que una pequeña empresa de ingeniería que ejecuta simulaciones de dinámica de fluidos computacional (CFD) en su sala de ordenadores. Las únicas limitaciones para resolver cargas de trabajo provienen del nivel tecnológico. La siguiente cuestión que queremos discutir es qué se puede aplicar directamente.

Métricas

Rendimiento, Rendimiento/Watt, Rendimiento/pie cuadrado y Rendimiento/dólar, etc., para el mencionado grupo molecular dinámico de 20.000 servidores, la razón es obvia. La ejecución de estos sistemas suele estar limitada por el consumo de energía (vatios) y el tamaño (pies cuadrados) del servidor. Ambos elementos se tienen en cuenta en el coste total de propiedad (TCO). Lograr mayores beneficios económicos en términos de costo total de propiedad (TCO) es una gran preocupación para todos.

El alcance del tema se limita al rendimiento para ayudar a todos a comprender la importancia del consumo de energía, la densidad del rendimiento y el coste total de propiedad (TCO) en la práctica.

Definición de rendimiento

Aquí el rendimiento se define como una tasa de cálculo. Por ejemplo, la carga de trabajo completada por día, la velocidad de las operaciones de punto flotante por segundo (FLOP), etc. Lo siguiente en lo que hay que pensar es en el tiempo de finalización de una determinada cantidad de trabajo. Los dos están directamente relacionados, velocidad = 1/(tiempo/carga de trabajo). Por lo tanto, el rendimiento se mide en función de la carga de trabajo de la ejecución y se calcula su tiempo de finalización para convertirlo a la velocidad requerida.

Cuantitativo vs. Cualitativo

Desde un nivel cualitativo, esta pregunta es fácil de responder, es decir, procesadores más rápidos, más memoria y mejor subsistema de entrada/salida de red y disco. Pero esta respuesta no es lo suficientemente precisa a la hora de decidir si comprar un clúster de Linux.

Analizar cuantitativamente el rendimiento de los clústeres informáticos de alto rendimiento de Linux.

Para ello, presentamos algunos modelos cuantitativos y técnicas metodológicas que pueden guiar con mucha precisión las decisiones comerciales de todos y, al mismo tiempo, son muy simples y prácticas. Por ejemplo, estas decisiones de negocio incluyen:

Compra --- Guía de selección de componentes del sistema para obtener el mejor rendimiento o la configuración de rendimiento más económica --- Identificación de cuellos de botella en sistemas y software de aplicaciones

Planificar: resalte las correlaciones y limitaciones de rendimiento para desarrollar planes comerciales a mediano plazo

El modelo de clúster de computación de alto rendimiento de Linux incluye cuatro tipos principales de componentes de hardware.

(1) Un nodo informático o servidor que ejecuta cargas de trabajo técnicas

(2) Un nodo maestro utilizado para la gestión de clústeres, control de trabajo, etc.; >(3)Cables de interconexión y el popular Gigabit Ethernet (GBE);

(4) Algunos sistemas de almacenamiento global, tan simples y fáciles de usar como los archivos NFS generados por el nodo maestro.

El estándar de medición de las computadoras de alto rendimiento se basa principalmente en la velocidad de computación (especialmente la velocidad de operación de punto flotante). Las computadoras de alto rendimiento son tecnologías de vanguardia en el campo de la información. Desempeñan un papel directo para garantizar la seguridad nacional, promover el progreso científico y tecnológico de la defensa nacional y promover el desarrollo de armas de vanguardia. de la fortaleza integral de un país.

Con el rápido desarrollo de la sociedad de la información, los seres humanos tienen requisitos cada vez mayores en cuanto a capacidades de procesamiento de información. No sólo la exploración petrolera, la previsión meteorológica, la defensa nacional y aeroespacial, la investigación científica, etc., requieren computadoras de alto rendimiento. , pero también finanzas y gobierno La demanda de informática de alto rendimiento está creciendo rápidamente en campos más amplios como la tecnología de la información, la educación, las empresas y los juegos en línea.

Un modelo de aplicación cuantitativa simple

Este modelo de aplicación cuantitativa es muy intuitivo. El tiempo para completar un trabajo determinado en un clúster es aproximadamente equivalente al tiempo dedicado a un subsistema independiente:

e

1 Tiempo (Tiempo) = Tiempo de nodo (Tnodo) +. tiempo de cable (Tfabric) + tiempo de almacenamiento (Tstorage)

Tiempo = Tnode + Tfabric + Tstorag

El tiempo (Time) mencionado aquí se refiere a la finalización de la carga de trabajo de ejecución Tiempo, nodo El tiempo (Tnode) se refiere al tiempo de finalización invertido en el nodo informático, el tiempo de cable (Tfabric) se refiere al tiempo de finalización de la interconexión de varios nodos en Internet y el tiempo de almacenamiento (Tstorage) se refiere al acceso a la red de área local o al almacenamiento global. Tiempo de finalización del sistema.

El tiempo de finalización de un nodo informático es aproximadamente equivalente al tiempo empleado en un subsistema independiente:

2. Tiempo de nodo (Tnode) = tiempo de kernel (Tcore) + tiempo de memoria ( Tmemory)

El tiempo central (Tcore) mencionado aquí se refiere al tiempo de finalización en el nodo informático del microprocesador. El tiempo de memoria (Tmemory) se refiere al tiempo de finalización del acceso a la memoria principal. Este modelo es muy práctico para un solo nodo de computación de CPU y se puede extender fácilmente a nodos de computación de doble socket (multiprocesamiento simétrico SMP) de uso general. Para que el segundo conjunto de modelos sea más práctico, el tiempo de finalización del subsistema también debe estar relacionado con los parámetros de configuración física del nodo informático, como la velocidad del procesador, la velocidad de la memoria, etc.

Nodo de cálculo

El prototipo del nodo de cálculo en la figura se utiliza para comprender los parámetros de configuración relevantes. En la parte superior de la imagen hay dos ranuras de procesador, conectadas al centro de control de memoria (MCH) a través del bus frontal (FSB-bus frontal). El centro de control de memoria (MCH) tiene cuatro canales de memoria. También hay un Infiniband HCA conectado entre sí mediante un canal serie punto a punto (PCIe).

Los sistemas de entrada y salida de baja velocidad, como los discos duros Gigabit Ethernet y Serial Interface (SATA), se conectan a través del South Bridge en el chipset. En la ilustración, puede ver que cada componente principal tiene un parámetro relacionado con el rendimiento marcado en rojo al lado. Estos parámetros especifican las características del hardware que afectan el rendimiento (pero no todas). También suelen estar directamente relacionados con el coste del hardware. Por ejemplo, la frecuencia del reloj del procesador (fcore) tiene un gran impacto en el rendimiento en la mayoría de las cargas de trabajo. Según el principio de oferta y demanda que cruza la curva de producción de semiconductores, cuanto más rápido sea el procesador, mayor será el coste correspondiente.

El tamaño de la memoria caché también tendrá un impacto en el rendimiento. Puede reducir la carga de trabajo que lleva la frecuencia principal para aumentar su velocidad informática. La cantidad de núcleos de procesador (Ncores) también afecta el rendimiento y el costo. La velocidad del subsistema de memoria se puede parametrizar en términos de frecuencia del módulo de memoria dual en línea (fDIMM) y frecuencia del bus (fBus), lo que también afecta el rendimiento en condiciones de carga de trabajo. Del mismo modo, la velocidad de una red de interconexión de cables depende de la frecuencia con la que el canal se serializa punto a punto.

Algunos otros factores, como la latencia de memoria del módulo de memoria dual en línea (latencia DIMM CAS) y el número de canales de almacenamiento, se ignoran temporalmente como factores secundarios.

Parámetros de rendimiento utilizados

De los seis parámetros de rendimiento indicados en el diagrama, se conservan cuatro parámetros relacionados con el modelo.

Primero ignore la frecuencia del canal serie punto a punto (fPCIe), porque afecta principalmente el rendimiento de la velocidad de la estructura de interconexión del cable, que está fuera del alcance.

A continuación, tenga en cuenta que la frecuencia del módulo de memoria dual en línea (fDIMM) y la frecuencia del bus (fBus) están limitadas a una proporción fija debido al Centro de control de memoria (MCH).

Entre los sistemas dual-core utilizados, los ratios más representativos son 4:5, 1:1 y 5:4. Normalmente sólo se utiliza uno de ellos. El tamaño de la memoria caché es muy importante.

Mantener este parámetro en este modelo. El número de núcleos (Ncores) y la frecuencia de los núcleos (fcore) también son muy importantes, mantenga estos dos parámetros.

Modelo de Computación de Alto Rendimiento (HPC)

La forma básica de este segundo modelo ha existido en el campo de la investigación de la arquitectura de computadoras durante muchos años.

Un modo normal es:

(3) CPI = CPI0 + MPI * PPM

El CPI aquí se refiere a la cantidad de tiempo que el procesador está en cada estado de carga de trabajo El ciclo para ejecutar una instrucción. CPI0 se refiere al CPI central y MPI I se refiere al número de errores de cada instrucción en la memoria caché en el estado de carga de trabajo (Nota: en el campo de la informática de alto rendimiento, MPI se utiliza principalmente para interfaces de transferencia de información, aquí se refiere principalmente Según la Convención de construcción de procesadores, PPM es un registro del número de errores de cada instrucción en la memoria caché en tics de reloj del procesador. La segunda y tercera ecuaciones concuerdan entre sí. El primer término se refiere al procesador y el segundo término se refiere a la memoria.

Se puede ver intuitivamente que suponiendo que la carga de trabajo de las instrucciones P ejecutadas en cada trabajo y la frecuencia del núcleo que representa la frecuencia del procesador (la unidad de ciclos operativos del procesador por segundo) se combinan con la ecuación (3 ), obtenemos la ecuación (4):

Tnodo = (CPIo * P) * (1 / fcore) + (MPI * P) * PPM * (1 / fcore)

Cabe señalar aquí que (CPIo * P) se mide en ciclos operativos del procesador por asignación de trabajo y suele ser una constante para una carga de trabajo determinada que se ejecuta en una arquitectura de microprocesador. Así que llámalo α. (El ciclo del procesador en sí no puede medir el tiempo. Si lo multiplica por la frecuencia del núcleo, puede obtener el estándar de medición del tiempo. Por lo tanto, Tnode está en el lado derecho de la ecuación (4)).

Lo mismo ocurre con (MPI * P). También es constante para una carga de trabajo y una arquitectura determinadas, pero depende principalmente del tamaño de la memoria caché. Lo llamamos M (MBcache). Y PPM se refiere al costo de acceder a la memoria principal. Para una carga de trabajo determinada, suele ser un número fijo C. PPM se convierte de ciclos de bus a ciclos de procesador multiplicando la relación entre la frecuencia de la memoria y la frecuencia del bus (fcore / fBus). Por lo tanto PM = C * fcore / fBus. Al insertar M(MBcache), puede obtener:

(5) Tnode = α * (1 / fcore) + M(MBcache) * (1 / fbus)

Este ejemplo ilustra La frecuencia del bus también es una constante, y la ecuación (5) se puede simplificar a la ecuación (6):

(6) Tnode = α * (1 / fcore) + β

Aquí Tcore = α * (1 / fcore), y Tmemory = β (es decir, el término de la Ecuación 2. Relacionamos estos puntos clave).

En primer lugar, en el Modelo 2, la Fórmula 5 y la Fórmula 6 tienen una base teórica sólida, porque se ha analizado cómo se deriva de la Fórmula 3 (se utiliza principalmente en la teoría de sistemas informáticos). En segundo lugar, se han incluido 3 de los 4 parámetros de rendimiento del hardware de este modelo. El parámetro restante es el número de núcleos (Ncores).

Para explicar el número de núcleos de una manera intuitiva, se supone que N núcleos se consideran como un núcleo que se ejecuta a una frecuencia de red, llamada N*fcore.

Entonces, según la fórmula (6) podemos deducir aproximadamente:

(7) Tcore ~ ​​​​α / (N*fcore)

Tcore~ ( α / N) * (1 / fcore )

También puedes escribirlo como:

(8) αN = ( α / N)

La primera letra Alfa del procesador multinúcleo puede ser un solo 1/N veces de procesador central.

Matemáticamente esto es casi completamente posible.

Por lo general, medimos el rendimiento del sistema informático en función del núcleo del sistema y las frecuencias del bus, como se explica en la fórmula (5). Pero el lado izquierdo de la fórmula (5) es la unidad de tiempo; esta unidad de tiempo se refiere al tiempo de finalización de una carga de trabajo. Esto ilustrará más claramente los principales parámetros del sistema a la derecha en unidades de tiempo. Tenga en cuenta también que el ciclo de reloj del kernel τcore (que se refiere al tiempo requerido para cada ciclo de ejecución del kernel) también es equivalente a (1 / fcore). Lo mismo ocurre con el ciclo del reloj del autobús.

(9) Tnode = αN * τcore + M(MBcache) * τBus

La transformación de esta fórmula también proporciona un modelo de tiempo de finalización, que consta de dos variables independientes básicas τcore y τBus muestran cambios lineales. Esto es útil para analizar datos reales del sistema mediante una simple tabla de búsqueda de tablero de ajedrez.