WOLFRAM

¿Cómo utilizar Mathematica en un clúster gestionado de alto rendimiento?

Background information

Los clústeres de computación de mayor tamaño constan de muchos nodos, y cada nodo está compuesto por múltiples núcleos de CPU. Además, a menudo en el clúster se encuentra disponible software especializado como Mathematica. Los usuarios solicitan estos recursos iniciando sesión en un nodo principal y enviando trabajos por lotes al gestor del clúster. El trabajo se ejecuta cuando los recursos están disponibles. Dos gestores de clúster comunes son TORQUE y Slurm.

La paralelización en Mathematica utiliza el modelo de centro y conexiones (“hub-and-spoke”), en el cual un kernel de control gestiona una cantidad de kernels subordinados (subkernels). En un entorno de clúster, el cliente ejecuta el kernel de control y los hosts proporcionan subkernels. El gestor del clúster determina el nodo que actúa como cliente y los nodos que actúan como hosts.

Existen dos beneficios al ejecutar Mathematica en un clúster: La cantidad de núcleos de CPU disponibles, incluso en un solo nodo, suele ser mayor que en una computadora de escritorio. Además, la velocidad de cada núcleo de CPU es individualmente superior a la de los núcleos en una computadora de escritorio.

Cómo ejecutar una interfaz remota de Mathematica

Una interfaz remota requiere que el usuario mantenga el control sobre los recursos del trabajo. Esto se conoce como una sesión interactiva.

Aunque generalmente hay una ventaja en la velocidad de CPU en comparación con una computadora de escritorio, la interfaz mediante una sesión interactiva es más lenta que la ejecución de una versión local de la interfaz. Esto se debe a que la interfaz se ejecuta en el clúster mientras que la interfaz se reenvía a la computadora del usuario remoto.

Una sesión interactiva no está diseñada para realizar cálculos de uso intensivo de CPU, sino que se utiliza para probar y diagnosticar código. Es común solicitar únicamente los recursos de un nodo.

  1. Inicie sesión en el nodo principal mediante SSH con reenvío de X-ventanas habilitado.
  2. Inicie una sesión interactiva, solicitando todos los recursos en un solo nodo.
  3. Inicie una sesión de Mathematica.

Desde un cuaderno de Mathematica, al utilizar el comando LaunchKernels[] o cualquier otra funcionalidad paralela, ahora se incluirán subkernels que se ejecutan desde el clúster.

Cómo ejecutar un script remoto de Mathematica

Se asume que

  • usted está familiarizado con iniciar subkernels remotos
  • el clúster es un entorno de Unix
  • el clúster utiliza un sistema de archivos clonado de manera que Mathematica se ejecute mediante el mismo ejecutable en todos los nodos

Si alguna de las suposiciones anteriores no es cierta, lo siguiente deberá ser modificado, pero la idea general se mantiene:

  1. consulte al sistema para encontrar los nombres de los nodos asignados al trabajo, y cuántos núcleos por nodo están disponibles
  2. inicie kernels remotos manualmente

Por ejemplo, en un clúster gestionado por Torque, en un script de Mathematica o Wolfram Language tendría:

(*get association of resources, name of local host and remove local host 
from available resources*)
hosts = Counts[ReadList[Environment["PBS_NODEFILE"], "String"]];
local = First[StringSplit[Environment["HOSTNAME"],"."]];
hosts[local]--;

(*launch subkernels and connect them to the controlling Wolfram Kernel*)
Needs["SubKernels`RemoteKernels`"];
Map[If[hosts[#] > 0, LaunchKernels[RemoteMachine[#, hosts[#]]]]&, Keys[hosts]];

En este punto, se pueden utilizar las funciones paralelas que utilizan el conjunto completo de recursos disponibles. Cuando el código paralelo esté completo, es una buena práctica cerrar los kernels de Wolfram.

CloseKernels[];

[English]

¿Le parece útil este artículo?
No

¿Tiene algún comentario?

Gracias por sus comentarios.

Enviar

Contacte a soporte técnico

Estamos listos para ayudarlo a resolver sus preguntas sobre facturación, activación o problemas técnicos.

1-800-WOLFRAM (+1-217-398-0700 para usuarios internacionales)

Soporte al cliente

Lunes–viernes
8am–5pm hora estándar del centro

  • Registro o activación del producto
  • Información y ordenes de preventas
  • Ayuda con la instalación y primera ejecución

Soporte técnico avanzado (para clientes admisibles)

Lunes–Jueves
8am–7pm hora estándar del centro

Viernes
8:30–10am y 11am–5pm hora estándar del centro

  • Soporte técnico prioritario
  • Asistencia sobre el producto por expertos Wolfram
  • Ayuda con la programación de Wolfram Language
  • Soporte de instalación avanzado