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

Description

Optimizar la BIOS de un servidor Supermicro para High Performance Computing (HPC) implica ajustar varias configuraciones 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 ligeramente según el modelo específico de la placa base y la generación del procesador (Intel Xeon, AMD EPYC, etc.).

Aquí tienes 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 bruto, lo cual no es deseable para HPC.
  • Workload Profile (si disponible): Algunas BIOS más recientes ofrecen perfiles predefinidos. Busca un perfil llamado "HPL" (High Performance Linpack) o "HPC" si está disponible, ya que estos están diseñados específicamente para cargas de trabajo HPC.

2. Configuración del CPU:

  • CPU Power Management / Power Technology: Deshabilita o configura como "Custom" y luego ajusta las opciones individuales para el máximo rendimiento.
  • EIST (Intel SpeedStep) / AMD Cool'n'Quiet: Deshabilítalo. Estas funciones reducen la frecuencia del CPU cuando no está bajo carga máxima, lo que puede introducir latencia o limitar el rendimiento sostenido en HPC.
  • Turbo Boost / AMD Precision Boost: Habilítalo. Permite que el CPU aumente su frecuencia por encima de la base cuando las condiciones lo permiten, lo que es crucial para el rendimiento.
  • C-States (Intel) / Global C-state Control (AMD): Deshabilítalos (o configúralos como "Disabled" o "No C-states"). Los C-states son estados de ahorro de energía del CPU. Deshabilitarlos asegura que el CPU permanezca en su estado de mayor rendimiento.
  • P-States: Asegúrate de que EIST (P-States) esté Habilitado y Turbo Mode también esté Habilitado. La coordinación de P-States debe estar en "HW_ALL".
  • SMT (Simultaneous Multi-threading) / Hyper-threading (Intel): Para algunas cargas de trabajo HPC (especialmente aquellas con alto uso de memoria o que no se benefician de la paralelización a nivel de hilo), deshabilitar SMT/Hyper-threading puede mejorar el rendimiento. Sin embargo, para otras (especialmente aquellas que escalan bien con más hilos), habilitarlo puede ser 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 sobre la eficiencia energética.
  • CPU cTDP (Configurable TDP): Si tu CPU lo permite, asegúrate de que esté configurado al valor TDP máximo para permitir el mayor rendimiento sostenido.
  • Core Enabled: Asegúrate de que todos los núcleos de la CPU estén habilitados.
  • Hardware Prefetchers (L1/L2 Stream HW Prefetcher): Generalmente, habilitar estos prefetchers puede mejorar el rendimiento al cargar datos en la caché de forma anticipada.

3. Configuración de Memoria:

  • Memory Frequency: Configúralo en "Max Performance" o la frecuencia más alta compatible con tus módulos de RAM y CPU.
  • Memory Patrol Scrub / Memory Write Data CRC: Deshabilítalo para HPC. Estas funciones son para la integridad de datos y pueden introducir latencia o consumo de ciclos de CPU.
  • Memory Refresh Rate: Déjalo en "1x" o el valor por defecto a menos que tengas requisitos específicos.
  • Per-Socket Memory interleaving: Si tu sistema tiene múltiples NUMA (Non-Uniform Memory Access) nodes, habilita la interleaving de memoria (si está disponible y es apropiado para tu aplicación) para distribuir las solicitudes de memoria a través de los canales y sockets, lo que puede mejorar el ancho de banda.
  • NUMA Nodes per Socket (NPS): Para CPUs AMD EPYC, la configuración de NPS (por ejemplo, 4 NPS) puede impactar significativamente el rendimiento de HPC. Las recomendaciones varían según la carga de trabajo, pero a menudo se sugiere 4 NPS para HPC.

4. Configuración de PCIe y Periféricos:

  • PCI ASPM L1 Link Power Management: Deshabilítalo. Esto puede ahorrar energía en los dispositivos PCIe, pero puede introducir latencia.
  • PCIe Speed PMM Control: Configúralo en "Auto" o la generación PCIe más alta que tus dispositivos (GPUs, tarjetas de red, NVMe) y la placa base soporten (e.g., Gen 5).
  • Preferred IO Device / Preferred IO Bus: Si estás utilizando una tarjeta de red de alto rendimiento (por ejemplo, Mellanox InfiniBand), algunas BIOS de Supermicro permiten configurar un "Preferred IO Device" para priorizar el tráfico a través de ese bus PCIe específico, lo que puede reducir la latencia para las comunicaciones entre nodos. Necesitarás el número de bus PCIe de tu tarjeta (lo puedes obtener con lspci en Linux).
  • UEFI Boot: Considera usar el modo de arranque UEFI en lugar del modo Legacy/CSM si tu sistema operativo y tus dispositivos lo soportan. Esto puede ofrecer un arranque más rápido y un mejor soporte para hardware moderno.

5. Otros Ajustes:

  • Virtualization Technology (Intel VT-x / AMD-V): Si tu aplicación HPC no utiliza virtualización, puedes considerar deshabilitarla para liberar recursos, aunque el impacto suele ser mínimo.
  • Serial Port Console Redirection: Desactívalo si no lo necesitas para administración remota.
  • USB Support: Desactiva el soporte para puertos USB que no vayas a utilizar para reducir el uso de recursos.
  • Boot Options: Asegúrate de que el orden de arranque esté configurado para iniciar directamente desde tu disco del sistema operativo, deshabilitando opciones innecesarias como el arranque desde CD/DVD o red si no se utilizan regularmente.

Consideraciones importantes:

  • Actualización de BIOS/Firmware: Siempre asegúrate de tener la última versión de la BIOS y el firmware (BMC/IPMI, firmware de red, etc.) de Supermicro para tu placa base. Las actualizaciones a menudo incluyen mejoras de rendimiento y correcciones de errores.
  • Documentación de Supermicro: Consulta el manual de tu placa base Supermicro específica. Contendrá detalles sobre todas las opciones de la BIOS y sus funciones. Supermicro también proporciona FAQs y guías de optimización para ciertos modelos y arquitecturas de CPU.
  • Pruebas de rendimiento: Después de realizar cambios en la BIOS, es crucial probar el rendimiento de tus aplicaciones HPC con benchmarks relevantes para verificar que los ajustes están teniendo 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 máximo sostenido. El thermal throttling (reducción de rendimiento debido al sobrecalentamiento) anulará cualquier optimización de la BIOS.

Al ajustar cuidadosamente estas configuraciones, puedes optimizar tu servidor Supermicro para obtener el máximo rendimiento en cargas de trabajo de computación de alto rendimiento.

SKU: