¿Cómo se puede probar InfiniBand?

Su pregunta podría leerse como:

  1. “¿Cómo pruebo mi capacidad para usar Infiniband?”
  2. “¿Cómo verifico que la red Infiniband funciona correctamente?”

Lo responderé como # 2, ya que efectivamente responde ambas versiones de la pregunta …

Respuesta 1 – Contrata a un experto. El proveedor generalmente tiene equipos que pueden “Validar” la red, probando los enlaces defectuosos y la operación esperada, como un servicio.

Respuesta 2: conviértete en un experto. Gastará menos para aprender las herramientas usted mismo y luego podrá mantener y validar el clúster de forma rutinaria.

Primer paso: solicite a la red que utilice ibdiagnet, que extraerá toda la información que pueda del administrador de subred (la autoridad central en una red IB) y luego ibdiagnet diagnosticará esa información buscando problemas que pueda detectar. Tenga en cuenta que los errores de símbolos son los más comunes y pueden ser causados ​​por cables defectuosos, conexiones sueltas y muchas otras cosas. La especificación IB permite cierta tasa de errores de símbolos por enlace antes de considerarlo un error. Mi experiencia es que tienes que atraparlos a todos o te perseguirá.

Determinar qué enlace tiene los errores de símbolos puede ser un verdadero desafío y, en muchos sentidos, es una forma de arte en redes más grandes. ibdiagnet -w generará un archivo de topología que puede ayudar. También sugeriría capturar el GUID de cada nodo usando ibstat y grep a través de esa lista para obtener sugerencias cuando busque un enlace incorrecto que la utilidad ibdiagnet detecta. Tenga en cuenta que los adaptadores tienen un GUID, y cada puerto en el adaptador tiene otro GUID, por lo que es similar a una dirección MAC pero un poco más expansivo.

Segundo paso: ejecutar pruebas básicas entre nodos:

ib_read_lat e ib_write_lat para latencia de nodo a nodo

ib_read_bw e ib_write_bw para ancho de banda de nodo a nodo

Generalmente ejecuto pruebas de cada nodo a cada nodo del clúster y busco grandes discrepancias. Las pruebas se ejecutan demasiado rápido para obtener datos significativos al ejecutar todos los nodos en paralelo, por lo que es un indicador rápido de que todos los nodos pueden comunicarse con todos los nodos a una velocidad razonable.

Tercer paso: ejecute una aplicación que use MPI o cualquier protocolo primario que quiera usar en la red. Use perfquery para verificar que los paquetes se estén ejecutando en la red prevista. Los contadores se agotan rápidamente, así que ejecuta algo como “watch perfquery -r” para que los contadores se reinicien después de cada informe. Yo uso HPL, porque uso principalmente IB para tejidos IB computacionales. Pero también lo uso para Luster Storage, por lo que también ejecutamos pruebas de lectura y escritura en el sistema de archivos.

Aquí es donde la mayoría de las personas matan un montón de tiempo. Comienzan ejecutando una aplicación en todos los nodos y esperan grandes resultados. Cuando no obtienen el rendimiento esperado, comienzan un proceso de eliminación de “divide y vencerás” para encontrar el nodo, grupo o cambio lento. Recomiendo encarecidamente que en cualquier grupo aparezca el enfoque opuesto … lo llamo un “análisis de nivel de ladrillo”. Comience en las partes más pequeñas y aumente.

Primero, verifique que todos los nodos estén funcionando individualmente. Ejecute stream para memoria, hpl para cómputo y las herramientas ib enumeradas anteriormente para confirmar que cada nodo funciona de manera similar.

A continuación, ejecute pruebas entre pares de nodos en busca de anomalías (demasiado rápido o demasiado lento).

Luego, ejecute pruebas entre todos los nodos en un conmutador determinado o tarjeta de línea en un conmutador grande. Próximos pares de interruptores o tarjetas de línea. Cada vez que compara los resultados de todos los subgrupos para buscar anomalías.

Finalmente, ejecuta todo el sistema. En grandes apariciones, la combinación de múltiples nodos que tienen varios problemas de rendimiento puede hacer que la estrategia de dividir y conquistar pierda problemas clave o diagnostique erróneamente la causa raíz.