X

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
NodoProcesadoresNúcleos x ProcesadorTotal NúcleosRAM GBGPUsPartición
n12 AMD EPYC 7702 3100 MHz641285120512X1024
n22 AMD EPYC 7643 3900 MHz48962560512X1024
n32 AMD EPYC 9554 3750 MHz641282560512X1024
n42 AMD EPYC 9354 3.25 GHz32642560512X1024
n72 Intel Xeon Gold 5220R 2.20GHz244815367gpus
n84 AMD Opteron 6376 2300 MHz832320full
n92 Intel Xeon Silver 4216 2.10GHz163220484gpus
n112 AMD EPYC 7662 3900 MHz641285120512X1024
n142 Intel Xeon Gold 6226R 2.90GHz16321280full
Totales20336624553611 

Servidor de Almacenamiento

  • Comunicación Ethernet a 10Gbps
  • 14 Discos duros, 1 TB por disco

GPUS

GPUS
MarcaModeloCantidadCUDA CoresTENSOR CoresRT CoresGPU MEMORYEspecificaciones
NvidiaQuadro RTX 8000946085767248 GBPDF
NvidiaQuadro RTX 6000146085767224 GBPDF
NvidiaRTX 6000 ADA Generation11817656814248 GBPDF

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

  1. Enviar un correo al director de tecnología quien coordinará una reunión para determinar:
    1. 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.
    2. 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.
  2. 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).
  3. Apoyo en la gestión de la compra.
  4. Integración al clúster.
  5. 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

  1. 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).
  2. 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. 
  3. 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. 
  4. 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.
  5. 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

  1. 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".
  2. 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.
  3. Para salir de su sesión SSH en el clúster debe ejecutar el comando "exit".
  4. 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:

  1. Abra el terminal de Windows.
  2. Ejecute el comando " ssh-keygen " y solo presione la tecla " enter " para las dos preguntas que realiza.
  3. Ejecute el comando " scp .ssh/id_ed25519.pub usuario@cluster.ing.uc.cl: ". Escriba su contraseña y presione la tecla " enter ".
  4. Ejecute el comando " ssh usuario@cluster.ing.uc.cl  "mkdir .ssh; cat id_ed25519.pub >> .ssh/authorized_keys; rm -rf id_ed25519.pub" ".
  5. 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:  

  1. Abra el terminal de Linux o MAC.
  2. Ejecute el comando " ssh-keygen " y solo presione la tecla " enter " para las dos preguntas que realiza.
  3. 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 ".
  4. 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

  1. Abra el terminal de Windows, MAC o Linux.
  2. Cámbiese a la carpeta donde esta el archivo o carpeta que desea copiar a su cuenta en el clúster.
  3. 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.
  4. 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

  1. Abra el terminal de Windows, MAC o Linux.
  2. Cámbiese a la carpeta donde desea dejar el archivo o carpeta que copiara desde su cuenta en el clúster.
  3. 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.
  4. 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

  1. 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.
  2. Ejecute el programa que bajo para instalar "FileZilla".
  3. 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/32

Eliminar 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.


Python

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/aDocenteProyectoUnidad
Oscar ContrerasDiego Lopez-GraciaTesis de DoctoradoDIEG
Cristian MaurerEsteban SaezTesis de DoctoradoDIEG
Alejandro UrrutiaVarios DocentesVarios ProyectosCIGIDEN
Alumnos/as ICM3920-1Wolfram JahnCurso ICM3920-1DIMM
Alumnos/as IMT2112Elwin Vant WoultCurso IMT2112IIMC
Pía CeredaGonzalo ValdésIPREDCC
Camila BalbontinCamila BalbontinFondecyt de IniciaciónDITL
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
Desplazamiento al inicio