Optimizar la BIOS de un servidor Supermicro para High Performance Computing (HPC)

Descripción

Optimizar la BIOS de un servidor Supermicro para High Performance Computing (HPC)

Descripción

Optimizar la BIOS de un servidor Supermicro para High Performance Computing (HPC) implica ajustar varios parámetros clave para maximizar el rendimiento del procesador, la memoria y los componentes de red y almacenamiento. Ten en cuenta que las opciones exactas pueden variar levemente según el modelo de placa madre y la generación del procesador (Intel Xeon, AMD EPYC, etc.).

A continuación, una guía general de los ajustes más importantes a considerar:

1. Modo de rendimiento del sistema (System Profile)

  • System Profile: Configúralo en "Max Performance" o "High Performance Mode." Evita "Performance Per Watt" o modos de ahorro de energía, ya que priorizan la eficiencia sobre el rendimiento puro, lo cual no es deseable en HPC.
  • Workload Profile (si está disponible): Algunas BIOS más recientes ofrecen perfiles predefinidos. Busca un perfil llamado "HPL" (High Performance Linpack) o "HPC" si está disponible, ya que están diseñados específicamente para cargas de trabajo HPC.

2. Configuración de CPU

  • CPU Power Management / Power Technology: Configúralo en "Custom" y luego ajusta individualmente las opciones siguientes para máximo rendimiento.
  • EIST (Intel SpeedStep) / AMD Cool'n'Quiet (P-States): Habilitar. En CPUs Intel modernos, Turbo Boost se implementa como un P-state por encima de la frecuencia base, por lo que Turbo depende de que EIST esté activo — deshabilitarlo puede impedir que Turbo se active. Configura P-State Coordination en "HW_ALL".
  • Turbo Boost / AMD Precision Boost: Habilitar. Permite que el CPU aumente su frecuencia por encima de la base cuando las condiciones lo permiten, algo crucial para el rendimiento.
  • C-States (Intel) / Global C-state Control (AMD): Deshabilitar (o configurar en "Disabled" / "No C-states"). Los C-States son estados de ahorro de energía en inactividad; deshabilitarlos asegura que el CPU se mantenga disponible en su estado de mayor rendimiento sin latencia adicional al "despertar".
  • SMT (Simultaneous Multi-Threading) / Hyper-Threading (Intel): Para algunas cargas HPC (especialmente las de alto uso de memoria o que no se benefician del paralelismo a nivel de hilos), deshabilitar SMT/Hyper-Threading puede mejorar el rendimiento. Para otras que escalan bien con más hilos, habilitarlo es beneficioso. Prueba y compara el rendimiento para tu aplicación específica.
  • Determinism Slider / Determinism Control: Configúralo en "Performance Determinism." Esto prioriza la consistencia del rendimiento por sobre la eficiencia energética.
  • CPU cTDP (Configurable TDP): Si tu CPU lo permite, configúralo en el valor máximo de TDP para permitir el mayor rendimiento sostenido.
  • Core Enabled: Asegúrate de que todos los núcleos del CPU estén habilitados.
  • Hardware Prefetchers (L1/L2 Stream HW Prefetcher): Habilitar. Generalmente mejoran el rendimiento al cargar datos en caché de forma anticipada.

3. Configuración de memoria

  • Memory Frequency: Configúrala en "Max Performance" o la frecuencia más alta soportada por tu RAM y CPU.
  • Memory Patrol Scrub / Memory Write Data CRC: Deshabilitar para máximo rendimiento puro. Nota que esto implica un trade-off — estas funciones existen por integridad de datos/RAS, y deshabilitarlas puede no ser deseable en sistemas que corren cargas críticas de operación continua.
  • Memory Refresh Rate: Déjalo en "1x" o el valor por defecto, salvo que tengas requisitos específicos.
  • Per-Socket Memory Interleaving: Si tu sistema tiene múltiples nodos NUMA (Non-Uniform Memory Access), habilita el interleaving de memoria (si está disponible y es adecuado para tu aplicación) para distribuir las solicitudes de memoria entre canales y sockets, mejorando el ancho de banda.
  • NUMA Nodes per Socket (NPS): Para CPUs AMD EPYC, la configuración de NPS (ej. 4 NPS) puede impactar significativamente el rendimiento HPC; 4 NPS suele recomendarse. En Intel Xeon, el equivalente es Sub-NUMA Clustering (SNC) — evalúalo de forma similar según tu carga de trabajo.

4. Configuración de PCIe y periféricos

  • PCI ASPM L1 Link Power Management: Deshabilitar. Puede ahorrar energía en dispositivos PCIe, pero puede introducir latencia.
  • PCIe Speed / PMM Control: Configúralo en "Auto" o en la generación PCIe más alta soportada por tus dispositivos (GPUs, tarjetas de red, NVMe) y la placa madre (ej. Gen 5).
  • Preferred IO Device / Preferred IO Bus: Si usas una tarjeta de red de alto rendimiento (ej. Mellanox InfiniBand), algunas BIOS de Supermicro permiten configurar un "Preferred IO Device" para priorizar el tráfico sobre ese bus PCIe específico, reduciendo la latencia en comunicaciones entre nodos. Necesitarás el número de bus PCIe de tu tarjeta (obtenible con lspci en Linux).
  • UEFI Boot: Considera usar modo de arranque UEFI en vez de Legacy/CSM si tu sistema operativo y dispositivos lo soportan, para tiempos de arranque más rápidos y mejor soporte de hardware moderno.

5. Otros ajustes

  • Virtualization Technology (Intel VT-x / AMD-V): Si tu aplicación HPC no usa virtualización, puedes deshabilitarla para liberar recursos, aunque el impacto suele ser mínimo.
  • Serial Port Console Redirection: Deshabilítalo si no lo necesitas para gestión remota.
  • USB Support: Deshabilita los puertos USB no utilizados para reducir el uso de recursos.
  • Boot Options: Asegúrate de que el orden de arranque priorice el disco del sistema operativo, deshabilitando opciones innecesarias como arranque por CD/DVD o red si no se usan regularmente.

Consideraciones importantes

  • Actualización de BIOS/Firmware: Asegúrate siempre de tener la última versión de la BIOS y firmware (BMC/IPMI, firmware de red, etc.) de Supermicro para tu placa madre. Las actualizaciones suelen incluir mejoras de rendimiento y corrección de errores.
  • Documentación de Supermicro: Consulta el manual de tu modelo específico de placa madre Supermicro. Contiene el detalle de todas las opciones de BIOS y sus funciones. Supermicro también ofrece FAQs y guías de optimización para ciertos modelos de CPU y arquitecturas.
  • Pruebas de rendimiento: Después de hacer cambios en la BIOS, es fundamental probar el rendimiento de tus aplicaciones HPC con benchmarks relevantes para verificar que los ajustes tienen el efecto deseado. Algunos cambios pueden ser contraproducentes para ciertas cargas de trabajo.
  • Refrigeración: Un sistema HPC genera mucho calor. Asegúrate de que tu solución de refrigeración (aire o líquida) sea adecuada para el rendimiento sostenido máximo. El thermal throttling anulará cualquier optimización de BIOS.

Ajustando cuidadosamente estos parámetros, puedes optimizar tu servidor Supermicro para máximo rendimiento en cargas de trabajo de High Performance Computing.