Clúster
Bienvenido a la página del Clúster de Cómputo de Alto Rendimiento de Ingeniería UC. En este sitio podrá encontrar toda la información pertinente a estructura, procedimientos y uso del clúster en las secciones respectivas.
Este clúster forma parte de los servicios que entrega la Subdirección de Servicios Informáticos, a todos los miembros de la Escuela de Ingeniería UC.
Servidor de Login
- Maquina con 2 procesadores de 10 núcleos cada uno
- 768 GB RAM
Nodos de Cómputo
| Nodos de Cómputo | ||||||
|---|---|---|---|---|---|---|
| Nodo | Procesadores | Núcleos x Procesador | Total Núcleos | RAM GB | GPUs | Partición |
| n1 | 2 AMD EPYC 7702 3100 MHz | 64 | 128 | 512 | 0 | 512X1024 |
| n2 | 2 AMD EPYC 7643 3900 MHz | 48 | 96 | 256 | 0 | 512X1024 |
| n3 | 2 AMD EPYC 9554 3750 MHz | 64 | 128 | 256 | 0 | 512X1024 |
| n4 | 2 AMD EPYC 9354 3.25 GHz | 32 | 64 | 256 | 0 | 512X1024 |
| n7 | 2 Intel Xeon Gold 5220R 2.20GHz | 24 | 48 | 1536 | 7 | gpus |
| n8 | 4 AMD Opteron 6376 2300 MHz | 8 | 32 | 32 | 0 | full |
| n9 | 2 Intel Xeon Silver 4216 2.10GHz | 16 | 32 | 2048 | 4 | gpus |
| n11 | 2 AMD EPYC 7662 3900 MHz | 64 | 128 | 512 | 0 | 512X1024 |
| n14 | 2 Intel Xeon Gold 6226R 2.90GHz | 16 | 32 | 128 | 0 | full |
| Totales | 20 | 336 | 624 | 5536 | 11 | |
Servidor de Almacenamiento
- Comunicación Ethernet a 10Gbps
- 14 Discos duros, 1 TB por disco
GPUS
| GPUS | |||||||
|---|---|---|---|---|---|---|---|
| Marca | Modelo | Cantidad | CUDA Cores | TENSOR Cores | RT Cores | GPU MEMORY | Especificaciones |
| Nvidia | Quadro RTX 8000 | 9 | 4608 | 576 | 72 | 48 GB | |
| Nvidia | Quadro RTX 6000 | 1 | 4608 | 576 | 72 | 24 GB | |
| Nvidia | RTX 6000 ADA Generation | 1 | 18176 | 568 | 142 | 48 GB | |
El objetivo del presente documento es explicar las reglas de uso de recursos del clúster de alto rendimiento (HPC High Performance Computing) de la Escuela de Ingeniería.
El clúster es un recurso tecnológico implementado con aportes de la Escuela de Ingeniería, Institutos asociados y de iniciativas impulsadas por los profesores de la Escuela que se encuentra a disposición de la comunidad de la Escuela e Institutos asociados para finalidades docentes y de investigación principalmente. Otros tipos de uso en tareas de gestión o actividades de extensión pueden ser consideradas previa revisión del caso.
Principios Generales de la Política de Uso del Clúster
La política de uso del clúster busca satisfacer los siguientes principios generales:
- Equidad: Significa que todos los usuarios puedan tener un acceso equitativo a los recursos del clúster. Esto no implica que todos los usuarios estén restringidos a utilizar la misma cantidad de recursos, sino más bien velar por que no ocurran situaciones en que el recurso sea acaparado por pocos usuarios. Para esto la administración del recurso buscará siempre la mejor coordinación posible entre todos los usuarios.
- Flexibilidad: Teniendo la menor cantidad de restricciones de uso posible. Si se colocan restricciones es para velar por el principio de equidad mencionado. Se entiende también por flexibilidad el que los usuarios puedan ejecutar procesos de distinta naturaleza, a veces intensivos en cantidad de CPUs, de tiempo, o ambos, con diversos tipos de software, etc., de acuerdo a las necesidades particulares de una comunidad de usuarios diversa.
- Efectividad: Buscando que el recurso sea utilizado al máximo posible, evitando recursos reservados sin uso a la vez que se procura reducir tiempos de espera en las particiones.
Quienes pueden usar el clúster
Las actividades docentes y/o de investigación siempre tienen un profesor a cargo. Dado esto, la solicitud de creación de una cuenta en el clúster debe ser realizada o validada por un profesor de jornada completa integrante de la comunidad de la Escuela de Ingeniería o Institutos asociados. Las cuentas que solicite un profesor quedarán asociadas a un grupo que llevará el nombre de usuario del profesor.
Solicitud de cuenta
Puede tener cuenta en el clúster cualquier integrante de la comunidad de la Escuela de Ingeniería e Institutos asociados que necesite este recurso para fines docentes y/o de investigación. Otros tipos de uso en tareas de gestión o actividades de extensión pueden ser consideradas previa revisión del caso. La solicitud la debe realizar el profesor a cargo del usuario a través de un correo a la mesa de ayuda (7500@uc.cl), indicando los siguientes datos del usuario:
- Nombre y apellido.
- Correo institucional UC o de otra institución.
- Software que requiere ejecutar el usuario.
- Fecha de expiración (eliminación).
- Indicar si el usuario es de pregrado, magíster, doctorado, postdoctorado, funcionario ayudante de investigación, etc.
- Indicar para que se usará al clúster, por ejemplo, "Tesis de Magíster", "IPRE", "Fondecyt Regular #111111", etc. Esta información se mostrara en el sitio web del clúster por lo que puede ser tan breve o detallada como le parezca mejor.
- Nombre del departamento, instituto, centro, etc., bajo el cual se desarrolla el proyecto.
Almacenamiento en disco
El uso de almacenamiento no tiene límites en duro pero se solicita no pasar los 100GB, el usuario una vez concluido sus procesos debe eliminar los archivos temporales y sacar de su cuenta los resultados. El control es más bien preventivo realizando revisiones automáticas diarias e informando por correo a los usuarios cuando su uso es excesivo, y mediante alertas preventivas se evita que los discos lleguen a niveles riesgosos de uso.
Respaldos de información
La plataforma del cluster cuenta con discos de respaldo para mantener la operación en caso de que alguna pieza de hardware falle, sin embargo, la responsabilidad de tener un respaldo de la información es de cada usuario. Debe estar consciente de que los componentes del equipo pueden fallar y que la información podría perderse si no ha realizado una copia de ellos en otro lugar, no pudiendo exigir sus datos al personal encargado.
Licencias de software
La incorporación de licencias de software que pueda ejecutarse en el cluster será de responsabilidad del investigador o profesional que lo requiera, teniendo que asumir el costo de ella y la gestión para obtenerla. Está estrictamente prohibida la instalación y ejecución de software que no esté licenciado.
Datos utilizados para investigación
Es posible que se ejecuten operaciones dentro de la plataforma que requieran datos sensibles, como por ejemplo:
- Fichas medicas
- Datos de contacto
- Utilización de información personal (como RUT, etc)
Es de responsabilidad de cada usuario verificar que la utilización de los datos sea legal, y además que la plataforma tenga la seguridad requerida para tratar con esos datos. Cualquier uso indebido será informado a las instituciones correspondientes.
Desarrollo de Software
Todo software que se desarrolle en el cluster de la Escuela de Ingeniería, y que esté presente en la plataforma, es de autoría de los desarrolladores o empresas correspondientes.
Soporte
Para solicitar soporte debe enviar un correo a la Mesa de Ayuda (7500@uc.cl) con su inquietud. El caso será analizado debido a que existen múltiples factores que hacen que un programa no se ejecute, por ejemplo, que el programa del usuario presente errores.
La Mesa de Ayuda prestará soporte sólo cuando el problema sea de la plataforma y no de algún elemento ingresado al sistema por el usuario.
Es importante destacar que el personal de la Subdirección de Servicios Informáticos puede tener acceso a todos los archivos del sistema tal como lo indica la legislación chilena de protección de datos y recursos computacionales. Esto para poder prestar soporte o detectar actividad ilegal en el sistema. Al utilizar el sistema, usted acepta que estas atribuciones del personal encargado.
Particiones
Actualmente los usuarios no tienen limitaciones para solicitar recursos al usar las particiones, pero deben tener la precaución de no acaparar todos los recursos, de ocurrir esta situación se detendrán los procesos. Actualmente hay tres particiones:
- Partición “full”: Esta partición la pueden utilizar todos los usuarios y cuenta con procesadores INTEL.
- Partición “512×1024”: Esta partición la pueden utilizar todos los usuarios, pero tiene prioridad para el equipo de trabajo de los profesores que aportaron uno de los dos nodos, cuenta con procesadores AMD.
- Partición “gpus”: Esta partición la pueden utilizar todos los usuarios, pero tiene prioridad para el equipo de trabajo de los profesores que aportaron el nodo.
Prioridades en las particiones
Al momento que los trabajos quedan en estado pendiente debido a que no hay más recursos libres en el clúster, se comienza a priorizar la ejecución de estos trabajos. La política que usa el clúster es del tipo multifactor, los factores utilizados son:
- Tamaño del trabajo: Entre más recursos solicite el trabajo menor será la prioridad que se le dará.
- Edad del trabajo: Este es el tiempo que lleva un trabajo esperando para poder ejecutarse, entre mayor sea la cantidad de tiempo esperando mayor será la prioridad.
- Uso efectivo de los recursos solicitados: Si un usuario para trabajos anteriores ha solicitado más recursos de los que efectivamente usó el trabajo, la prioridad del trabajo bajará pero si uso lo que solicitó la prioridad aumentará.
Nodo de Login
No está permitido correr trabajos de gran utilización de recursos en el nodo de login (cluster.ing.uc.cl), ya que este es para lanzar trabajos y realizar pruebas rápidas. Cualquier programa será cancelado si está sobrecargando este nodo.
El objetivo del presente documento es explicar las reglas de incorporación de recursos (hardware o software) al clúster de alto rendimiento (HPC High Performance Computing) que pudieran ser aportados por académicos de la Escuela de Ingeniería e Institutos asociados a la Escuela.
Principios Generales de la Política de Incorporación de Aportes al Clúster
La política de incorporación de aportes al clúster busca satisfacer los siguientes principios generales:
- Equidad: Significa que todos los usuarios puedan tener un acceso equitativo a los recursos del clúster. Esto no implica que todos los usuarios estén restringidos a utilizar la misma cantidad de recursos, sino más bien velar por que no ocurran situaciones en que el recurso sea acaparado por pocos usuarios. Para esto la administración del recurso buscará siempre la mejor coordinación posible entre todos los usuarios.
- Flexibilidad: Teniendo la menor cantidad de restricciones de uso posible. Si se colocan restricciones es para velar por el principio de equidad mencionado. Se entiende también por flexibilidad el que los usuarios puedan ejecutar procesos de distinta naturaleza, a veces intensivos en cantidad de CPUs, de tiempo, o ambos, con diversos tipos de software, etc., de acuerdo a las necesidades particulares de una comunidad de usuarios diversa.
- Efectividad: Buscando que el recurso sea utilizado al máximo posible, evitando recursos reservados sin uso a la vez que se procura reducir tiempos de espera en las particiones.
- Esfuerzo colectivo: Procurando que los aportes individuales puedan beneficiar a la comunidad de usuarios y que de esta manera todos puedan aprovechar un recurso con muchas más capacidades de cómputo que las que se lograrían de manera individual aislada.
Tipos de Aportes al Clúster
Al clúster se puede aportar hardware, software o licencias.
Hardware
Los aportes que se pueden realizar en esta categoría son:
- Servidores de cómputo: Como mínimo deben contar con dos procesadores de 16 núcleos cada uno y dos hilos cada núcleo, 128 GB de memoria RAM, dos conectores de red de 10Gbps, dos discos de 240 GB en RAID1, fuentes de poder redundante y servicio de reposición de partes y piezas ante falla por un periodo de 3 años mínimo.
- Almacenamiento: Sistema de almacenamiento que soporte ISCSI.
- GPUS
Software
Se puede aportar software con sus respectivas licencias que pueda ser usado en el clúster, es decir que pueda correr en un ambiente HPC.
Licencias
Se puede aportar licencias que aumenten la capacidad de uso de algún software que ya este instalado en el cúster.
Procedimiento de Incorporación de Aportes al Clúster
- Enviar un correo al director de tecnología quien coordinará una reunión para determinar:
- Los requerimientos específicos del aporte al clúster. En esta instancia se debe revisar la factibilidad técnica de incorporar un cierto recurso al clúster en función del presupuesto que se disponga. La factibilidad técnica involucra revisar que el hardware cumpla ciertas especificaciones que permitan su integración al clúster e infraestructura tecnológica existente, considerando aspectos como la disponibilidad de espacio en el data center, capacidad eléctrica, de clima y de red.
- La finalidad y alcances de uso. Los usos pueden tener finalidades docentes, de investigación, gestión o extensión, y alcances que impactan a toda la Escuela, departamentos o iniciativas particulares. De acuerdo a los principios del clúster la prioridad la tienen los proyectos de docencia o investigación, entendiendo que clúster contribuye a las labores fundamentales de la Escuela y la comunidad de usuarios del clúster. Proyectos de gestión o extensión, y otras situaciones especiales deberán ser analizadas caso a caso obedeciendo los principios de la política de incorporación de recursos al clúster.
- Completar el formulario de declaración del aportante con datos que incluyen: nombre del profesor, datos del proyecto, datos de los usuarios, aplicaciones/lenguajes, finalidad de uso (docente, investigación, extensión).
- Apoyo en la gestión de la compra.
- Integración al clúster.
- Envío de carta de reconocimiento del aporte.
Retiro de Aportes
Cumpliendo con el principio de esfuerzo colectivo, los aportes de los investigadores al clúster no podrán retirarse ya que comprometen la plataforma entera y tienen un efecto negativo sobre toda la comunidad de usuarios del clúster.
Modificaciones a la Políticas de Incorporación al Clúster
Revisiones y modificaciones a esta política serán realizadas por el Grupo de Trabajo del HPC, las cuales deberán ser aprobadas por mayoría cualificada de los 2/3, y luego ratificadas por la Dirección de la Escuela de Ingeniería. Los miembros del Grupo de Trabajo del HPC se encuentran publicados en la página web del HPC https://cluster.ing.puc.cl . Cambios aprobados a las políticas serán publicados en la misma página web y comunicados oportunamente a los usuarios.
Resumen
- Debió recibir su nombre de usuario o usuaria y su contraseña, también llamadas credenciales, desde la mesa de ayuda de la Escuela de Ingeniería (7500@uc.cl).
- Debe iniciar sesión con sus credenciales en el servidor clúster.ing.uc.cl con un cliente SSH, deberá usar la interfaz de línea de comandos de Linux para enviar sus trabajos al clúster. Si necesita instalar y configurar su ambiente de trabajo en Python o compilar algún software debe abrir una sesión interactiva en algún nodo de cómputo, se explicará más adelante cómo hacerlo . El servidor de inicio de sesión no es para ejecutar trabajos, los trabajos que se ejecuten en éste servidor serán cancelados.
- Después que haya iniciado sesión, debe editar el archivo "submit.sh" en el cual usted le indicara al clúster que recursos necesita y que programa ejecutar. El archivo "submit.sh" estará en la raíz de su cuenta y es un ejemplo de configuración que puede modificar.
- Luego debe enviar su trabajo al clúster con el comando "sbatch", por ejemplo "sbatch submit.sh". El clúster buscara un nodo de computo donde estén disponibles los recursos que solicito y en ese nodo ejecutara su programa.
- Posteriormente podrá monitorear el trabajo o los trabajos en ejecución y luego ver los resultados dependiendo del tipo de salida que haya definido. El clúster usa el gestor de tareas SLURM, por lo que recomendamos leer la documentación básica para el uso de este sistema.
¿ Que es SSH ?
SSH es un protocolo para una conexión remota segura. En Linux, que es el sistema operativo que usa el clúster, se usa este protocolo para conectarse al servidor de inicio de sesión o también llamado "servidor de Login”.
Clientes SSH
Hay diferentes clientes SSH según el sistema operativo, con todos siempre llegara a la interfaz de línea de comandos de Linux del clúster. Recuerde que en la interfaz de línea de comandos primero se escribe el comando, las opciones del comando y luego se presiona el botón "Enter" para que se ejecute el comando.
Como instalar un cliente SSH en Windows
Puede ver este video y/o leer la explicación también. En Windows 10 existe el símbolo de sistema, el cual es un terminal en el cual se puede ejecutar un cliente SSH, pero le recomendamos usar el "Terminal de Windows" ya que cuenta con "pestañas" igual que los navegadores Web. Para abrir el símbolo del sistema en Windows 10 escriba "CMD" en la "lupa" y elija ese programa o instale el "Terminal de Windows" desde "Microsoft Store", en Windows 11 el "Terminal de Windows" ya viene instalado.
Cliente SSH para MAC y Linux
Los sistemas operativos MAC en cualquiera de sus versiones y Linux en cualquiera de sus distribuciones traen un terminal con pestañas. En el buscador del sistema operativo debe buscar "Terminal" y lo encontrará.
Como conectarse al clúster con un cliente SSH
Puede ver este video y/o leer las instrucciones también. Desde el terminal de Windows 10, Windows 11, MAC o Linux, debe ejecutar el siguiente comando:
ssh usuario@cluster.ing.uc.cl |
- Reemplace "usuario" por su nombre de usuario, por ejemplo "ssh mario.aguilera@cluster.ing.uc.cl". La primera vez que se conecte a su cuenta aparecerá una pregunta, escriba "yes" y presione la tecla "enter".
- Luego solicitará su contraseña la cual debe escribir y presionar la tecla "enter", cuando escriba su contraseña no aparecerá nada en el terminal, solo en MAC aparece un "punto" cada vez que presione una tecla, después de esto ya habrá iniciado sesión en su cuenta del clúster.
- Para salir de su sesión SSH en el clúster debe ejecutar el comando "exit".
- Luego de esto, cada vez que inicie sesión el cliente SSH le preguntará su contraseña, pero en las siguientes secciones se explica cómo configurar una conexión sin necesidad de ingresar su contraseña.
Usar un puerto diferente en la conexión SSH
El puerto que usa el servicio SSH es el 22, si éste puerto cambiara, por ejemplo al puerto 38400, en el cliente SSH de Windows, MAC y Linux lo puede cambiar también de la siguiente forma:
| ssh -p 38400 usuario@cluster.ing.uc.cl |
Conexión SSH sin contraseña en Windows 10 o Windows 11
Puede ver este video y/o leer las instrucciones también. Una vez que ya se haya conectado por primera vez a su cuenta en el clúster, para que el cliente SSH en el terminal de Windows no solicite contraseña, hay que seguir los siguientes pasos:
- Abra el terminal de Windows.
- Ejecute el comando " ssh-keygen " y solo presione la tecla " enter " para las dos preguntas que realiza.
- Ejecute el comando " scp .ssh/id_ed25519.pub usuario@cluster.ing.uc.cl: ". Escriba su contraseña y presione la tecla " enter ".
- Ejecute el comando " ssh usuario@cluster.ing.uc.cl "mkdir .ssh; cat id_ed25519.pub >> .ssh/authorized_keys; rm -rf id_ed25519.pub" ".
- Ahora cuando ejecute " ssh usuario@cluster.ing.uc.cl " el cliente SSH ya no solicitara su contraseña, ya que estará usando certificados para la autenticación. Reemplace "usuario" por su nombre de usuario.
El resumen de los comandos son:
ssh-keygen scp .ssh/id_ed25519.pub usuario@cluster.ing.uc.cl: ssh usuario@cluster.ing.uc.cl "mkdir .ssh; cat id_ed25519.pub >> .ssh/authorized_keys; rm -rf id_ed25519.pub" ssh usuario@cluster.ing.uc.cl |
Si usted ya tiene creado un certificado público en su computador , solo reemplace el nombre del archivo con el que tiene su llave pública.
Conexión SSH sin contraseña en Linux o MAC
Puede ver este video y/o leer las instrucciones también. Una vez que ya se haya conectado por primera vez a su cuenta en el clúster, para que el cliente SSH en Linux o MAC no solicite contraseña, hay que seguir los siguientes pasos:
- Abra el terminal de Linux o MAC.
- Ejecute el comando " ssh-keygen " y solo presione la tecla " enter " para las dos preguntas que realiza.
- Ejecute el comando " ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@cluster.ing.uc.cl ". Reemplace "usuario" por su nombre de usuario. Escriba su contraseña y presione la tecla " enter ".
- Ahora cuando ejecute " ssh usuario@cluster.ing.uc.cl " el cliente SSH ya no solicitara su contraseña, ya que estará usando certificados para la autenticación. Reemplace "usuario" por su nombre de usuario.
El resumen de los comandos son:
ssh-keygen ssh-copy-id -i ~/.ssh/id_ed25519.pub usuario@cluster.ing.uc.cl ssh usuario@cluster.ing.uc.cl |
Si usted ya tiene creado un certificado público en su computador , solo reemplace el nombre del archivo con el que tiene su llave pública.
Como copiar archivos o carpetas hacia o desde su cuenta en el clúster
En Windows, MAC o Linux puede copiar archivos o carpetas hacia o desde su cuenta en el clúster por medio de la interfaz de línea de comandos usando el "terminal" o de forma gráfica usando el programa "FileZilla", el cual no tiene costo ya que es de fuente abierta.
Como copiar archivos o carpetas por medio de la interfaz de línea de comandos
Puede ver este video y/o leer las instrucciones también. Para copiar archivos o carpetas completas, hay que seguir los siguientes pasos:
Copiar archivos o carpetas hacia su cuenta
- Abra el terminal de Windows, MAC o Linux.
- Cámbiese a la carpeta donde esta el archivo o carpeta que desea copiar a su cuenta en el clúster.
- Ejecute el comando " scp -r archivo-o-carpeta usuario@cluster.ing.uc.cl: ". Reemplace "usuario" por su nombre de usuario. Esto solicitara su contraseña si no a configurado la conexión SSH sin contraseña.
- Si desea dejar el archivo o carpeta dentro de una carpeta que ya existe en su cuenta, ejecute el comando: " scp -r archivo-o-carpeta usuario@cluster.ing.uc.cl:carpeta-en-mi-cuenta ". Reemplace "usuario" por su nombre de usuario.
Copiar archivos o carpetas desde su cuenta
- Abra el terminal de Windows, MAC o Linux.
- Cámbiese a la carpeta donde desea dejar el archivo o carpeta que copiara desde su cuenta en el clúster.
- Ejecute el comando " scp -r usuario@cluster.ing.uc.cl:archivo-o-carpeta . ". Reemplace "usuario" por su nombre de usuario. Esto solicitara su contraseña si no a configurado la conexión SSH sin contraseña.
- Si el archivo o carpeta está dentro otra carpeta dentro de su cuenta el clúster , ejecute el comando: " scp -r usuario@cluster.ing.uc.cl:otra-carpeta/archivo-o-carpeta . ". Reemplace "usuario" por su nombre de usuario.
El resumen de los comandos son:
scp -r archivo-o-carpeta usuario@cluster.ing.uc.cl: scp -r archivo-o-carpeta usuario@cluster.ing.uc.cl:carpeta-en-mi-cuenta scp -r usuario@cluster.ing.uc.cl:archivo-o-carpeta . scp -r usuario@cluster.ing.uc.cl:otra-carpeta/archivo-o-carpeta . |
Como copiar archivos o carpetas de forma grafica con FileZilla
Puede ver este video y/o leer las instrucciones también. Para copiar archivos o carpetas completas, hay que seguir los siguientes pasos:
Instalar FileZilla
- Instale "FileZilla", para eso en Google busque "FileZilla", verá el enlace donde se puede bajar "FileZilla". El sitio web de FileZilla detectara que sistema operativo usa para bajar el programa correcto.
- Ejecute el programa que bajo para instalar "FileZilla".
- Para instalar siempre presione el botón "Next", en una sección de la instalación se solicita aceptar o declinar la instalación de un programa diferente a FileZilla, usted decida si acepta o no.
Usar FileZilla
Ya que esto es en un programa gráfico es mejor que vea este video para saber como copiar archivos o carpetas hacia o desde su cuenta del clúster.
Particiones
Los trabajos deben ser enviados a una cierta partición, esto hace que se pueda ordenar mejor la ejecución de los trabajos de los usuarios. Las particiones habilitadas para el uso son:
Ver recursos disponibles
Antes de enviar un trabajo al clúster se deben verificar los recursos disponibles para configurar correctamente el script, para eso se debe ejecutar:
squeue
Enviar un trabajo
El comando para enviar un trabajo es sbatch, el cual permite ejecutar un trabajo en una partición. Si bien a sbatch se le pueden pasar todos los parámetros directamente, se recomienda crear un script que permita definir los parámetros para el trabajo, hay ejemplos mas abajo. Posteriormente se podrá enviar el trabajo como:
sbatch submit.sh
Solicitud de CPU
Este es un ejemplo del archivo que se le puede pasar a sbatch. Dentro de él se indican las CPUs que requiere su trabajo. Debe comprender que no por solicitar mas CPUs su trabajo se ejecutara mas rápido, para que un programa use varias CPUs al mismo tiempo debe codificar su programa para que use todos los recursos solicitados, por ejemplo en Python puede usar Multiprocessing, o para C, C++ o Fortran puede usar OpenMP. Este es un ejemplo para un programa que no esta creado para usar multiproceso.
#!/bin/bash # Nombre del trabajo #SBATCH --job-name=Prueba1 # Archivo de salida #SBATCH --output=salida.txt # Partición #SBATCH --partition=full # Reporte por correo #SBATCH --mail-type=ALL #SBATCH --mail-user=usuario@ing.puc.cl # Solicitud de cpus #SBATCH --ntasks=1 #SBATCH --cpus-per-task=1 python calculo.py
Si su programa puede usar mas de una CPU en el parámetro “–cpus-per-task” debe indicar la cantidad de CPUs que requiere.
Solicitud de GPU
Este es un ejemplo del archivo que se le puede pasar a sbatch para usar una GPU. Al igual que para usar múltiples CPUs, para usar GPUs su programa debe estar codificado para usar este recurso.
#!/bin/bash # Nombre del trabajo #SBATCH --job-name=Prueba1 # Archivo de salida #SBATCH --output=salida.txt # Partición #SBATCH --partition=gpus # Solicitud de gpus #SBATCH --gres=gpu:1 # Reporte por correo #SBATCH --mail-type=ALL #SBATCH --mail-user=usuario@ing.puc.cl python calculo.py
Monitoreo de trabajos
Para monitorear se puede utilizar el comando squeue o sinfo. El comando squeue entrega información de los trabajos que hay en ese momento en el clúster. Uno de los campos importantes es “ST”, en ese campo se indica el estado del trabajo, si esta en “R” quiere decir que se esta ejecutando, pero si hay trabajos en estado “PD”, que es pendiente, quiere decir que el clúster tiene utilizados todos sus recursos y que los trabajos que se envíen quedaran esperando. Para estos trabajos en estado pendiente o en espera se comienza a aplicar la priorización multifactor que se explica en las “Políticas de Uso“. La salida estándar del comando squeue es la siguiente:
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) 30070 full Trabajo1 usuario1 R 1:07:37 1 n10 30062 full Trabajo2 usuario1 R 3:00:36 1 n10 30061 full Trabajo3 usuario1 R 3:00:39 1 n8 30037 full Trabajo4 usuario1 R 7:41:46 1 n6 30029 full Trabajo5 usuario1 R 7:42:06 1 n12 30016 full T24 usuario4 R 14:59:06 1 n4 29941 full Trabajo8 usuario2 R 19:43:42 1 n2 29746 full T12.1 usuario3 R 1-23:27:50 1 n8 29657 full T12.1 usuario3 R 3-00:05:19 1 n9 29411 full J123-1 usuario8 R 6-02:49:29 1 n2 29193 full J123-2 usuario8 R 8-00:13:19 1 n15
También se puede formatear la salida para que entregue la información de la forma que se requiera:
squeue -o "%.10u %.10i %.10P %.20j %.11M %.10T %.4C %N" -S -t
USER JOBID PARTITION NAME TIME STATE CPUS NODELIST usuario1 30063 full Trabajo1 1:43:09 RUNNING 32 n9 usuario5 30062 full Trabajo5 3:10:53 RUNNING 16 n10 usuario5 30018 full Trabajo5.1 7:52:53 RUNNING 24 n15 usuario3 30017 full Trabajo3 13:53:33 RUNNING 8 n8 usuario8 29403 full Trabajo8 6-03:00:23 RUNNING 16 n15 usuario8 29193 full Trabajo8.1 8-00:23:36 RUNNING 16 n15
El comando sinfo entrega información de los nodos de computo, su salida estándar es la siguiente:
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST full* up infinite 8 mix n[2-4,6,8-10,12] full* up infinite 1 alloc n15 512x1024 up infinite 2 idle n[1,11] gpus up infinite 1 idle n7
También se puede formatear la salida para que entregue la información de la forma que se requiera:
sinfo -N -o "%.10N %.10O %.10e %.20C"
NODELIST CPU_LOAD FREE_MEM CPUS(A/I/O/T)
n1 0.01 463832 0/256/0/256
n2 20.28 77392 14/18/0/32
n3 24.94 27538 6/26/0/32
n4 5.26 36229 20/12/0/32
n6 2.93 17183 4/28/0/32
n7 0.09 194103 0/96/0/96
n8 139.47 10430 57/7/0/64
n9 82.33 16673 38/2/0/40
n10 23.81 7659 22/10/0/32
n11 0.01 492040 0/256/0/256
n12 20.69 11915 24/8/0/32
n15 49.76 63109 32/0/0/32Eliminar trabajos
Si por algún motivo desea eliminar un trabajo, lo puede realizar con el comando scancel. Por ejemplo para eliminar el trabajo que aparece en el ejemplo anterior se debe ejecutar:
scancel 23
Salida de trabajo
Las salidas de los trabajos se almacenaran en el archivo que se indique con el parámetro “–output”, además en los ejemplos se indican los parámetros para que llegue información por correo.
Para el lenguaje de programación Python la política es que cada usuario instale Anconda en su cuenta y administre su entrono con los paquetes que requiera.
Instalar Anaconda
Anaconda se instala por defecto en la raíz de su cuenta en el directorio “anaconda3”, todos los paquetes que requiera se instalaran dentro de ese directorio por lo que no requiere de ningún permiso especial.
Para instalar anaconda primero debe ingresar a su cuenta en el clúster y ejecutar lo siguiente en la línea de comandos de linux:
$ wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh $ chmod 755 Anaconda3-2021.05-Linux-x86_64.sh $ ./Anaconda3-2021.05-Linux-x86_64.sh
Al final de la instalación consulta si quiere activar anaconda en cuanto ingrese a su cuenta, se recomienda responder “yes”.
Do you wish the installer to initialize Anaconda3 by running conda init? [yes|no] [no] >>> yes
Esta activación automática después se puede deshabilitar con el comando.
conda config --set auto_activate_base false
Si respondió “yes” a la consulta, para que tome efecto debe salir de su cuenta y volver a ingresar. Para verificar puede ejecutar el comando “which python”, lo que indicara que el comando esta dentro del directorio “anaconda3”.
(base) [usuario1@cluster ~]$ which python ~/anaconda3/bin/python
Versiones de Anaconda
Las versiones de Anaconda corresponden a una versión de Python específica, para encontrar todos archivos de instalación debe ingresar al archivo de instaladores.
- Anaconda3-2019.10 -> Python 3.7.4
- Anaconda3-2020.02 -> Python 3.7.6
- Anaconda3-2020.07 -> Python 3.8.3
- Anaconda3-2021.05 -> Python 3.8.5
Instalar paquetes en su entorno Anaconda
Anaconda cuenta con el comando “conda” para gestionar los paquetes. Anaconda ya viene con varios paquetes instalados. Algunas tareas comunes son: Listar los paquetes instalados.
conda list
Buscar paquetes disponibles para instalar.
conda search nombredelpaquete
Instalar un paquete.
conda install nombredelpaquete
MATLAB
El clúster cuenta con la versión de Matlab R2021a Update 4. La ejecución de programas Matlab en el clúster no tiene despliegue gráfico, usted debe subir a su cuenta su archivo con el código de Matlab y luego enviarlo al clúster.
Cargar MATLAB
Para usar MATLAB en su cuenta del clúster debe ejecutar el siguiente comando:
$ module load MATLAB/R2021a
Ver la versión y Toolboxes disponibles
Para ver la versión de Matlab y los tolboxes disponibles debe ejecutar los siguientes comandos dentro de su cuenta:
$ module load MATLAB/R2021a $ matlab -nodisplay -nojvm -batch "ver"
Enviar un trabajo MATLAB al Clúster
Una vez que tenga el archivo con el código de Matlab en su cuenta puede enviar el trabajo al clúster. En los dos ejemplos a continuación la salida del programa quedara en el archivo “salida.txt”.
Si su código no ejecutara tareas en paralelo (Parallel Computing Toolbox) solo debe solicitar dos cpus, y el archivo de configuración debería ser así:
#!/bin/bash # Nombre del trabajo #SBATCH --job-name=Matlab-Test # Archivo de salida #SBATCH --output=salida.txt # Partición #SBATCH --partition=512x1024 # Solicitud de cpus #SBATCH --ntasks=1 #SBATCH --cpus-per-task=2 #SBATCH --mail-user=sunombredeusuario@uc.cl #SBATCH --mail-type=ALL module load MATLAB/R2021a srun matlab -nodisplay < ejemplo.m
Si su código ejecutara tareas en paralelo usando el “Parallel Computing Toolbox”, debe solicitar la cantidad de cpus que especifique su código, por ejemplo si a la función “parpool” le indica que levante 12 workers, la configuración debiese ser así:
#!/bin/bash # Nombre del trabajo #SBATCH --job-name=Matlab-Test # Archivo de salida #SBATCH --output=salida.txt # Partición (Cola de trabajo) #SBATCH --partition=512x1024 # Solicitud de cpus #SBATCH --ntasks=1 #SBATCH --cpus-per-task=12 #SBATCH --mail-user=user1@uc.cl #SBATCH --mail-type=ALL module load MATLAB/R2021a srun matlab -nodisplay < ejemplo.m
GUROBI
El clúster cuenta con licencias para Gurobi 10.0.1, acá se indica como instalar el paquete Gurobi de Python.
Instalar el paquete GUROBI de Python
Primero se debe instalar la ultima versión de anaconda, y luego ejecutar lo siguiente:
$ conda install gurobi
Si no tiene instalada la última versión de Anaconda y el comando para instalar le indica que no encuentra el paquete de Gurobi, entonces debe ejecutar lo siguiente:
$ conda config --add channels https://conda.anaconda.org/gurobi $ conda install gurobi
Archivo de Licencia
El clúster tiene configurada la variable de ambiente GRB_LICENSE_FILE, la que indica donde esta el archivo de licencia y con lo cual el código debiese ejecutarse, si no es así ejecute lo siguiente:
$ cd $ cp $GRB_LICENSE_FILE .
TensorFlow
El clúster cuenta con varias versiones de CUDA y el driver de NVIDA 510.39.01. Se debe instalar “tensorflow-gpu” para usar las GPUs, si solo se instala “tensorflow” el proceso solo se ejecutara en CPUs. Se listaran las configuraciones que se requieren para usar cada una de estas versiones.
CUDA 10.1
La versión predeterminada en el servidor de GPUs es CUDA 10.1. Primero se debe instalar Miniconda, esta versión trae Python 3.8.
$ cd $ wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh $ chmod 755 Miniconda3-py38_4.12.0-Linux-x86_64.sh $ ./Miniconda3-py38_4.12.0-Linux-x86_64.sh
Una vez instalado Miniconda se debe instalar tensorflow-gpu versión 2.2.0.
$ conda install tensorflow-gpu=2.2.0
CUDA 11.0
Primero se debe cargar el módulo.
$ module load cuda/11.0
Luego se debe instalar Miniconda, esta versión trae Python 3.8.
$ cd $ wget https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh $ chmod 755 Miniconda3-py38_4.12.0-Linux-x86_64.sh $ ./Miniconda3-py38_4.12.0-Linux-x86_64.sh
Una vez instalado Miniconda se debe instalar tensorflow-gpu versión 2.4.1.
$ conda install tensorflow-gpu=2.4.1
CUDA 11.2
Primero se debe cargar el módulo.
$ module load cuda/11.2
Luego se debe instalar Miniconda, esta versión trae Python 3.9.
$ cd $ wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh $ chmod 755 Miniconda3-py39_4.12.0-Linux-x86_64.sh $ ./Miniconda3-py39_4.12.0-Linux-x86_64.sh
Una vez instalado Miniconda se debe activar el repositorio “conda-forge” e instalar “tensorflow-gpu” versión 2.6.0.
$ conda config --add channels conda-forge $ conda install tensorflow-gpu=2.6.0
Fenics
FEniCS 2019 es una versión heredada, su última versión 2019.1.0 se libero en abril del 2019.
$ cd $ wget https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh $ chmod 755 Miniconda3-py39_4.12.0-Linux-x86_64.sh $ ./Miniconda3-py39_4.12.0-Linux-x86_64.sh $ conda install mamba $ mamba install fenics
OpenFOAM
El clúster cuenta con las versiones 2412 y 2506, para usar alguna de estas versiones se debe ejecutar uno de los siguientes comandos:
2412
source /usr/lib/openfoam/openfoam2412/etc/bashrc
2506
source /usr/lib/openfoam/openfoam2506/etc/bashrc
Visibilidad del uso de los recursos del Clúster
El uso de los recursos del clúster se registran con dos herramientas que dan la visibilidad del uso del computo y de los usuarios o usuarias. Es decir, lo primero mira principalmente el uso de la CPU, RAM y lo segundo, cuantos de esos recursos usados por un usuario o usuaria. Ha estos dos sistemas solo se puede acceder desde las redes de la UC, esto quiere decir que si esta conectado en alguna red de la UC ya sea por cable o a EDUROAM los podrá accede, esto es simplemente por seguridad.
GANGLIA
Ganglia es un software que registra el uso de los recursos computacionales del clúster (CPU, RAM) y su consola es accesible vía web. A través de este enlace podrá llegar a este sistema.
Open XDMoD
Open XDModD es un software que permite visualizar a través de una consola web el uso de los recursos por parte de los usuarios, la información la saca de los registros de SLURM. Cada cuenta de usuario esta asociada a un "Account" que se identifica por el nombre de usuario del profesor quien solicito la cuenta del usuario o usuaria. Este sistema permite ver desde diferentes criterios el uso del clúster, por ejemplo, la cantidad de horas CPU por "Account" o la utilización general en un periodo de tiempo. Por ahora este sistema no da la visibilidad del uso de las GPUs. A través de este enlace podrá llegar a este sistema.
En qué proyectos se usa o ha usado el clúster
Esta sección tiene como objetivo el hacer difusión del aporte del servicio del clúster al que hacer de la Escuela de Ingeniería, gracias a los aportes de diferentes docentes a la infraestructura de este servicio, bajo las políticas de incorporación de aportes al clúster, que se están publicadas en este mismo sitio. Esta sección se creo recién el 3 de noviembre del 2025 por lo que esta en proceso de completarse y de luego actualizarse regularmente.
| Usuario/a | Docente | Proyecto | Unidad |
| Oscar Contreras | Diego Lopez-Gracia | Tesis de Doctorado | DIEG |
| Cristian Maurer | Esteban Saez | Tesis de Doctorado | DIEG |
| Alejandro Urrutia | Varios Docentes | Varios Proyectos | CIGIDEN |
| Alumnos/as ICM3920-1 | Wolfram Jahn | Curso ICM3920-1 | DIMM |
| Alumnos/as IMT2112 | Elwin Vant Woult | Curso IMT2112 | IIMC |
| Pía Cereda | Gonzalo Valdés | IPRE | DCC |
| Camila Balbontin | Camila Balbontin | Fondecyt de Iniciación | DITL |
| Javiera Depassier | Nicolas Crossley | FONDECYT 1240426 | CIB |
| Patricio Carvajal | |||
| Valentina Vargas | Cesar Ramírez | Proyecto ANID exploración 13220024 | IIBM |
| Javier Necochea | Esteban Sáez (UC), Kevin Hanley (UoE) | Tesis de Doctorado | DIEG |
| Benjamin Elizondo | Pedro Saa | Tesis de Magíster | DIQB |
| Belén Bravo |
Cristian Tejos |
Desarrollo de un resonador magnético de bajo costo |
CIB |
| José Antonio Rojas | |||
| Clemente Sozo |
