¿Por qué usar un clúster?
- La Computación de Alto Rendimiento (HPC en inglés, High Performance Computing) típicamente implica conectarse a sistemas de computación muy grandes que se encuentran en cualquier parte del mundo.
- Estos sistemas pueden usarse para realizar trabajos que serían imposibles o mucho más lentos de completar en sistemas más pequeños.
- Los recursos HPC son compartidos por múltiples usuarios.
- El método estándar de interacción con dichos sistemas es a través de una interfaz de línea de comandos.
Conectándose a un sistema HPC remoto
- Un sistema HPC es un conjunto de máquinas conectadas en red.
- Los sistemas HPC normalmente proporcionan nodos de acceso y un conjunto de nodos de trabajo.
- Los recursos en nodos independientes (de trabajo) pueden variar en volumen y tipo (cantidad de RAM, arquitectura de procesador, disponibilidad de sistemas de archivos montados en red, etc.).
- Los archivos guardados en un nodo están disponibles en todos los nodos.
Trabajando en un sistema HPC remoto
- “Un sistema HPC es un conjunto de máquinas conectadas en red.”
- “Los sistemas HPC normalmente proporcionan nodos de acceso y un conjunto de nodos de trabajo.”
- “Los recursos en nodos independientes (de trabajo) 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.”
Fundamentos del Planificador de Trabajos
- El planificador gestiona cómo se comparten los recursos de cómputo entre usuarios.
- Un trabajo es solo un script de shell.
- Solicita ligeramente más recursos de los que necesitarás.
Variables de Entorno
- Las variables de shell se tratan como cadenas de texto por defecto.
- Las variables se asignan usando “
=” y se recuperan usando el nombre de la variable con el prefijo “$”. - Usa “
export” para que una variable esté disponible para otros programas. - La variable
PATHdefine la ruta de búsqueda de la shell.
Acceder a software a través de Módulos
- Carga software con
module load nombreDelSoftware. - Descarga software con
module unload. - El sistema de módulos gestiona automáticamente el versionado del software y los conflictos entre paquetes.
Transferencia de archivos con computadoras remotas
-
wgetycurl -Odescargan un archivo desde Internet. -
scpyrsynctransfieren archivos hacia y desde tu computadora. - Puedes usar un cliente SFTP como FileZilla para transferir archivos con una GUI.
Ejecutar un trabajo paralelo
- La programación paralela permite que las aplicaciones aprovechen el hardware paralelo.
- El sistema de colas facilita la ejecución de tareas paralelas.
- Las mejoras de rendimiento de la ejecución paralela no se escalan linealmente.
Usar recursos de forma eficaz
- Los scripts de trabajo precisos ayudan al sistema de colas a asignar eficientemente los recursos compartidos.
Usar recursos compartidos de manera responsable
- Sea cuidadoso con cómo usa el nodo de acceso.
- Sus datos en el sistema son su responsabilidad.
- Planifique y pruebe transferencias de datos grandes.
- A menudo es mejor convertir muchos archivos en un solo archivo de tipo archivo antes de transferir.