¿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
ycurl -O
descarga un archivo de Internet. -
scp
yrsync
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.