¿Por qué utilizar un clúster?


  • La computación de alto rendimiento (HPC) suele implicar la conexión a sistemas informáticos muy grandes de otras partes del mundo.
  • Estos otros sistemas pueden utilizarse para realizar tareas que serían imposibles o mucho más lentas en sistemas más pequeños.
  • Los recursos HPC son compartidos por múltiples usuarios.
  • El método estándar de interacción con estos sistemas es a través de una interfaz de línea de comandos.

Conexión a un sistema HPC remoto


  • Un sistema HPC es un conjunto de máquinas conectadas en red.
  • Los sistemas HPC suelen proporcionar nodos de inicio de sesión y un conjunto de nodos trabajadores.
  • Los recursos que se encuentran en los nodos independientes (trabajadores) pueden variar en volumen y tipo (cantidad de RAM, arquitectura del procesador, disponibilidad de sistemas de archivos montados en red, etc.).
  • Los archivos guardados en un nodo están disponibles en todos los nodos.

Trabajar en un sistema HPC remoto


  • “Un sistema HPC es un conjunto de máquinas conectadas en red”
  • “Los sistemas HPC suelen proporcionar nodos de inicio de sesión y un conjunto de nodos trabajadores”
  • “Los recursos que se encuentran en nodos independientes (trabajadores) pueden variar en volumen y tipo (cantidad de RAM, arquitectura del procesador, disponibilidad de sistemas de ficheros montados en red, etc.).”
  • “Los archivos guardados en un nodo están disponibles en todos los nodos”

Fundamentos del programador


  • El planificador gestiona cómo se comparten los recursos informáticos entre los usuarios.
  • Un trabajo no es más que un script de shell.
  • Solicita ligeramente más recursos de los que necesitará.

Variables de entorno


  • Las variables del intérprete de órdenes se tratan por defecto como cadenas de caracteres
  • Las variables se asignan utilizando “=” y se recuperan utilizando el nombre de la variable precedido por “$
  • Utilice “export” para poner una variable a disposición de otros programas
  • La variable PATH define la ruta de búsqueda de la shell

Acceso al software a través de módulos


  • Cargar software con module load softwareName.
  • Descargar software con module unload
  • El sistema de módulos gestiona automáticamente las versiones de software y los conflictos entre paquetes.

Transferencia de archivos con ordenadores remotos


  • wget y curl -O descarga un archivo de Internet.
  • scp y rsync transfieren archivos desde y hacia su ordenador.
  • Puede utilizar un cliente SFTP como FileZilla para transferir archivos a través de una GUI.

Ejecutar un trabajo paralelo


  • La programación paralela permite a las aplicaciones aprovechar las ventajas del hardware paralelo.
  • El sistema de colas facilita la ejecución de tareas paralelas.
  • Las mejoras de rendimiento de la ejecución paralela no escalan linealmente.

Uso eficaz de los recursos


  • La precisión de los guiones de trabajo ayuda al sistema de colas a asignar eficazmente los recursos compartidos.

Uso responsable de los recursos compartidos


  • Ten cuidado con el uso del nodo login.
  • Tus datos en el sistema son tu responsabilidad.
  • Planifica y prueba grandes transferencias de datos.
  • A menudo es mejor convertir muchos ficheros en un único archivo antes de transferirlos.