<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wiki.nlhpc.cl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Administrador</id>
	<title>NLHPC - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.nlhpc.cl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Administrador"/>
	<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/Especial:Contribuciones/Administrador"/>
	<updated>2026-05-29T16:43:41Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Tutorial_de_acceso_a_Leftraru_via_SSH&amp;diff=1070</id>
		<title>Tutorial de acceso a Leftraru via SSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Tutorial_de_acceso_a_Leftraru_via_SSH&amp;diff=1070"/>
		<updated>2026-04-15T18:54:08Z</updated>

		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Accediendo desde un equipo Linux o Mac OSX ==&lt;br /&gt;
Para realizar una conexión desde un sistema GNU/Linux o MacOSX, use el comando SSH (ejemplo con usuario &amp;quot;prueba&amp;quot;) e indicar el uso del puerto &#039;&#039;&#039;4603&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el usuario Dave Bowman (nombre de usuario &#039;&#039;dbowman&#039;&#039;) accede al clúster ejecutando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
dbowman@leftraru.nlhpc.cl password: &lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
dbowman@leftraru2:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Guardar información de la sesión ===&lt;br /&gt;
&lt;br /&gt;
Es posible almacenar los datos de conexión bajo el archivo &#039;&#039;&#039;~/.ssh/config&#039;&#039;&#039;, lo que nos otorgará un poco más de flexibilidad a la hora de conectarnos.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el usuario Dave Bowman edita el archivo mencionado con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi ~/.ssh/config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y agrega la siguiente información:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host leftraru&lt;br /&gt;
    Hostname leftraru.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El parámetro &#039;&#039;&#039;Host&#039;&#039;&#039; indica el valor &#039;&#039;&#039;leftraru&#039;&#039;&#039; como nombre de conexión. Este valor podrá ser utilizado directamente con el comando &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
El valor &#039;&#039;&#039;Hostname&#039;&#039;&#039; indica la dirección a la cual nos queremos conectar (puedes indicar una IP si así lo deseas).&lt;br /&gt;
&lt;br /&gt;
Los parámetros &#039;&#039;&#039;User&#039;&#039;&#039; y &#039;&#039;&#039;Port&#039;&#039;&#039; ya los hemos visto.&lt;br /&gt;
&lt;br /&gt;
Y por último el parámetro &#039;&#039;&#039;UpdateHostKeys&#039;&#039;&#039; indica si deberá aceptar o no los cambios de llaves en el servidor. Por seguridad se recomienda el valor &#039;&#039;&#039;no&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Una vez que se edito esta información, nuestro usuario podrá acceder al clúster con tan solo escribir el comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh leftraru&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Es posible tener una gran cantidad de entradas en nuestro archivo .ssh/config ====&lt;br /&gt;
&lt;br /&gt;
Un ejemplo del archivo de configuración con más cantidad de entradas sería similar a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host leftraru&lt;br /&gt;
    Hostname leftraru.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host l1&lt;br /&gt;
    Hostname leftraru1.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host l2&lt;br /&gt;
    Hostname leftraru2.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host HAL&lt;br /&gt;
    Hostname 127.0.0.1&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 9000&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con dicha configuración, el usuario podría acceder usando uno de los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh l1&lt;br /&gt;
ssh l2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accediendo desde un equipo Windows ==&lt;br /&gt;
Para conectar desde sistemas Windows, se recomienda usar Putty como cliente SSH.&lt;br /&gt;
&lt;br /&gt;
Como vemos en el ejemplo se indican los campos:&lt;br /&gt;
&lt;br /&gt;
* Hostname: dbowman@leftraru.nlhpc.cl&lt;br /&gt;
* Puerto: 4603&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Putty-dbowman-hostname.png|no]]&lt;br /&gt;
&lt;br /&gt;
Y se realiza la conexión haciendo &#039;&#039;click&#039;&#039; en el botón inferior &#039;&#039;Open&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Si la conexión es exitosa podremos ingresar el usuario y contraseña.&lt;br /&gt;
&lt;br /&gt;
En este ejemplo, es el usuario Dave Bowman (dbowman) quien intenta conectarse al clúster.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Putty-dbowman-user-ssh.png|no]]&lt;br /&gt;
&lt;br /&gt;
Recuerda que al momento de ingresar tu contraseña, esta no será desplegada en pantalla.&lt;br /&gt;
&lt;br /&gt;
=== Guardar nuestra sesión ===&lt;br /&gt;
&lt;br /&gt;
Una vez que se ingresa los valores de &#039;&#039;&#039;Hostname&#039;&#039;&#039; y &#039;&#039;&#039;Puerto&#039;&#039;&#039;, es posible almacenar dicha información indicando un nombre en el campo &#039;&#039;&#039;Saved Sessions&#039;&#039;&#039; y presionando el botón &#039;&#039;&#039;Save&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
La próxima vez que necesitemos acceder al cluster, bastará hacer doble &#039;&#039;click&#039;&#039; sobre la sesión que necesitemos abrir.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo en este caso es posible ver que las siguientes sesiones están almacenadas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Archivo:Putty-saved-sessions.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Default&lt;br /&gt;
* L1&lt;br /&gt;
* L2&lt;br /&gt;
* Leftraru&lt;br /&gt;
&lt;br /&gt;
== Acceso utilizando llaves ==&lt;br /&gt;
La autenticación con clave pública es un método de seguridad alternativo a las contraseñas, mucho más difícil de hackear y, por lo tanto, más seguro. Este método de autenticación es recomendable usarlo para acceder a servidores.&lt;br /&gt;
&lt;br /&gt;
La clave SSH consiste en la generación de un par de claves que proporcionan dos largas cadenas de caracteres, una pública y una privada. La clave pública se instala en cualquier servidor y luego se desbloquea mediante la conexión con un cliente SSH que hace uso de la clave privada. Si las dos claves coinciden, el servidor SSH permite el acceso sin necesidad de utilizar una contraseña. No obstante, para añadir una capa de seguridad adicional, siempre podemos aumentar la protección de la clave privada usando una contraseña.&lt;br /&gt;
&lt;br /&gt;
Entonces nuestro usuario Dave Bowman creará una llave en su computadora personal para copiarla en el clúster siguiendo los pasos que se indican a continuación:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~]$ ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras ejecutar el comando obtendremos la siguiente respuesta:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Generating public/private ed25519 key pair.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez ejecutada la instrucción para generar las claves, se nos pedirá que indiquemos la ruta en la que queremos almacenar la clave:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Enter file in which to save the key (/home/dave/.ssh/id_ed25519):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras indicar la ruta en la que se almacenará la clave, lo siguiente que tendremos que hacer es indicar una contraseña (puede dejar vacío para acceso directo):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Enter passphrase (empty for no passphrase):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finalmente debemos copiar nuestra llave pública al cluster:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~] ssh-copy-id -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
Number of key(s) added:        1&lt;br /&gt;
&lt;br /&gt;
Now try logging into the machine, with:   &amp;quot;ssh -p &#039;4603&#039; &#039;dbowman@leftraru.nlhpc.cl&#039;&amp;quot;&lt;br /&gt;
and check to make sure that only the key(s) you wanted were added.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ya podremos conectarnos directamente con nuestras llaves:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~] ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copiar la llave desde Windows al clúster ===&lt;br /&gt;
&lt;br /&gt;
En el caso de que se utilice Windows como sistema operativo, una posibilidad de copiar la llave es ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh -p 4603 dbowman@leftraru.nlhpc.cl &amp;quot;cat &amp;gt;&amp;gt; .ssh/authorized_keys&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si lo anterior no funciona, recomendamos que abra en una aplicación como NotePad el archivo &#039;&#039;&#039;.ssh\id_rsa.pub&#039;&#039;&#039; y copie el contenido al archivo en:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano ~/.ssh/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considere también que dependiendo de las aplicaciones utilizadas bajo Windows, este paso puede requerir de otros pasos.&lt;br /&gt;
&lt;br /&gt;
Recomedamos que lea la documentación oficial de su software.&lt;br /&gt;
&lt;br /&gt;
== Cambiar contraseña ==&lt;br /&gt;
Para cambiar la contraseña de usuario, es necesario que esta cumpla con ciertos requisitos como por ejemplo:&lt;br /&gt;
&lt;br /&gt;
* El mínimo de caracteres son 10.&lt;br /&gt;
* Debe ser alfanumérica.&lt;br /&gt;
* Tener 3 caracteres especiales (al menos 1 mayúscula – 1 minúscula y 1 número).&lt;br /&gt;
&lt;br /&gt;
Para ejecutar esta acción, utilice el siguiente comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ passwd&lt;br /&gt;
&lt;br /&gt;
Changing password for user dbowman.&lt;br /&gt;
(current) LDAP Password: &amp;lt;- Ingrese su contraseña actual.&lt;br /&gt;
&lt;br /&gt;
New password: ********* &amp;lt;- Ingrese su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
Retype new password: Reingrese su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
passwd: all authentication tokens updated successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Confirmación de cambio de clave exitoso, le recomendamos cerrar su sesión e ingresar nuevamente a nuestro sistema ingresando su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
=== Cambio de Contraseña vía Dashboard ===&lt;br /&gt;
&lt;br /&gt;
También puede cambiar su contraseña desde nuestros [[Dashboard]] siguiendo el siguiente [[Procedimiento cambio o recuperación de contraseña]].&lt;br /&gt;
&lt;br /&gt;
== Conexión a nodos actualmente utilizados ==&lt;br /&gt;
Algunas veces, por distintas circunstancias, sería deseable tener la posibilidad de ingresar al nodo donde se estén ejecutando nuestras tareas con tal de verificar su estado, comprobar ciertos valores, etc.&lt;br /&gt;
&lt;br /&gt;
Pensado en la comodidad de los usuarios, se ha implementado un módulo del gestor que colas SLURM que permite esta funcionalidad. Por tanto, el login será permitido en todas aquellas máquinas donde actualmente exista un trabajo nuestro.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo; nuestra tarea de prueba &#039;tarea_test.sh&#039; ha sido enviada a la cola y ha ingresado con el ID &#039;3469576&#039;. Slurm reservó el nodo &#039;cn053&#039; para llevar a cabo la ejecución, por tanto el usuario tiene permitido el ingreso mediante ssh al nodo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
leftraru$ sbatch tarea_test.sh&lt;br /&gt;
leftraru$ squeue&lt;br /&gt;
&lt;br /&gt;
 JOBID    PARTITION     NAME     USER   ST    TIME  NODES  NODELIST(REASON)&lt;br /&gt;
3469576    general      Prueba    test   R     1:57    1        sn007&lt;br /&gt;
&lt;br /&gt;
leftraru$ ssh sn007&lt;br /&gt;
Last login: today 2016 from leftraru.nlhpc.cl&lt;br /&gt;
sn007$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenga en cuenta que aún se mantiene la restricción de ingreso para el resto de los nodos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
leftraru$ ssh sn001&lt;br /&gt;
Access denied: user test (uid=000) has no active jobs on this node.&lt;br /&gt;
leftraru$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nodos Login ==&lt;br /&gt;
Aunque disponemos de 4 nodos para el acceso al clúster por parte de los usuarios, en general, hay que usar el nombre:&lt;br /&gt;
&lt;br /&gt;
* leftraru.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
A la hora de conectarse por SSH al clúster. Al acceder a esa dirección se consigue que los usuarios queden conectados aleatoriamente a los nodos login.&lt;br /&gt;
&lt;br /&gt;
Pero si resultara necesario, se puede acceder a un nodo login específicamente usando su nombre a la hora de realizar la conexión SSH:&lt;br /&gt;
&lt;br /&gt;
* leftraru1.nlhpc.cl&lt;br /&gt;
* leftraru2.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
== Sobre nodos de acceso y uso de multiplexadores ==&lt;br /&gt;
Debido a que Leftraru balancea la carga de los nodos Login se debe evitar el uso de screen, ya que no se garantiza el acceso al mismo nodo que tenía la sesión screen abierta una vez que el usuario cierra su sesión.&lt;br /&gt;
&lt;br /&gt;
Un usuario sólo podrá acceder por ssh a los nodos logins. En el caso de querer acceder a un nodo de cómputo, el usuario deberá tener al menos una tarea SLURM en ejecución en el nodo al cual necesite acceder, y deberá considerar que si dicha tarea finaliza, su sesión será cerrada del nodo. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Si falla muchas veces el intento de login por SSH o genera muchas conexiones, su IP podría ser bloqueada. Contacte por correo electrónico con Soporte indicando información relevante (más información [[Como_abrir_un_ticket#Problemas_de_acceso_al_clúster|aquí]]) si presenta problemas de conexión: &#039;&#039;&#039; &#039;&#039;&#039;[mailto:soporte@nlhpc.cl soporte@nlhpc.cl]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ejecución de aplicaciones gráficas ==&lt;br /&gt;
Para poder ejecutar aplicaciones gráficas, es necesario conectarse al clúster habilitando el &#039;&#039;reenvío de X11&#039;&#039; (en inglés &#039;&#039;X11 Forwarding&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Esto se consigue conectándose mediante SSH indicando los parámetros &#039;&#039;&#039;-X&#039;&#039;&#039; o &#039;&#039;&#039;-Y&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ssh -p 4603 -X dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
Si ha logrado conectarse podrá ejecutar la aplicación con su interfaz gráfica:&lt;br /&gt;
&lt;br /&gt;
 ml ncview/2.1.7&lt;br /&gt;
 ncview mi_archivo.nc&lt;br /&gt;
&lt;br /&gt;
Si la aplicación no cuenta con interfaz gráfica podrá utilizar la línea de comandos de manera normal.&lt;br /&gt;
&lt;br /&gt;
=== Para usuarios de OS X ===&lt;br /&gt;
Si utiliza una computadora con OS X, deberá instalar en su computadora XQuartz, disponible desde: https://www.xquartz.org/&lt;br /&gt;
&lt;br /&gt;
Luego de eso podrá utilizar el comando indicado en la sección anterior.&lt;br /&gt;
&lt;br /&gt;
=== Para usuarios de Windows ===&lt;br /&gt;
Si utiliza una computadora con Windows, deberá instalar un programa como XMing, disponible desde:http://www.straightrunning.com/XmingNotes/&lt;br /&gt;
&lt;br /&gt;
Una vez instalado en su computadora, deberá activar el reenvío de X11 en su aplicación.&lt;br /&gt;
Por ejemplo, al momento de crear una conexión debe ir a la sección &#039;&#039;&#039;Conexión&#039;&#039;&#039;→&#039;&#039;&#039;SSH&#039;&#039;&#039;→&#039;&#039;&#039;X11&#039;&#039;&#039; y seleccionar la opción &#039;&#039;&#039;Enable X11 forwarding&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:X11-forwarding.png|Putty y reenvío de X11]]&lt;br /&gt;
&lt;br /&gt;
== Problemas conocidos ==&lt;br /&gt;
=== IP bloqueada ===&lt;br /&gt;
Si ha ingresado su contraseña de manera equivocada en varias oportunidades, su acceso puede ser bloqueado por razones de seguridad. Favor enviar un correo a [mailto:soporte@nlhpc.cl soporte@nlhpc.cl] indicando su IP pública.&lt;br /&gt;
&lt;br /&gt;
Si desconoce su IP pública puede vistar https://miip.cl o un servicio similar a su elección.&lt;br /&gt;
&lt;br /&gt;
=== No logra acceder desde su lugar de trabajo ===&lt;br /&gt;
Pruebe conectándose a otra red.&lt;br /&gt;
&lt;br /&gt;
Una prueba sencilla y rápida es compartir la conexión a Internet de su celular móvil (&#039;&#039;hotspot&#039;&#039;) y probar acceder al clúster.&lt;br /&gt;
&lt;br /&gt;
Esta prueba permite cambiar de IP y no tener restricciones en base a las políticas de su lugar de trabajo.&lt;br /&gt;
&lt;br /&gt;
Si logra conectarse de esta manera, contacte a su Administrador de Sistemas local e indíquele esta situación, haciendo especial énfasis en mencionar el puerto &#039;&#039;&#039;4603&#039;&#039;&#039; y el protocolo &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== SSH desconoce el identificador de los nodos de acceso ===&lt;br /&gt;
En ocasiones puede presentar problemas de acceso debido a las llaves de identificación de los servidores de acceso.&lt;br /&gt;
&lt;br /&gt;
Puede probar a verificar si en su directorio personal existe el directoro &#039;&#039;&#039;.ssh&#039;&#039;&#039;.&lt;br /&gt;
Para los usuarios de Linux, OS X y Powershell pueden acceder simplemente con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/.ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dentro de dicho directorio podrá ver que existe un archivo llamado &#039;&#039;&#039;known_hosts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Puede eliminar o renombrar dicho archivo para que en el siguiente intento de conexión se genere nuevamente.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/.ssh&lt;br /&gt;
mv known_hosts known_hosts_backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Luego al conectar nuevamente a &#039;&#039;&#039;leftraru.nlhpc.cl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
se nos pedirá confirmar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The authenticity of host &#039;[leftraru.nlhpc.cl]:4603 ([146.83.2.234]:4603)&#039; can&#039;t be established.&lt;br /&gt;
ED25519 key fingerprint is SHA256:Murakami74f74....&lt;br /&gt;
This key is not known by any other names.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes&lt;br /&gt;
Warning: Permanently added &#039;[leftraru.nlhpc.cl]:4603&#039; (ED25519) to the list of known hosts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lo anterior también lo puede ejecutar para los nodos de acceso específicos &#039;&#039;&#039;leftraru1.nlhpc.cl&#039;&#039;&#039; y &#039;&#039;&#039;leftraru2.nlhpc.cl&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Usuarios de Putty ====&lt;br /&gt;
En el caso de utilizar Putty, es necesario que abra el Registro de Windows, busque el valor &#039;&#039;&#039; HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys&#039;&#039;&#039; y elimine los valores asociados a los servidores de acceso.&lt;br /&gt;
&lt;br /&gt;
Puede buscar más información en el siguiente [https://www.google.com/search?q=putty+como+borrar+archivo+known+hosts link].&lt;br /&gt;
&lt;br /&gt;
==== Otras aplicaciones ====&lt;br /&gt;
Dependiendo de las aplicaciones que utilice y los sistemas operativos, recomendamos que busque información sobre como eliminar las preferencias específicas de su aplicación, como también utilizar las palabras claves &#039;&#039;&#039;known hosts&#039;&#039;&#039; al buscar información específica de la herramienta que esté utilizado.&lt;br /&gt;
&lt;br /&gt;
=== Error de conexión en redes institucionales (Firewall) ===&lt;br /&gt;
Si experimenta problemas conectándose desde su red institucional, es muy probable que el firewall local esté bloqueando el &#039;&#039;&#039;puerto 4603&#039;&#039;&#039;. Para confirmarlo, ejecute el comando correspondiente a su sistema operativo:&lt;br /&gt;
&lt;br /&gt;
==== Verificación de conectividad ====&lt;br /&gt;
&lt;br /&gt;
; Desde Linux / macOS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nc -zv leftraru.nlhpc.cl 4603&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Puerto abierto:&#039;&#039;&#039; Verá un mensaje similar a &amp;lt;code&amp;gt;Connection to leftraru.nlhpc.cl 4603 port [tcp/*] succeeded!&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Puerto bloqueado:&#039;&#039;&#039; Verá un error de &amp;lt;code&amp;gt;Connection refused&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;Timeout&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; Desde Windows (PowerShell):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Test-NetConnection -ComputerName leftraru.nlhpc.cl -Port 4603&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Puerto abierto:&#039;&#039;&#039; En la última línea leerá &amp;lt;code&amp;gt;TcpTestSucceeded : True&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Puerto bloqueado:&#039;&#039;&#039; Leerá &amp;lt;code&amp;gt;TcpTestSucceeded : False&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Resolución del problema ====&lt;br /&gt;
&lt;br /&gt;
Si confirma que el acceso está restringido, debe realizar las siguientes acciones:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Prueba de descarte (Hotspot):&#039;&#039;&#039; Conecte su equipo a una red externa, como el punto de acceso de su dispositivo móvil. Si logra conectarse exitosamente de esta manera, habrá descartado un problema con el clúster.&lt;br /&gt;
# &#039;&#039;&#039;Gestión con soporte TI:&#039;&#039;&#039; Con la prueba anterior como respaldo, deberá contactar con el administrador de red de su institución para solicitar la apertura del &#039;&#039;&#039;puerto 4603&#039;&#039;&#039;, indicando que es necesario para la conexión al clúster del NLHPC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Contraseña incorrecta ===&lt;br /&gt;
Puede solicitar una nueva contraseña a nuestro correo electrónico [mailto:soporte@nlhpc.cl soporte@nlhpc.cl].&lt;br /&gt;
&lt;br /&gt;
Favor indicar su nombre de usuario para esto.&lt;br /&gt;
&lt;br /&gt;
Recuerde que el remitente será contrastado con nuestros registros de su cuenta.&lt;br /&gt;
&lt;br /&gt;
== Si necesita soporte ==&lt;br /&gt;
&lt;br /&gt;
Si necesita soporte o tiene problemas de acceso escriba a &#039;&#039;&#039;[mailto:soporte@nlhpc.cl soporte@nlhpc.cl]&#039;&#039;&#039; indicando su nombre de usuario, su IP pública, aplicaciones utilizadas y los mensajes de error que haya observado.&lt;br /&gt;
&lt;br /&gt;
Algunos puntos a considerar en el siguiente [https://wiki.nlhpc.cl/Como_abrir_un_ticket#Problemas_de_acceso_al_cl%C3%BAster enlace].&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
Guía de generación de llaves SSH y su uso bajo sistema operativo Windows en el siguiente [https://chrisjhart.com/Windows-10-ssh-copy-id/ enlace].&lt;br /&gt;
&lt;br /&gt;
Playlist con vídeo tutoriales en canal de [https://www.youtube.com/watch?v=mWa-1Ad1SmY&amp;amp;list=PL6GflPS8SOqrEeAbBKOKqhWy3y3LF_gQ6 YouTube].&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Tutorial_de_acceso_a_Leftraru_via_SSH&amp;diff=1069</id>
		<title>Tutorial de acceso a Leftraru via SSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Tutorial_de_acceso_a_Leftraru_via_SSH&amp;diff=1069"/>
		<updated>2026-04-15T18:51:31Z</updated>

		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Accediendo desde un equipo Linux o Mac OSX ==&lt;br /&gt;
Para realizar una conexión desde un sistema GNU/Linux o MacOSX, use el comando SSH (ejemplo con usuario &amp;quot;prueba&amp;quot;) e indicar el uso del puerto &#039;&#039;&#039;4603&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el usuario Dave Bowman (nombre de usuario &#039;&#039;dbowman&#039;&#039;) accede al clúster ejecutando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
dbowman@leftraru.nlhpc.cl password: &lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
dbowman@leftraru2:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Guardar información de la sesión ===&lt;br /&gt;
&lt;br /&gt;
Es posible almacenar los datos de conexión bajo el archivo &#039;&#039;&#039;~/.ssh/config&#039;&#039;&#039;, lo que nos otorgará un poco más de flexibilidad a la hora de conectarnos.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el usuario Dave Bowman edita el archivo mencionado con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi ~/.ssh/config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y agrega la siguiente información:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host leftraru&lt;br /&gt;
    Hostname leftraru.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El parámetro &#039;&#039;&#039;Host&#039;&#039;&#039; indica el valor &#039;&#039;&#039;leftraru&#039;&#039;&#039; como nombre de conexión. Este valor podrá ser utilizado directamente con el comando &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
El valor &#039;&#039;&#039;Hostname&#039;&#039;&#039; indica la dirección a la cual nos queremos conectar (puedes indicar una IP si así lo deseas).&lt;br /&gt;
&lt;br /&gt;
Los parámetros &#039;&#039;&#039;User&#039;&#039;&#039; y &#039;&#039;&#039;Port&#039;&#039;&#039; ya los hemos visto.&lt;br /&gt;
&lt;br /&gt;
Y por último el parámetro &#039;&#039;&#039;UpdateHostKeys&#039;&#039;&#039; indica si deberá aceptar o no los cambios de llaves en el servidor. Por seguridad se recomienda el valor &#039;&#039;&#039;no&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Una vez que se edito esta información, nuestro usuario podrá acceder al clúster con tan solo escribir el comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh leftraru&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Es posible tener una gran cantidad de entradas en nuestro archivo .ssh/config ====&lt;br /&gt;
&lt;br /&gt;
Un ejemplo del archivo de configuración con más cantidad de entradas sería similar a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host leftraru&lt;br /&gt;
    Hostname leftraru.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host l1&lt;br /&gt;
    Hostname leftraru1.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host l2&lt;br /&gt;
    Hostname leftraru2.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host HAL&lt;br /&gt;
    Hostname 127.0.0.1&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 9000&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con dicha configuración, el usuario podría acceder usando uno de los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh l1&lt;br /&gt;
ssh l2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accediendo desde un equipo Windows ==&lt;br /&gt;
Para conectar desde sistemas Windows, se recomienda usar Putty como cliente SSH.&lt;br /&gt;
&lt;br /&gt;
Como vemos en el ejemplo se indican los campos:&lt;br /&gt;
&lt;br /&gt;
* Hostname: dbowman@leftraru.nlhpc.cl&lt;br /&gt;
* Puerto: 4603&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Putty-dbowman-hostname.png|no]]&lt;br /&gt;
&lt;br /&gt;
Y se realiza la conexión haciendo &#039;&#039;click&#039;&#039; en el botón inferior &#039;&#039;Open&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Si la conexión es exitosa podremos ingresar el usuario y contraseña.&lt;br /&gt;
&lt;br /&gt;
En este ejemplo, es el usuario Dave Bowman (dbowman) quien intenta conectarse al clúster.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Putty-dbowman-user-ssh.png|no]]&lt;br /&gt;
&lt;br /&gt;
Recuerda que al momento de ingresar tu contraseña, esta no será desplegada en pantalla.&lt;br /&gt;
&lt;br /&gt;
=== Guardar nuestra sesión ===&lt;br /&gt;
&lt;br /&gt;
Una vez que se ingresa los valores de &#039;&#039;&#039;Hostname&#039;&#039;&#039; y &#039;&#039;&#039;Puerto&#039;&#039;&#039;, es posible almacenar dicha información indicando un nombre en el campo &#039;&#039;&#039;Saved Sessions&#039;&#039;&#039; y presionando el botón &#039;&#039;&#039;Save&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
La próxima vez que necesitemos acceder al cluster, bastará hacer doble &#039;&#039;click&#039;&#039; sobre la sesión que necesitemos abrir.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo en este caso es posible ver que las siguientes sesiones están almacenadas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Archivo:Putty-saved-sessions.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Default&lt;br /&gt;
* L1&lt;br /&gt;
* L2&lt;br /&gt;
* Leftraru&lt;br /&gt;
&lt;br /&gt;
== Acceso utilizando llaves ==&lt;br /&gt;
La autenticación con clave pública es un método de seguridad alternativo a las contraseñas, mucho más difícil de hackear y, por lo tanto, más seguro. Este método de autenticación es recomendable usarlo para acceder a servidores.&lt;br /&gt;
&lt;br /&gt;
La clave SSH consiste en la generación de un par de claves que proporcionan dos largas cadenas de caracteres, una pública y una privada. La clave pública se instala en cualquier servidor y luego se desbloquea mediante la conexión con un cliente SSH que hace uso de la clave privada. Si las dos claves coinciden, el servidor SSH permite el acceso sin necesidad de utilizar una contraseña. No obstante, para añadir una capa de seguridad adicional, siempre podemos aumentar la protección de la clave privada usando una contraseña.&lt;br /&gt;
&lt;br /&gt;
Entonces nuestro usuario Dave Bowman creará una llave en su computadora personal para copiarla en el clúster siguiendo los pasos que se indican a continuación:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~]$ ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras ejecutar el comando obtendremos la siguiente respuesta:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Generating public/private ed25519 key pair.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez ejecutada la instrucción para generar las claves, se nos pedirá que indiquemos la ruta en la que queremos almacenar la clave:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Enter file in which to save the key (/home/dave/.ssh/id_ed25519):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras indicar la ruta en la que se almacenará la clave, lo siguiente que tendremos que hacer es indicar una contraseña (puede dejar vacío para acceso directo):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Enter passphrase (empty for no passphrase):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finalmente debemos copiar nuestra llave pública al cluster:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~] ssh-copy-id -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
Number of key(s) added:        1&lt;br /&gt;
&lt;br /&gt;
Now try logging into the machine, with:   &amp;quot;ssh -p &#039;4603&#039; &#039;dbowman@leftraru.nlhpc.cl&#039;&amp;quot;&lt;br /&gt;
and check to make sure that only the key(s) you wanted were added.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ya podremos conectarnos directamente con nuestras llaves:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~] ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copiar la llave desde Windows al clúster ===&lt;br /&gt;
&lt;br /&gt;
En el caso de que se utilice Windows como sistema operativo, una posibilidad de copiar la llave es ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh -p 4603 dbowman@leftraru.nlhpc.cl &amp;quot;cat &amp;gt;&amp;gt; .ssh/authorized_keys&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si lo anterior no funciona, recomendamos que abra en una aplicación como NotePad el archivo &#039;&#039;&#039;.ssh\id_rsa.pub&#039;&#039;&#039; y copie el contenido al archivo en:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano ~/.ssh/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considere también que dependiendo de las aplicaciones utilizadas bajo Windows, este paso puede requerir de otros pasos.&lt;br /&gt;
&lt;br /&gt;
Recomedamos que lea la documentación oficial de su software.&lt;br /&gt;
&lt;br /&gt;
== Cambiar contraseña ==&lt;br /&gt;
Para cambiar la contraseña de usuario, es necesario que esta cumpla con ciertos requisitos como por ejemplo:&lt;br /&gt;
&lt;br /&gt;
* El mínimo de caracteres son 10.&lt;br /&gt;
* Debe ser alfanumérica.&lt;br /&gt;
* Tener 3 caracteres especiales (al menos 1 mayúscula – 1 minúscula y 1 número).&lt;br /&gt;
&lt;br /&gt;
Para ejecutar esta acción, utilice el siguiente comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ passwd&lt;br /&gt;
&lt;br /&gt;
Changing password for user dbowman.&lt;br /&gt;
(current) LDAP Password: &amp;lt;- Ingrese su contraseña actual.&lt;br /&gt;
&lt;br /&gt;
New password: ********* &amp;lt;- Ingrese su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
Retype new password: Reingrese su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
passwd: all authentication tokens updated successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Confirmación de cambio de clave exitoso, le recomendamos cerrar su sesión e ingresar nuevamente a nuestro sistema ingresando su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
=== Cambio de Contraseña vía Dashboard ===&lt;br /&gt;
&lt;br /&gt;
También puede cambiar su contraseña desde nuestros [[Dashboard]] siguiendo el siguiente [[Procedimiento cambio o recuperación de contraseña]].&lt;br /&gt;
&lt;br /&gt;
== Conexión a nodos actualmente utilizados ==&lt;br /&gt;
Algunas veces, por distintas circunstancias, sería deseable tener la posibilidad de ingresar al nodo donde se estén ejecutando nuestras tareas con tal de verificar su estado, comprobar ciertos valores, etc.&lt;br /&gt;
&lt;br /&gt;
Pensado en la comodidad de los usuarios, se ha implementado un módulo del gestor que colas SLURM que permite esta funcionalidad. Por tanto, el login será permitido en todas aquellas máquinas donde actualmente exista un trabajo nuestro.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo; nuestra tarea de prueba &#039;tarea_test.sh&#039; ha sido enviada a la cola y ha ingresado con el ID &#039;3469576&#039;. Slurm reservó el nodo &#039;cn053&#039; para llevar a cabo la ejecución, por tanto el usuario tiene permitido el ingreso mediante ssh al nodo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
leftraru$ sbatch tarea_test.sh&lt;br /&gt;
leftraru$ squeue&lt;br /&gt;
&lt;br /&gt;
 JOBID    PARTITION     NAME     USER   ST    TIME  NODES  NODELIST(REASON)&lt;br /&gt;
3469576    general      Prueba    test   R     1:57    1        sn007&lt;br /&gt;
&lt;br /&gt;
leftraru$ ssh sn007&lt;br /&gt;
Last login: today 2016 from leftraru.nlhpc.cl&lt;br /&gt;
sn007$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenga en cuenta que aún se mantiene la restricción de ingreso para el resto de los nodos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
leftraru$ ssh sn001&lt;br /&gt;
Access denied: user test (uid=000) has no active jobs on this node.&lt;br /&gt;
leftraru$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nodos Login ==&lt;br /&gt;
Aunque disponemos de 4 nodos para el acceso al clúster por parte de los usuarios, en general, hay que usar el nombre:&lt;br /&gt;
&lt;br /&gt;
* leftraru.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
A la hora de conectarse por SSH al clúster. Al acceder a esa dirección se consigue que los usuarios queden conectados aleatoriamente a los nodos login.&lt;br /&gt;
&lt;br /&gt;
Pero si resultara necesario, se puede acceder a un nodo login específicamente usando su nombre a la hora de realizar la conexión SSH:&lt;br /&gt;
&lt;br /&gt;
* leftraru1.nlhpc.cl&lt;br /&gt;
* leftraru2.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
== Sobre nodos de acceso y uso de multiplexadores ==&lt;br /&gt;
Debido a que Leftraru balancea la carga de los nodos Login se debe evitar el uso de screen, ya que no se garantiza el acceso al mismo nodo que tenía la sesión screen abierta una vez que el usuario cierra su sesión.&lt;br /&gt;
&lt;br /&gt;
Un usuario sólo podrá acceder por ssh a los nodos logins. En el caso de querer acceder a un nodo de cómputo, el usuario deberá tener al menos una tarea SLURM en ejecución en el nodo al cual necesite acceder, y deberá considerar que si dicha tarea finaliza, su sesión será cerrada del nodo. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Si falla muchas veces el intento de login por SSH o genera muchas conexiones, su IP podría ser bloqueada. Contacte por correo electrónico con Soporte indicando información relevante (más información [[Como_abrir_un_ticket#Problemas_de_acceso_al_clúster|aquí]]) si presenta problemas de conexión: &#039;&#039;&#039; &#039;&#039;&#039;[mailto:soporte@nlhpc.cl soporte@nlhpc.cl]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ejecución de aplicaciones gráficas ==&lt;br /&gt;
Para poder ejecutar aplicaciones gráficas, es necesario conectarse al clúster habilitando el &#039;&#039;reenvío de X11&#039;&#039; (en inglés &#039;&#039;X11 Forwarding&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Esto se consigue conectándose mediante SSH indicando los parámetros &#039;&#039;&#039;-X&#039;&#039;&#039; o &#039;&#039;&#039;-Y&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ssh -p 4603 -X dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
Si ha logrado conectarse podrá ejecutar la aplicación con su interfaz gráfica:&lt;br /&gt;
&lt;br /&gt;
 ml ncview/2.1.7&lt;br /&gt;
 ncview mi_archivo.nc&lt;br /&gt;
&lt;br /&gt;
Si la aplicación no cuenta con interfaz gráfica podrá utilizar la línea de comandos de manera normal.&lt;br /&gt;
&lt;br /&gt;
=== Para usuarios de OS X ===&lt;br /&gt;
Si utiliza una computadora con OS X, deberá instalar en su computadora XQuartz, disponible desde: https://www.xquartz.org/&lt;br /&gt;
&lt;br /&gt;
Luego de eso podrá utilizar el comando indicado en la sección anterior.&lt;br /&gt;
&lt;br /&gt;
=== Para usuarios de Windows ===&lt;br /&gt;
Si utiliza una computadora con Windows, deberá instalar un programa como XMing, disponible desde:http://www.straightrunning.com/XmingNotes/&lt;br /&gt;
&lt;br /&gt;
Una vez instalado en su computadora, deberá activar el reenvío de X11 en su aplicación.&lt;br /&gt;
Por ejemplo, al momento de crear una conexión debe ir a la sección &#039;&#039;&#039;Conexión&#039;&#039;&#039;→&#039;&#039;&#039;SSH&#039;&#039;&#039;→&#039;&#039;&#039;X11&#039;&#039;&#039; y seleccionar la opción &#039;&#039;&#039;Enable X11 forwarding&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:X11-forwarding.png|Putty y reenvío de X11]]&lt;br /&gt;
&lt;br /&gt;
== Problemas conocidos ==&lt;br /&gt;
=== IP bloqueada ===&lt;br /&gt;
Si ha ingresado su contraseña de manera equivocada en varias oportunidades, su acceso puede ser bloqueado por razones de seguridad. Favor enviar un correo a [mailto:soporte@nlhpc.cl soporte@nlhpc.cl] indicando su IP pública.&lt;br /&gt;
&lt;br /&gt;
Si desconoce su IP pública puede vistar https://miip.cl o un servicio similar a su elección.&lt;br /&gt;
&lt;br /&gt;
=== No logra acceder desde su lugar de trabajo ===&lt;br /&gt;
Pruebe conectándose a otra red.&lt;br /&gt;
&lt;br /&gt;
Una prueba sencilla y rápida es compartir la conexión a Internet de su celular móvil (&#039;&#039;hotspot&#039;&#039;) y probar acceder al clúster.&lt;br /&gt;
&lt;br /&gt;
Esta prueba permite cambiar de IP y no tener restricciones en base a las políticas de su lugar de trabajo.&lt;br /&gt;
&lt;br /&gt;
Si logra conectarse de esta manera, contacte a su Administrador de Sistemas local e indíquele esta situación, haciendo especial énfasis en mencionar el puerto &#039;&#039;&#039;4603&#039;&#039;&#039; y el protocolo &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== SSH desconoce el identificador de los nodos de acceso ===&lt;br /&gt;
En ocasiones puede presentar problemas de acceso debido a las llaves de identificación de los servidores de acceso.&lt;br /&gt;
&lt;br /&gt;
Puede probar a verificar si en su directorio personal existe el directoro &#039;&#039;&#039;.ssh&#039;&#039;&#039;.&lt;br /&gt;
Para los usuarios de Linux, OS X y Powershell pueden acceder simplemente con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/.ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dentro de dicho directorio podrá ver que existe un archivo llamado &#039;&#039;&#039;known_hosts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Puede eliminar o renombrar dicho archivo para que en el siguiente intento de conexión se genere nuevamente.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/.ssh&lt;br /&gt;
mv known_hosts known_hosts_backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Luego al conectar nuevamente a &#039;&#039;&#039;leftraru.nlhpc.cl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
se nos pedirá confirmar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The authenticity of host &#039;[leftraru.nlhpc.cl]:4603 ([146.83.2.234]:4603)&#039; can&#039;t be established.&lt;br /&gt;
ED25519 key fingerprint is SHA256:Murakami74f74....&lt;br /&gt;
This key is not known by any other names.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes&lt;br /&gt;
Warning: Permanently added &#039;[leftraru.nlhpc.cl]:4603&#039; (ED25519) to the list of known hosts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lo anterior también lo puede ejecutar para los nodos de acceso específicos &#039;&#039;&#039;leftraru1.nlhpc.cl&#039;&#039;&#039; y &#039;&#039;&#039;leftraru2.nlhpc.cl&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Usuarios de Putty ====&lt;br /&gt;
En el caso de utilizar Putty, es necesario que abra el Registro de Windows, busque el valor &#039;&#039;&#039; HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys&#039;&#039;&#039; y elimine los valores asociados a los servidores de acceso.&lt;br /&gt;
&lt;br /&gt;
Puede buscar más información en el siguiente [https://www.google.com/search?q=putty+como+borrar+archivo+known+hosts link].&lt;br /&gt;
&lt;br /&gt;
==== Otras aplicaciones ====&lt;br /&gt;
Dependiendo de las aplicaciones que utilice y los sistemas operativos, recomendamos que busque información sobre como eliminar las preferencias específicas de su aplicación, como también utilizar las palabras claves &#039;&#039;&#039;known hosts&#039;&#039;&#039; al buscar información específica de la herramienta que esté utilizado.&lt;br /&gt;
&lt;br /&gt;
=== Error de conexión en redes institucionales (Firewall) ===&lt;br /&gt;
Si experimenta problemas conectándose desde su red institucional, es muy probable que el firewall local esté bloqueando el &#039;&#039;&#039;puerto 4603&#039;&#039;&#039;. Para confirmarlo, ejecute el comando correspondiente a su sistema operativo:&lt;br /&gt;
&lt;br /&gt;
==== Verificación de conectividad ====&lt;br /&gt;
&lt;br /&gt;
; Desde Linux / macOS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nc -zv leftraru.nlhpc.cl 4603&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Puerto abierto:&#039;&#039;&#039; Verá un mensaje similar a &amp;lt;code&amp;gt;Connection to leftraru.nlhpc.cl 4603 port [tcp/*] succeeded!&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Puerto bloqueado:&#039;&#039;&#039; Verá un error de &amp;lt;code&amp;gt;Connection refused&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;Timeout&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; Desde Windows (PowerShell):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Test-NetConnection -ComputerName leftraru.nlhpc.cl -Port 4603&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Puerto abierto:&#039;&#039;&#039; En la última línea leerá &amp;lt;code&amp;gt;TcpTestSucceeded : True&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Puerto bloqueado:&#039;&#039;&#039; Leerá &amp;lt;code&amp;gt;TcpTestSucceeded : False&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Resolución del problema ====&lt;br /&gt;
&lt;br /&gt;
Si confirma que el acceso está restringido, debe realizar las siguientes acciones:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Prueba de descarte (Hotspot):&#039;&#039;&#039; Conecte su equipo a una red externa, como el punto de acceso de su dispositivo móvil. Si logra conectarse exitosamente de esta manera, habrá descartado un problema con el clúster.&lt;br /&gt;
# &#039;&#039;&#039;Gestión con soporte TI:&#039;&#039;&#039; Con la prueba anterior como respaldo, deberá contactar con el administrador de red de su institución para solicitar la apertura del &#039;&#039;&#039;puerto 4603&#039;&#039;&#039;, indicando que es necesario para la conexión al clúster del NLHPC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Contraseña incorrecta ===&lt;br /&gt;
Puede solicitar una nueva contraseña a nuestro correo electrónico [mailto:soporte@nlhpc.cl soporte@nlhpc.cl].&lt;br /&gt;
&lt;br /&gt;
Favor indicar su nombre de usuario para esto.&lt;br /&gt;
&lt;br /&gt;
Recuerde que el remitente será contrastado con nuestros registros de su cuenta.&lt;br /&gt;
&lt;br /&gt;
== Si necesita soporte ==&lt;br /&gt;
&lt;br /&gt;
Si necesita soporte o tiene problemas de acceso escriba a &#039;&#039;&#039;[mailto:soporte@nlhpc.cl soporte@nlhpc.cl]&#039;&#039;&#039; indicando su nombre de usuario, su IP pública, aplicaciones utilizadas y los mensajes de error que haya observado.&lt;br /&gt;
&lt;br /&gt;
Algunos puntos a considerar en el siguiente [https://wiki.nlhpc.cl/Como_abrir_un_ticket#Problemas_de_acceso_al_cl%C3%BAster enlace].&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
Guía de generación de llaves SSH y su uso bajo sistema operativo Windows en el siguiente [https://chrisjhart.com/Windows-10-ssh-copy-id/ enlace].&lt;br /&gt;
&lt;br /&gt;
Playlist con vídeo tutoriales en canal de [https://www.youtube.com/watch?v=mWa-1Ad1SmY&amp;amp;list=PL6GflPS8SOqrEeAbBKOKqhWy3y3LF_gQ6 YouTube].&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Tutorial_de_acceso_a_Leftraru_via_SSH&amp;diff=1068</id>
		<title>Tutorial de acceso a Leftraru via SSH</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Tutorial_de_acceso_a_Leftraru_via_SSH&amp;diff=1068"/>
		<updated>2026-04-15T18:49:41Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Problemas conocidos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Accediendo desde un equipo Linux o Mac OSX ==&lt;br /&gt;
Para realizar una conexión desde un sistema GNU/Linux o MacOSX, use el comando SSH (ejemplo con usuario &amp;quot;prueba&amp;quot;) e indicar el uso del puerto &#039;&#039;&#039;4603&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el usuario Dave Bowman (nombre de usuario &#039;&#039;dbowman&#039;&#039;) accede al clúster ejecutando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
dbowman@leftraru.nlhpc.cl password: &lt;br /&gt;
&lt;br /&gt;
[...]&lt;br /&gt;
&lt;br /&gt;
dbowman@leftraru2:~$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Guardar información de la sesión ===&lt;br /&gt;
&lt;br /&gt;
Es posible almacenar los datos de conexión bajo el archivo &#039;&#039;&#039;~/.ssh/config&#039;&#039;&#039;, lo que nos otorgará un poco más de flexibilidad a la hora de conectarnos.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, el usuario Dave Bowman edita el archivo mencionado con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
vi ~/.ssh/config&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
y agrega la siguiente información:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host leftraru&lt;br /&gt;
    Hostname leftraru.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El parámetro &#039;&#039;&#039;Host&#039;&#039;&#039; indica el valor &#039;&#039;&#039;leftraru&#039;&#039;&#039; como nombre de conexión. Este valor podrá ser utilizado directamente con el comando &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
El valor &#039;&#039;&#039;Hostname&#039;&#039;&#039; indica la dirección a la cual nos queremos conectar (puedes indicar una IP si así lo deseas).&lt;br /&gt;
&lt;br /&gt;
Los parámetros &#039;&#039;&#039;User&#039;&#039;&#039; y &#039;&#039;&#039;Port&#039;&#039;&#039; ya los hemos visto.&lt;br /&gt;
&lt;br /&gt;
Y por último el parámetro &#039;&#039;&#039;UpdateHostKeys&#039;&#039;&#039; indica si deberá aceptar o no los cambios de llaves en el servidor. Por seguridad se recomienda el valor &#039;&#039;&#039;no&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Una vez que se edito esta información, nuestro usuario podrá acceder al clúster con tan solo escribir el comando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;ssh leftraru&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Es posible tener una gran cantidad de entradas en nuestro archivo .ssh/config ====&lt;br /&gt;
&lt;br /&gt;
Un ejemplo del archivo de configuración con más cantidad de entradas sería similar a:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Host leftraru&lt;br /&gt;
    Hostname leftraru.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host l1&lt;br /&gt;
    Hostname leftraru1.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host l2&lt;br /&gt;
    Hostname leftraru2.nlhpc.cl&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 4603&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
&lt;br /&gt;
Host HAL&lt;br /&gt;
    Hostname 127.0.0.1&lt;br /&gt;
    User dbwoman&lt;br /&gt;
    Port 9000&lt;br /&gt;
    UpdateHostKeys no&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Con dicha configuración, el usuario podría acceder usando uno de los siguientes comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh l1&lt;br /&gt;
ssh l2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Accediendo desde un equipo Windows ==&lt;br /&gt;
Para conectar desde sistemas Windows, se recomienda usar Putty como cliente SSH.&lt;br /&gt;
&lt;br /&gt;
Como vemos en el ejemplo se indican los campos:&lt;br /&gt;
&lt;br /&gt;
* Hostname: dbowman@leftraru.nlhpc.cl&lt;br /&gt;
* Puerto: 4603&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Putty-dbowman-hostname.png|no]]&lt;br /&gt;
&lt;br /&gt;
Y se realiza la conexión haciendo &#039;&#039;click&#039;&#039; en el botón inferior &#039;&#039;Open&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Si la conexión es exitosa podremos ingresar el usuario y contraseña.&lt;br /&gt;
&lt;br /&gt;
En este ejemplo, es el usuario Dave Bowman (dbowman) quien intenta conectarse al clúster.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Putty-dbowman-user-ssh.png|no]]&lt;br /&gt;
&lt;br /&gt;
Recuerda que al momento de ingresar tu contraseña, esta no será desplegada en pantalla.&lt;br /&gt;
&lt;br /&gt;
=== Guardar nuestra sesión ===&lt;br /&gt;
&lt;br /&gt;
Una vez que se ingresa los valores de &#039;&#039;&#039;Hostname&#039;&#039;&#039; y &#039;&#039;&#039;Puerto&#039;&#039;&#039;, es posible almacenar dicha información indicando un nombre en el campo &#039;&#039;&#039;Saved Sessions&#039;&#039;&#039; y presionando el botón &#039;&#039;&#039;Save&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
La próxima vez que necesitemos acceder al cluster, bastará hacer doble &#039;&#039;click&#039;&#039; sobre la sesión que necesitemos abrir.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo en este caso es posible ver que las siguientes sesiones están almacenadas:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Archivo:Putty-saved-sessions.png&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Default&lt;br /&gt;
* L1&lt;br /&gt;
* L2&lt;br /&gt;
* Leftraru&lt;br /&gt;
&lt;br /&gt;
== Acceso utilizando llaves ==&lt;br /&gt;
La autenticación con clave pública es un método de seguridad alternativo a las contraseñas, mucho más difícil de hackear y, por lo tanto, más seguro. Este método de autenticación es recomendable usarlo para acceder a servidores.&lt;br /&gt;
&lt;br /&gt;
La clave SSH consiste en la generación de un par de claves que proporcionan dos largas cadenas de caracteres, una pública y una privada. La clave pública se instala en cualquier servidor y luego se desbloquea mediante la conexión con un cliente SSH que hace uso de la clave privada. Si las dos claves coinciden, el servidor SSH permite el acceso sin necesidad de utilizar una contraseña. No obstante, para añadir una capa de seguridad adicional, siempre podemos aumentar la protección de la clave privada usando una contraseña.&lt;br /&gt;
&lt;br /&gt;
Entonces nuestro usuario Dave Bowman creará una llave en su computadora personal para copiarla en el clúster siguiendo los pasos que se indican a continuación:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~]$ ssh-keygen -t ed25519&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras ejecutar el comando obtendremos la siguiente respuesta:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Generating public/private ed25519 key pair.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Una vez ejecutada la instrucción para generar las claves, se nos pedirá que indiquemos la ruta en la que queremos almacenar la clave:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Enter file in which to save the key (/home/dave/.ssh/id_ed25519):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tras indicar la ruta en la que se almacenará la clave, lo siguiente que tendremos que hacer es indicar una contraseña (puede dejar vacío para acceso directo):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Enter passphrase (empty for no passphrase):&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finalmente debemos copiar nuestra llave pública al cluster:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~] ssh-copy-id -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
Number of key(s) added:        1&lt;br /&gt;
&lt;br /&gt;
Now try logging into the machine, with:   &amp;quot;ssh -p &#039;4603&#039; &#039;dbowman@leftraru.nlhpc.cl&#039;&amp;quot;&lt;br /&gt;
and check to make sure that only the key(s) you wanted were added.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora ya podremos conectarnos directamente con nuestras llaves:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dave@HAL ~] ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Copiar la llave desde Windows al clúster ===&lt;br /&gt;
&lt;br /&gt;
En el caso de que se utilice Windows como sistema operativo, una posibilidad de copiar la llave es ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh -p 4603 dbowman@leftraru.nlhpc.cl &amp;quot;cat &amp;gt;&amp;gt; .ssh/authorized_keys&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si lo anterior no funciona, recomendamos que abra en una aplicación como NotePad el archivo &#039;&#039;&#039;.ssh\id_rsa.pub&#039;&#039;&#039; y copie el contenido al archivo en:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano ~/.ssh/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Considere también que dependiendo de las aplicaciones utilizadas bajo Windows, este paso puede requerir de otros pasos.&lt;br /&gt;
&lt;br /&gt;
Recomedamos que lea la documentación oficial de su software.&lt;br /&gt;
&lt;br /&gt;
== Cambiar contraseña ==&lt;br /&gt;
Para cambiar la contraseña de usuario, es necesario que esta cumpla con ciertos requisitos como por ejemplo:&lt;br /&gt;
&lt;br /&gt;
* El mínimo de caracteres son 10.&lt;br /&gt;
* Debe ser alfanumérica.&lt;br /&gt;
* Tener 3 caracteres especiales (al menos 1 mayúscula – 1 minúscula y 1 número).&lt;br /&gt;
&lt;br /&gt;
Para ejecutar esta acción, utilice el siguiente comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ passwd&lt;br /&gt;
&lt;br /&gt;
Changing password for user dbowman.&lt;br /&gt;
(current) LDAP Password: &amp;lt;- Ingrese su contraseña actual.&lt;br /&gt;
&lt;br /&gt;
New password: ********* &amp;lt;- Ingrese su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
Retype new password: Reingrese su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
passwd: all authentication tokens updated successfully.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Confirmación de cambio de clave exitoso, le recomendamos cerrar su sesión e ingresar nuevamente a nuestro sistema ingresando su nueva contraseña.&lt;br /&gt;
&lt;br /&gt;
=== Cambio de Contraseña vía Dashboard ===&lt;br /&gt;
&lt;br /&gt;
También puede cambiar su contraseña desde nuestros [[Dashboard]] siguiendo el siguiente [[Procedimiento cambio o recuperación de contraseña]].&lt;br /&gt;
&lt;br /&gt;
== Conexión a nodos actualmente utilizados ==&lt;br /&gt;
Algunas veces, por distintas circunstancias, sería deseable tener la posibilidad de ingresar al nodo donde se estén ejecutando nuestras tareas con tal de verificar su estado, comprobar ciertos valores, etc.&lt;br /&gt;
&lt;br /&gt;
Pensado en la comodidad de los usuarios, se ha implementado un módulo del gestor que colas SLURM que permite esta funcionalidad. Por tanto, el login será permitido en todas aquellas máquinas donde actualmente exista un trabajo nuestro.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo; nuestra tarea de prueba &#039;tarea_test.sh&#039; ha sido enviada a la cola y ha ingresado con el ID &#039;3469576&#039;. Slurm reservó el nodo &#039;cn053&#039; para llevar a cabo la ejecución, por tanto el usuario tiene permitido el ingreso mediante ssh al nodo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
leftraru$ sbatch tarea_test.sh&lt;br /&gt;
leftraru$ squeue&lt;br /&gt;
&lt;br /&gt;
 JOBID    PARTITION     NAME     USER   ST    TIME  NODES  NODELIST(REASON)&lt;br /&gt;
3469576    general      Prueba    test   R     1:57    1        sn007&lt;br /&gt;
&lt;br /&gt;
leftraru$ ssh sn007&lt;br /&gt;
Last login: today 2016 from leftraru.nlhpc.cl&lt;br /&gt;
sn007$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tenga en cuenta que aún se mantiene la restricción de ingreso para el resto de los nodos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
leftraru$ ssh sn001&lt;br /&gt;
Access denied: user test (uid=000) has no active jobs on this node.&lt;br /&gt;
leftraru$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Nodos Login ==&lt;br /&gt;
Aunque disponemos de 4 nodos para el acceso al clúster por parte de los usuarios, en general, hay que usar el nombre:&lt;br /&gt;
&lt;br /&gt;
* leftraru.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
A la hora de conectarse por SSH al clúster. Al acceder a esa dirección se consigue que los usuarios queden conectados aleatoriamente a los nodos login.&lt;br /&gt;
&lt;br /&gt;
Pero si resultara necesario, se puede acceder a un nodo login específicamente usando su nombre a la hora de realizar la conexión SSH:&lt;br /&gt;
&lt;br /&gt;
* leftraru1.nlhpc.cl&lt;br /&gt;
* leftraru2.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
== Sobre nodos de acceso y uso de multiplexadores ==&lt;br /&gt;
Debido a que Leftraru balancea la carga de los nodos Login se debe evitar el uso de screen, ya que no se garantiza el acceso al mismo nodo que tenía la sesión screen abierta una vez que el usuario cierra su sesión.&lt;br /&gt;
&lt;br /&gt;
Un usuario sólo podrá acceder por ssh a los nodos logins. En el caso de querer acceder a un nodo de cómputo, el usuario deberá tener al menos una tarea SLURM en ejecución en el nodo al cual necesite acceder, y deberá considerar que si dicha tarea finaliza, su sesión será cerrada del nodo. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Si falla muchas veces el intento de login por SSH o genera muchas conexiones, su IP podría ser bloqueada. Contacte por correo electrónico con Soporte indicando información relevante (más información [[Como_abrir_un_ticket#Problemas_de_acceso_al_clúster|aquí]]) si presenta problemas de conexión: &#039;&#039;&#039; &#039;&#039;&#039;[mailto:soporte@nlhpc.cl soporte@nlhpc.cl]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Ejecución de aplicaciones gráficas ==&lt;br /&gt;
Para poder ejecutar aplicaciones gráficas, es necesario conectarse al clúster habilitando el &#039;&#039;reenvío de X11&#039;&#039; (en inglés &#039;&#039;X11 Forwarding&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Esto se consigue conectándose mediante SSH indicando los parámetros &#039;&#039;&#039;-X&#039;&#039;&#039; o &#039;&#039;&#039;-Y&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 ssh -p 4603 -X dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&lt;br /&gt;
Si ha logrado conectarse podrá ejecutar la aplicación con su interfaz gráfica:&lt;br /&gt;
&lt;br /&gt;
 ml ncview/2.1.7&lt;br /&gt;
 ncview mi_archivo.nc&lt;br /&gt;
&lt;br /&gt;
Si la aplicación no cuenta con interfaz gráfica podrá utilizar la línea de comandos de manera normal.&lt;br /&gt;
&lt;br /&gt;
=== Para usuarios de OS X ===&lt;br /&gt;
Si utiliza una computadora con OS X, deberá instalar en su computadora XQuartz, disponible desde: https://www.xquartz.org/&lt;br /&gt;
&lt;br /&gt;
Luego de eso podrá utilizar el comando indicado en la sección anterior.&lt;br /&gt;
&lt;br /&gt;
=== Para usuarios de Windows ===&lt;br /&gt;
Si utiliza una computadora con Windows, deberá instalar un programa como XMing, disponible desde:http://www.straightrunning.com/XmingNotes/&lt;br /&gt;
&lt;br /&gt;
Una vez instalado en su computadora, deberá activar el reenvío de X11 en su aplicación.&lt;br /&gt;
Por ejemplo, al momento de crear una conexión debe ir a la sección &#039;&#039;&#039;Conexión&#039;&#039;&#039;→&#039;&#039;&#039;SSH&#039;&#039;&#039;→&#039;&#039;&#039;X11&#039;&#039;&#039; y seleccionar la opción &#039;&#039;&#039;Enable X11 forwarding&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:X11-forwarding.png|Putty y reenvío de X11]]&lt;br /&gt;
&lt;br /&gt;
== Problemas conocidos ==&lt;br /&gt;
=== IP bloqueada ===&lt;br /&gt;
Si ha ingresado su contraseña de manera equivocada en varias oportunidades, su acceso puede ser bloqueado por razones de seguridad. Favor enviar un correo a [mailto:soporte@nlhpc.cl soporte@nlhpc.cl] indicando su IP pública.&lt;br /&gt;
&lt;br /&gt;
Si desconoce su IP pública puede vistar https://miip.cl o un servicio similar a su elección.&lt;br /&gt;
&lt;br /&gt;
=== No logra acceder desde su lugar de trabajo ===&lt;br /&gt;
Pruebe conectándose a otra red.&lt;br /&gt;
&lt;br /&gt;
Una prueba sencilla y rápida es compartir la conexión a Internet de su celular móvil (&#039;&#039;hotspot&#039;&#039;) y probar acceder al clúster.&lt;br /&gt;
&lt;br /&gt;
Esta prueba permite cambiar de IP y no tener restricciones en base a las políticas de su lugar de trabajo.&lt;br /&gt;
&lt;br /&gt;
Si logra conectarse de esta manera, contacte a su Administrador de Sistemas local e indíquele esta situación, haciendo especial énfasis en mencionar el puerto &#039;&#039;&#039;4603&#039;&#039;&#039; y el protocolo &#039;&#039;&#039;ssh&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== SSH desconoce el identificador de los nodos de acceso ===&lt;br /&gt;
En ocasiones puede presentar problemas de acceso debido a las llaves de identificación de los servidores de acceso.&lt;br /&gt;
&lt;br /&gt;
Puede probar a verificar si en su directorio personal existe el directoro &#039;&#039;&#039;.ssh&#039;&#039;&#039;.&lt;br /&gt;
Para los usuarios de Linux, OS X y Powershell pueden acceder simplemente con:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/.ssh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dentro de dicho directorio podrá ver que existe un archivo llamado &#039;&#039;&#039;known_hosts&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Puede eliminar o renombrar dicho archivo para que en el siguiente intento de conexión se genere nuevamente.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/.ssh&lt;br /&gt;
mv known_hosts known_hosts_backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Luego al conectar nuevamente a &#039;&#039;&#039;leftraru.nlhpc.cl&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -p 4603 dbowman@leftraru.nlhpc.cl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
se nos pedirá confirmar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The authenticity of host &#039;[leftraru.nlhpc.cl]:4603 ([146.83.2.234]:4603)&#039; can&#039;t be established.&lt;br /&gt;
ED25519 key fingerprint is SHA256:Murakami74f74....&lt;br /&gt;
This key is not known by any other names.&lt;br /&gt;
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes&lt;br /&gt;
Warning: Permanently added &#039;[leftraru.nlhpc.cl]:4603&#039; (ED25519) to the list of known hosts.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lo anterior también lo puede ejecutar para los nodos de acceso específicos &#039;&#039;&#039;leftraru1.nlhpc.cl&#039;&#039;&#039; y &#039;&#039;&#039;leftraru2.nlhpc.cl&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
==== Usuarios de Putty ====&lt;br /&gt;
En el caso de utilizar Putty, es necesario que abra el Registro de Windows, busque el valor &#039;&#039;&#039; HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys&#039;&#039;&#039; y elimine los valores asociados a los servidores de acceso.&lt;br /&gt;
&lt;br /&gt;
Puede buscar más información en el siguiente [https://www.google.com/search?q=putty+como+borrar+archivo+known+hosts link].&lt;br /&gt;
&lt;br /&gt;
==== Otras aplicaciones ====&lt;br /&gt;
Dependiendo de las aplicaciones que utilice y los sistemas operativos, recomendamos que busque información sobre como eliminar las preferencias específicas de su aplicación, como también utilizar las palabras claves &#039;&#039;&#039;known hosts&#039;&#039;&#039; al buscar información específica de la herramienta que esté utilizado.&lt;br /&gt;
&lt;br /&gt;
=== Error de conexión en redes institucionales (Firewall) ===&lt;br /&gt;
Si experimenta problemas conectándose desde su red institucional, es muy probable que el firewall local esté bloqueando el &#039;&#039;&#039;puerto 4603&#039;&#039;&#039;. Para confirmarlo, ejecute el comando correspondiente a su sistema operativo:&lt;br /&gt;
&lt;br /&gt;
=== Verificación de conectividad ===&lt;br /&gt;
&lt;br /&gt;
; Desde Linux / macOS:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nc -zv leftraru.nlhpc.cl 4603&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Puerto abierto:&#039;&#039;&#039; Verá un mensaje similar a &amp;lt;code&amp;gt;Connection to leftraru.nlhpc.cl 4603 port [tcp/*] succeeded!&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Puerto bloqueado:&#039;&#039;&#039; Verá un error de &amp;lt;code&amp;gt;Connection refused&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;Timeout&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
; Desde Windows (PowerShell):&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Test-NetConnection -ComputerName leftraru.nlhpc.cl -Port 4603&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;Puerto abierto:&#039;&#039;&#039; En la última línea leerá &amp;lt;code&amp;gt;TcpTestSucceeded : True&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;Puerto bloqueado:&#039;&#039;&#039; Leerá &amp;lt;code&amp;gt;TcpTestSucceeded : False&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==== Resolución del problema ====&lt;br /&gt;
&lt;br /&gt;
Si confirma que el acceso está restringido, debe realizar las siguientes acciones:&lt;br /&gt;
&lt;br /&gt;
# &#039;&#039;&#039;Prueba de descarte (Hotspot):&#039;&#039;&#039; Conecte su equipo a una red externa, como el punto de acceso de su dispositivo móvil. Si logra conectarse exitosamente de esta manera, habrá descartado un problema con el clúster.&lt;br /&gt;
# &#039;&#039;&#039;Gestión con soporte TI:&#039;&#039;&#039; Con la prueba anterior como respaldo, deberá contactar con el administrador de red de su institución para solicitar la apertura del &#039;&#039;&#039;puerto 4603&#039;&#039;&#039;, indicando que es necesario para la conexión al clúster del NLHPC.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Contraseña incorrecta ===&lt;br /&gt;
Puede solicitar una nueva contraseña a nuestro correo electrónico [mailto:soporte@nlhpc.cl soporte@nlhpc.cl].&lt;br /&gt;
&lt;br /&gt;
Favor indicar su nombre de usuario para esto.&lt;br /&gt;
&lt;br /&gt;
Recuerde que el remitente será contrastado con nuestros registros de su cuenta.&lt;br /&gt;
&lt;br /&gt;
== Si necesita soporte ==&lt;br /&gt;
&lt;br /&gt;
Si necesita soporte o tiene problemas de acceso escriba a &#039;&#039;&#039;[mailto:soporte@nlhpc.cl soporte@nlhpc.cl]&#039;&#039;&#039; indicando su nombre de usuario, su IP pública, aplicaciones utilizadas y los mensajes de error que haya observado.&lt;br /&gt;
&lt;br /&gt;
Algunos puntos a considerar en el siguiente [https://wiki.nlhpc.cl/Como_abrir_un_ticket#Problemas_de_acceso_al_cl%C3%BAster enlace].&lt;br /&gt;
&lt;br /&gt;
== Enlaces externos ==&lt;br /&gt;
&lt;br /&gt;
Guía de generación de llaves SSH y su uso bajo sistema operativo Windows en el siguiente [https://chrisjhart.com/Windows-10-ssh-copy-id/ enlace].&lt;br /&gt;
&lt;br /&gt;
Playlist con vídeo tutoriales en canal de [https://www.youtube.com/watch?v=mWa-1Ad1SmY&amp;amp;list=PL6GflPS8SOqrEeAbBKOKqhWy3y3LF_gQ6 YouTube].&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Diffusers&amp;diff=1051</id>
		<title>Diffusers</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Diffusers&amp;diff=1051"/>
		<updated>2025-09-23T15:17:07Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Creación de un script python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
Los modelos de difusión son arquitecturas generativas que permiten crear imágenes de alta calidad a partir de texto u otras modalidades.&lt;br /&gt;
&lt;br /&gt;
En esta guía, se enseñara el uso de diffusers de hugging face. Con lo que podrá realizar inferencia utilizando el cluster.&lt;br /&gt;
&lt;br /&gt;
== Cargar módulos necesarios: ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar diffusers con compatibilidad AMD, se deben cargar los módulos:&lt;br /&gt;
&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
&lt;br /&gt;
El cual contiene todos paquetes de software necesarios para realizar inferencia con modelos de difusión y LLM’s.&lt;br /&gt;
&lt;br /&gt;
Entre los paquetes se encuentran:&lt;br /&gt;
&lt;br /&gt;
* Pytorch, &lt;br /&gt;
* Ollama, &lt;br /&gt;
* vLLM, &lt;br /&gt;
* diffusers, &lt;br /&gt;
* huggingface-cli, &lt;br /&gt;
* transformers, &lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Creación de un script python ==&lt;br /&gt;
&lt;br /&gt;
Para ejecutar inferencia con modelos de difusión, se debe tener un script en python pre-preparado, por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 import torch&lt;br /&gt;
 from diffusers import StableDiffusionPipeline&lt;br /&gt;
 pipe = StableDiffusionPipeline.from_pretrained(&lt;br /&gt;
 &amp;quot;stabilityai/stable-diffusion-2-1&amp;quot;,&lt;br /&gt;
 torch_dtype=torch.float16&lt;br /&gt;
 ).to(&amp;quot;cuda&amp;quot;)&lt;br /&gt;
 image = pipe(&amp;quot;Astronaut riding a horse on Mars, HD, cinematic&amp;quot;).images[0]&lt;br /&gt;
 image.save(&amp;quot;output.png&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
Notar que la imagen quedará guardada en el directorio de ejecución del script python.&lt;br /&gt;
Ejecución con sbatch&lt;br /&gt;
&lt;br /&gt;
Para ejecutar el script en python creado anteriormente, se puede utilizar el siguiente script sbatch como ejemplo:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J diffusion_inference&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH -c 8&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -t 0:30:00&lt;br /&gt;
 #SBATCH --mem=8192MB&lt;br /&gt;
 #SBATCH -o logs/diffusion_%j.out&lt;br /&gt;
 #SBATCH -e logs/diffusion_%j.err&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 python &amp;lt;python_script&amp;gt;.py&lt;br /&gt;
&lt;br /&gt;
== ⚠️ Consideraciones importantes ==&lt;br /&gt;
&lt;br /&gt;
* Uso de VRAM&lt;br /&gt;
&lt;br /&gt;
Si el modelo excede la capacidad de VRAM de una tarjeta gráfica, puede utilizar 2, notar que la velocidad de inferencia no aumenta si hace eso. A continuación algunos ejemplos:&lt;br /&gt;
&lt;br /&gt;
** SD 2.1 Base (~5.1GB en FP16) (una gpu)&lt;br /&gt;
** SDXL (~14GB en FP16) (una gpu)&lt;br /&gt;
&lt;br /&gt;
Por lo general, todos los modelos de difusión caben en una sola MI210, por tanto, se recomienda el uso de una sola GPU.&lt;br /&gt;
&lt;br /&gt;
* Reserva de CPU’s&lt;br /&gt;
&lt;br /&gt;
Se recomienda que se soliciten 8 CPU’s por cada GPU&lt;br /&gt;
&lt;br /&gt;
* Directorio de descarga de modelos&lt;br /&gt;
&lt;br /&gt;
Los modelos se descargan automáticamente de Hugging Face Hub en el directorio &amp;lt;code&amp;gt;/home/ai_inference_db/models/&amp;lt;/code&amp;gt;. Para usar y descargar modelos en su carpeta de usuario, cambie las variables de entorno:&lt;br /&gt;
&lt;br /&gt;
 unset HF_HOME&lt;br /&gt;
 unset HF_DATASETS_CACHE&lt;br /&gt;
&lt;br /&gt;
Además, si su modelo requiere permisos para utilizarse, puede realizar login a su cuenta utilizando:&lt;br /&gt;
&lt;br /&gt;
 huggingface-cli login&lt;br /&gt;
&lt;br /&gt;
Por último, puede comunicarse con el soporte de NLHPC vía tickets para solicitar el grupo &amp;lt;practica-gpu&amp;gt; y descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
== Rendimiento ==&lt;br /&gt;
&lt;br /&gt;
[[Archivo:DIFFUSERS-Rendimiento.png]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Descarga y Carga del Modelo ===&lt;br /&gt;
&lt;br /&gt;
==== ¿ Por qué el modelo no se descarga, no carga o no se lanza correctamente? ====&lt;br /&gt;
&lt;br /&gt;
Posibles causas:&lt;br /&gt;
&lt;br /&gt;
* Variables de entorno configuradas de forma incorrecta (por ejemplo, &amp;lt;code&amp;gt;HF_HOME&amp;lt;/code&amp;gt; o &amp;lt;code&amp;gt;HF_DATASETS_CACHE&amp;lt;/code&amp;gt; apuntando a rutas no deseadas).&lt;br /&gt;
* Falta de permisos para acceder a ciertos modelos o repositorios.&lt;br /&gt;
* El modelo no se encuentra en la carpeta compartida predeterminada (&amp;lt;code&amp;gt;/home/ai_inference_db/models/&amp;lt;/code&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Soluciones:&lt;br /&gt;
&lt;br /&gt;
* Ejecutar &amp;lt;code&amp;gt;unset HF_HOME&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;unset HF_DATASETS_CACHE&amp;lt;/code&amp;gt; para forzar la descarga en la carpeta de usuario.&lt;br /&gt;
* Realizar login con huggingface-cli login si el modelo requiere autenticación.&lt;br /&gt;
* Consultar con soporte NLHPC para solicitar el grupo de permisos adecuado y confirmar la disponibilidad del modelo en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
==== ¿Por qué me aparece error de asignación de memoria en el proceso de carga? ====&lt;br /&gt;
&lt;br /&gt;
Posibles causas:&lt;br /&gt;
&lt;br /&gt;
* El modelo excede la capacidad de RAM asignada. Por ejemplo, algunos modelos (como SDXL en FP16) pueden requerir más memoria de la que solicitaste.&lt;br /&gt;
&lt;br /&gt;
Soluciones:&lt;br /&gt;
&lt;br /&gt;
* Verificar los requisitos de memoria del modelo consultando su documentación (e.g., SD 2.1 Base requiere ~5.1 GB en FP16, mientras que modelos más grandes podrían necesitar GPU adicionales).&lt;br /&gt;
* Reservar al menos 8 CPU por cada GPU solicitada y asignar memoria acorde al cálculo: Memoria requerida.&lt;br /&gt;
* Revisar y, de ser necesario, aumentar los recursos en el script SBATCH.&lt;br /&gt;
&lt;br /&gt;
== Otros Enlaces ==&lt;br /&gt;
&lt;br /&gt;
[[OLLAMA API]]&lt;br /&gt;
&lt;br /&gt;
[[ Diffusers ]]&lt;br /&gt;
&lt;br /&gt;
[[ vLLM API con módulos de software ]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=OLLAMA_API&amp;diff=985</id>
		<title>OLLAMA API</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=OLLAMA_API&amp;diff=985"/>
		<updated>2025-06-02T20:49:55Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Lanzar el servicio Ollama */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En el contexto del NLHPC, se ofrecen dos herramientas principales para desplegar y realizar inferencia con LLMs: Ollama y vLLM. La elección entre ambas dependerá del  formato del modelo y de los requisitos específicos de la implementación:&lt;br /&gt;
&lt;br /&gt;
* Ollama: Recomendado para utilizar modelos cuantizados, lo que permite una inferencia más rápida y eficiente.&lt;br /&gt;
* vLLM: Ideal para ejecutar modelos descargados desde Hugging Face en formato .safetensors, ofreciendo un alto rendimiento y eficiencia en el manejo de múltiples solicitudes simultáneas.&lt;br /&gt;
&lt;br /&gt;
Ollama es una herramienta diseñada para ejecutar y utilizar grandes modelos de lenguaje (LLMs) de forma eficiente y accesible. Su enfoque se centra en la facilidad de uso y se destaca por su soporte con modelos cuantizados.&lt;br /&gt;
&lt;br /&gt;
En el siguiente artículo se le enseñará a:&lt;br /&gt;
&lt;br /&gt;
# Desplegar el servicio de Ollama en el cluster.&lt;br /&gt;
# Conectarse a la API del servicio desplegado desde su computadora local.&lt;br /&gt;
# Utilizar la API para realizar cargas de trabajo de inferencia.&lt;br /&gt;
&lt;br /&gt;
== Cargar ollama ==&lt;br /&gt;
&lt;br /&gt;
Para obtener Ollama con compatibilidad AMD debe cargar el módulo:&lt;br /&gt;
&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
&lt;br /&gt;
El cual contiene todos paquetes de software necesarios para realizar inferencia con modelos de deep learning como diffusers y LLM’s.&lt;br /&gt;
&lt;br /&gt;
Entre los paquetes se encuentran:&lt;br /&gt;
    &lt;br /&gt;
* Pytorch,&lt;br /&gt;
* Ollama,  &lt;br /&gt;
* vLLM,  &lt;br /&gt;
* diffusers,&lt;br /&gt;
* huggingface-cli,&lt;br /&gt;
* transformers,&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Lanzar el servicio Ollama ==&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar el servicio de ollama, primero hay que lanzarlo, esto se puede realizar con el siguiente script sbatch de ejemplo:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J ollama_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 8&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=30354MB&lt;br /&gt;
 #SBATCH -o logs/ollama_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/ollama_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 export OLLAMA_HOST=0.0.0.0:11434&lt;br /&gt;
 ollama serve &amp;amp;&lt;br /&gt;
&lt;br /&gt;
=== ⚠️ Consideraciones importantes: ===&lt;br /&gt;
&lt;br /&gt;
==== Terminar el servicio de Ollama: ====&lt;br /&gt;
&lt;br /&gt;
El servicio de Ollama &#039;&#039;&#039;no termina automáticamente&#039;&#039;&#039;, recuerde siempre cancelar la tarea con &amp;lt;code&amp;gt;scancel&amp;lt;/code&amp;gt; para evitar subutilización de los recursos de cómputo.&lt;br /&gt;
&lt;br /&gt;
==== Memoria RAM: ====&lt;br /&gt;
&lt;br /&gt;
La cantidad de RAM que se está reservando debe ser acorde a la cantidad de memoria que&lt;br /&gt;
necesita el modelo a lanzar. Se puede utilizar la siguiente fórmula para estimar el peso en&lt;br /&gt;
GB&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cantidad de parámetros&amp;gt; * &amp;lt;cantidad de bits&amp;gt; / (8 * 10 ^ 9)&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si su modelo tiene 14 billones de parámetros y está cuantizado a 4 bits, entonces requerirá 7GB de memoria para lanzarse, por tanto debe reservar siete o más gigabytes de memoria.&lt;br /&gt;
&lt;br /&gt;
==== Reserva de GPU’s: ====&lt;br /&gt;
&lt;br /&gt;
Cada GPU MI210 tiene 64 GB de memoria VRAM. Si su modelo utiliza más memoria, entonces solicitar más GPU’s adicionales con &amp;lt;code&amp;gt;--gres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, al solicitar más GPU’s el rendimiento en tokens/s no mejora. Además, se recomienda pedir 8 CPU’s por GPU solicitada.&lt;br /&gt;
&lt;br /&gt;
==== Puerto de escucha: ====&lt;br /&gt;
&lt;br /&gt;
Por defecto, el puerto de escucha de ollama es 11434, considere cambiarlo en el archivo &amp;lt;code&amp;gt;.job&amp;lt;/code&amp;gt; para que su puerto no choque con el de otros usuarios.&lt;br /&gt;
&lt;br /&gt;
 export OLLAMA_HOST=0.0.0.0:&amp;lt;puerto&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usar Modelos en una Ubicación Personalizada: ====&lt;br /&gt;
&lt;br /&gt;
Por defecto, el directorio de descarga de modelos es &amp;lt;code&amp;gt;/home/ai_inference_db/models&amp;lt;/code&amp;gt;. Si el&lt;br /&gt;
modelo que se quiere utilizar no se encuentra en esta ubicación. Entonces:&lt;br /&gt;
&lt;br /&gt;
* Solicitar el grupo &amp;lt;code&amp;gt;&amp;lt;practica-gpu&amp;gt;&amp;lt;/code&amp;gt; a soporte NLHPC&lt;br /&gt;
* Cambiar el directorio OLLAMA_MODELS con: &amp;lt;code&amp;gt;unset OLLAMA_MODELS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Identificar en qué Nodo ejecutó Ollama ==&lt;br /&gt;
&lt;br /&gt;
Una vez lanzado el servicio de Ollama, debemos saber qué nodo se asignó. Para esto, utilizar &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [intern02@leftraru2 ~]$ squeue&lt;br /&gt;
 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)&lt;br /&gt;
 38922125 mi210 ollama_s intern02 R 0:03 1 gn004&lt;br /&gt;
&lt;br /&gt;
Recordar el nodo donde está ejecutando nuestra tarea, en este caso &#039;&#039;&#039;gn004&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Creación de túnel de acceso ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo el nodo donde ejecutó nuestra tarea, podemos crear un túnel de acceso utilizando &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ssh &amp;lt;usuario&amp;gt;@leftraru.nlhpc.cl -p 4603 -L &amp;lt;puerto local&amp;gt;:&amp;lt;nodo&amp;gt;:&amp;lt;puerto en que se abrió el proceso&amp;gt;&lt;br /&gt;
&lt;br /&gt;
por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ssh intern02@leftraru.nlhpc.cl -p 4603 -L 4466:gn004:11434&lt;br /&gt;
&lt;br /&gt;
Con esto, podremos usar el “puerto local” para acceder a la API de ollama y por tanto, utilizarla.&lt;br /&gt;
Ejemplo de uso&lt;br /&gt;
&lt;br /&gt;
Una vez realizado el túnel de acceso con el nodo, es posible utilizar herramientas como curl&lt;br /&gt;
o la librería requests de python para realizar consultas a la API de ollama de manera local&lt;br /&gt;
[https://github.com/ollama/ollama/blob/main/docs/api.md Guia de uso de la API de ollama].&lt;br /&gt;
&lt;br /&gt;
Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 import requests, json&lt;br /&gt;
 url = f&amp;quot;&amp;lt;http://127.0.0.1:{port}/api/generate&amp;gt;&amp;quot;&lt;br /&gt;
 headers = {&lt;br /&gt;
 &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;,&lt;br /&gt;
 }&lt;br /&gt;
 payload = {&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;lt;modelo&amp;gt;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;lt;prompt&amp;gt;,&lt;br /&gt;
 &amp;quot;stream&amp;quot;: False&lt;br /&gt;
 }&lt;br /&gt;
 response = requests.post(url, json=payload, headers=headers)&lt;br /&gt;
 data = response.json()&lt;br /&gt;
 response = data.get(“response”, “”)&lt;br /&gt;
 print(response)&lt;br /&gt;
&lt;br /&gt;
o con curl:&lt;br /&gt;
&lt;br /&gt;
 curl -X POST &amp;quot;&amp;lt;http://127.0.0.1:&amp;lt;port&amp;gt;&amp;gt;/api/generate&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;&amp;lt;modelo&amp;gt;&amp;quot;, &amp;quot;prompt&amp;quot;: &amp;quot;&amp;lt;prompt&amp;gt;&amp;quot;, &amp;quot;stream&amp;quot;: false }&#039;&lt;br /&gt;
&lt;br /&gt;
== Rendimiento: ==&lt;br /&gt;
&lt;br /&gt;
Si se utiliza Ollama en las GPU’s MI210, se espera obtener el siguiente rendimiento:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:OLLAMA-Rendimiento.png]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting: ==&lt;br /&gt;
=== ¿Cómo puedo cargar mi modelo de lenguaje propio y/o finetuned? ===&lt;br /&gt;
&lt;br /&gt;
* Copiar el modelo en formato &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt; desde su computadora local al cluster utilizando &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; o filezilla.     Notar que Ollama sólo acepta un archivo &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Crear un modelfile de ollama, puede seguir la siguiente [https://github.com/ollama/ollama/blob/main/docs/modelfile.md#build-from-a-safetensors-model documentación].&lt;br /&gt;
&lt;br /&gt;
Un modelfile típico es:&lt;br /&gt;
&lt;br /&gt;
 FROM&lt;br /&gt;
 ruta/a/tu/modelo.gguf&lt;br /&gt;
 TEMPLATE &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 {{ if .System }}&amp;lt;|im_start|&amp;gt;system&lt;br /&gt;
 {{ .System }}&amp;lt;|im_end|&amp;gt;&lt;br /&gt;
 {{ end }}&lt;br /&gt;
 {{ if .Prompt }}&amp;lt;|im_start|&amp;gt;user&lt;br /&gt;
 {{ .Prompt }}&amp;lt;|im_end|&amp;gt;&lt;br /&gt;
 {{ end }}&lt;br /&gt;
 &amp;lt;|im_start|&amp;gt;assistant&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Lanzar un script sbatch cargando el modelo con: &amp;lt;code&amp;gt;ollama serve &amp;amp;&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;ollama create &amp;lt;model_name&amp;gt; -f /ruta/al/model_file&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J ollama_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 6&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=4090MB&lt;br /&gt;
 #SBATCH -o logs/ollama_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/ollama_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 export OLLAMA_HOST=0.0.0.0:11434&lt;br /&gt;
 ollama serve &amp;amp;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 ollama create Hermes-3:405b-Q4_L -f /home/intern02/test/ollama_test/Modelfile&lt;br /&gt;
&lt;br /&gt;
* Posterior a este paso, puede realizar inferencia con su modelo con:&lt;br /&gt;
&lt;br /&gt;
 ollama run &amp;lt;model_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ¿Por qué falla al cargar el modelo? ===&lt;br /&gt;
&lt;br /&gt;
Si el modelo no carga, es probable que no esté disponible en directorio compartido &amp;lt;code&amp;gt;/home/ai_inference_db/models&amp;lt;/code&amp;gt;, ante esto hay dos soluciones.&lt;br /&gt;
&lt;br /&gt;
* Comunicarse con el equipo NLHPC mediante Ticket a soporte para ser agregado al grupo &amp;lt;code&amp;gt;&amp;lt;practica-gpu\&amp;gt;&amp;lt;/code&amp;gt;, el cual puede descargar modelos en la carpeta compartida.&lt;br /&gt;
* Cambiar la variable de entorno &amp;lt;code&amp;gt;OLLAMA_MODELS&amp;lt;/code&amp;gt; a un directorio con permisos.&lt;br /&gt;
&lt;br /&gt;
 unset OLLAMA_MODELS&lt;br /&gt;
&lt;br /&gt;
Con esto podrá descargar modelos en su directorio local y por tanto, ejecutarlos.&lt;br /&gt;
&lt;br /&gt;
=== ¿Es posible utilizar modelos desde hugging face? ===&lt;br /&gt;
&lt;br /&gt;
Si, si el modelo está en formato &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;, es posible que exista compatibilidad directa con el servicio de ollama. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ollama run hf.co/unsloth/DeepSeek-R1-GGUF:Q4_K_M&lt;br /&gt;
&lt;br /&gt;
Por lo general, puede encontrar las instrucciones de ejecución en la página de Hugging Face, específicamente en la sección &amp;quot;Use this model&amp;quot; del modelo.&lt;br /&gt;
&lt;br /&gt;
== Otros Enlaces ==&lt;br /&gt;
&lt;br /&gt;
[[OLLAMA API]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con módulos de software]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con apptainer]]&lt;br /&gt;
&lt;br /&gt;
[[ Diffusers ]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=OLLAMA_API&amp;diff=984</id>
		<title>OLLAMA API</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=OLLAMA_API&amp;diff=984"/>
		<updated>2025-06-02T20:48:52Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Lanzar el servicio Ollama */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En el contexto del NLHPC, se ofrecen dos herramientas principales para desplegar y realizar inferencia con LLMs: Ollama y vLLM. La elección entre ambas dependerá del  formato del modelo y de los requisitos específicos de la implementación:&lt;br /&gt;
&lt;br /&gt;
* Ollama: Recomendado para utilizar modelos cuantizados, lo que permite una inferencia más rápida y eficiente.&lt;br /&gt;
* vLLM: Ideal para ejecutar modelos descargados desde Hugging Face en formato .safetensors, ofreciendo un alto rendimiento y eficiencia en el manejo de múltiples solicitudes simultáneas.&lt;br /&gt;
&lt;br /&gt;
Ollama es una herramienta diseñada para ejecutar y utilizar grandes modelos de lenguaje (LLMs) de forma eficiente y accesible. Su enfoque se centra en la facilidad de uso y se destaca por su soporte con modelos cuantizados.&lt;br /&gt;
&lt;br /&gt;
En el siguiente artículo se le enseñará a:&lt;br /&gt;
&lt;br /&gt;
# Desplegar el servicio de Ollama en el cluster.&lt;br /&gt;
# Conectarse a la API del servicio desplegado desde su computadora local.&lt;br /&gt;
# Utilizar la API para realizar cargas de trabajo de inferencia.&lt;br /&gt;
&lt;br /&gt;
== Cargar ollama ==&lt;br /&gt;
&lt;br /&gt;
Para obtener Ollama con compatibilidad AMD debe cargar el módulo:&lt;br /&gt;
&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
&lt;br /&gt;
El cual contiene todos paquetes de software necesarios para realizar inferencia con modelos de deep learning como diffusers y LLM’s.&lt;br /&gt;
&lt;br /&gt;
Entre los paquetes se encuentran:&lt;br /&gt;
    &lt;br /&gt;
* Pytorch,&lt;br /&gt;
* Ollama,  &lt;br /&gt;
* vLLM,  &lt;br /&gt;
* diffusers,&lt;br /&gt;
* huggingface-cli,&lt;br /&gt;
* transformers,&lt;br /&gt;
* etc.&lt;br /&gt;
&lt;br /&gt;
== Lanzar el servicio Ollama ==&lt;br /&gt;
&lt;br /&gt;
Para poder utilizar el servicio de ollama, primero hay que lanzarlo, esto se puede realizar con el siguiente script sbatch de ejemplo:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J ollama_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 8&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=30354MB&lt;br /&gt;
 #SBATCH -o logs/ollama_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/ollama_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 export OLLAMA_HOST=0.0.0.0:11434&lt;br /&gt;
 ollama serve &amp;amp;&lt;br /&gt;
&lt;br /&gt;
=== ⚠️ Consideraciones importantes: ===&lt;br /&gt;
&lt;br /&gt;
==== Terminar el servicio de Ollama: ====&lt;br /&gt;
&lt;br /&gt;
El servicio de Ollama &#039;&#039;&#039;no termina automáticamente&#039;&#039;&#039;, recuerde siempre cancelar la tarea con &amp;lt;code&amp;gt;scancel&amp;lt;/code&amp;gt; para evitar subutilización de los recursos de cómputo.&lt;br /&gt;
&lt;br /&gt;
==== Memoria RAM: ====&lt;br /&gt;
&lt;br /&gt;
La cantidad de RAM que se está reservando debe ser acorde a la cantidad de memoria que&lt;br /&gt;
necesita el modelo a lanzar. Se puede utilizar la siguiente fórmula para estimar el peso en&lt;br /&gt;
GB&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cantidad de parámetros&amp;gt; * &amp;lt;cantidad de bits&amp;gt; / (8 * 10 ^ 9)&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si su modelo tiene 14 billones de parámetros y está cuantizado a 4 bits, entonces requerirá 7GB de memoria para lanzarse, por tanto debe reservar siete o más gigabytes de memoria.&lt;br /&gt;
&lt;br /&gt;
==== Reserva de GPU’s: ====&lt;br /&gt;
&lt;br /&gt;
Cada GPU MI210 tiene 64 GB de memoria VRAM. Si su modelo utiliza más memoria, entonces solicitar más GPU’s adicionales con &amp;lt;code&amp;gt;--gres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, al solicitar más GPU’s el rendimiento en tokens/s no mejora. Además, se recomienda pedir 8 CPU’s por GPU solicitada.&lt;br /&gt;
&lt;br /&gt;
==== Puerto de escucha: ====&lt;br /&gt;
&lt;br /&gt;
Por defecto, el puerto de escucha de ollama es 11434, considere cambiarlo en el archivo &amp;lt;code&amp;gt;.job&amp;lt;/code&amp;gt; para que su puerto no choque con el de otros usuarios.&lt;br /&gt;
&lt;br /&gt;
 export OLLAMA_HOST=0.0.0.0:&amp;lt;puerto&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Usar Modelos en una Ubicación Personalizada: ====&lt;br /&gt;
&lt;br /&gt;
Por defecto, el directorio de descarga de modelos es &amp;lt;code&amp;gt;/home/ai_inference_db/models&amp;lt;/code&amp;gt;. Si el&lt;br /&gt;
modelo que se quiere utilizar no se encuentra en esta ubicación. Entonces:&lt;br /&gt;
&lt;br /&gt;
* Solicitar el grupo &amp;lt;code&amp;gt;&amp;lt;practica-gpu&amp;gt;&amp;lt;/code&amp;gt; a soporte NLHPC&lt;br /&gt;
* Cambiar el directorio OLLAMA_MODELS con: &amp;lt;code&amp;gt;unset OLLAMA_MODELS&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Identificar en qué Nodo ejecutó Ollama ==&lt;br /&gt;
&lt;br /&gt;
Una vez lanzado el servicio de Ollama, debemos saber qué nodo se asignó. Para esto, utilizar &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 [intern02@leftraru2 ~]$ squeue&lt;br /&gt;
 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)&lt;br /&gt;
 38922125 mi210 ollama_s intern02 R 0:03 1 gn004&lt;br /&gt;
&lt;br /&gt;
Recordar el nodo donde está ejecutando nuestra tarea, en este caso &#039;&#039;&#039;gn004&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Creación de túnel de acceso ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo el nodo donde ejecutó nuestra tarea, podemos crear un túnel de acceso utilizando &amp;lt;code&amp;gt;ssh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 ssh &amp;lt;usuario&amp;gt;@leftraru.nlhpc.cl -p 4603 -L &amp;lt;puerto local&amp;gt;:&amp;lt;nodo&amp;gt;:&amp;lt;puerto en que se abrió el proceso&amp;gt;&lt;br /&gt;
&lt;br /&gt;
por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ssh intern02@leftraru.nlhpc.cl -p 4603 -L 4466:gn004:11434&lt;br /&gt;
&lt;br /&gt;
Con esto, podremos usar el “puerto local” para acceder a la API de ollama y por tanto, utilizarla.&lt;br /&gt;
Ejemplo de uso&lt;br /&gt;
&lt;br /&gt;
Una vez realizado el túnel de acceso con el nodo, es posible utilizar herramientas como curl&lt;br /&gt;
o la librería requests de python para realizar consultas a la API de ollama de manera local&lt;br /&gt;
[https://github.com/ollama/ollama/blob/main/docs/api.md Guia de uso de la API de ollama].&lt;br /&gt;
&lt;br /&gt;
Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 import requests, json&lt;br /&gt;
 url = f&amp;quot;&amp;lt;http://127.0.0.1:{port}/api/generate&amp;gt;&amp;quot;&lt;br /&gt;
 headers = {&lt;br /&gt;
 &amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;,&lt;br /&gt;
 }&lt;br /&gt;
 payload = {&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;lt;modelo&amp;gt;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;lt;prompt&amp;gt;,&lt;br /&gt;
 &amp;quot;stream&amp;quot;: False&lt;br /&gt;
 }&lt;br /&gt;
 response = requests.post(url, json=payload, headers=headers)&lt;br /&gt;
 data = response.json()&lt;br /&gt;
 response = data.get(“response”, “”)&lt;br /&gt;
 print(response)&lt;br /&gt;
&lt;br /&gt;
o con curl:&lt;br /&gt;
&lt;br /&gt;
 curl -X POST &amp;quot;&amp;lt;http://127.0.0.1:&amp;lt;port&amp;gt;&amp;gt;/api/generate&amp;quot; -H &amp;quot;Content-Type: application/json&amp;quot; -d &#039;{&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;&amp;lt;modelo&amp;gt;&amp;quot;, &amp;quot;prompt&amp;quot;: &amp;quot;&amp;lt;prompt&amp;gt;&amp;quot;, &amp;quot;stream&amp;quot;: false }&#039;&lt;br /&gt;
&lt;br /&gt;
== Rendimiento: ==&lt;br /&gt;
&lt;br /&gt;
Si se utiliza Ollama en las GPU’s MI210, se espera obtener el siguiente rendimiento:&lt;br /&gt;
&lt;br /&gt;
[[Archivo:OLLAMA-Rendimiento.png]]&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting: ==&lt;br /&gt;
=== ¿Cómo puedo cargar mi modelo de lenguaje propio y/o finetuned? ===&lt;br /&gt;
&lt;br /&gt;
* Copiar el modelo en formato &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt; desde su computadora local al cluster utilizando &amp;lt;code&amp;gt;rsync&amp;lt;/code&amp;gt; o filezilla.     Notar que Ollama sólo acepta un archivo &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Crear un modelfile de ollama, puede seguir la siguiente [https://github.com/ollama/ollama/blob/main/docs/modelfile.md#build-from-a-safetensors-model documentación].&lt;br /&gt;
&lt;br /&gt;
Un modelfile típico es:&lt;br /&gt;
&lt;br /&gt;
 FROM&lt;br /&gt;
 ruta/a/tu/modelo.gguf&lt;br /&gt;
 TEMPLATE &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 {{ if .System }}&amp;lt;|im_start|&amp;gt;system&lt;br /&gt;
 {{ .System }}&amp;lt;|im_end|&amp;gt;&lt;br /&gt;
 {{ end }}&lt;br /&gt;
 {{ if .Prompt }}&amp;lt;|im_start|&amp;gt;user&lt;br /&gt;
 {{ .Prompt }}&amp;lt;|im_end|&amp;gt;&lt;br /&gt;
 {{ end }}&lt;br /&gt;
 &amp;lt;|im_start|&amp;gt;assistant&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
* Lanzar un script sbatch cargando el modelo con: &amp;lt;code&amp;gt;ollama serve &amp;amp;&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;ollama create &amp;lt;model_name&amp;gt; -f /ruta/al/model_file&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Ejemplo:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J ollama_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 6&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=4090MB&lt;br /&gt;
 #SBATCH -o logs/ollama_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/ollama_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 export OLLAMA_HOST=0.0.0.0:11434&lt;br /&gt;
 ollama serve &amp;amp;&lt;br /&gt;
 sleep 5&lt;br /&gt;
 ollama create Hermes-3:405b-Q4_L -f /home/intern02/test/ollama_test/Modelfile&lt;br /&gt;
&lt;br /&gt;
* Posterior a este paso, puede realizar inferencia con su modelo con:&lt;br /&gt;
&lt;br /&gt;
 ollama run &amp;lt;model_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ¿Por qué falla al cargar el modelo? ===&lt;br /&gt;
&lt;br /&gt;
Si el modelo no carga, es probable que no esté disponible en directorio compartido &amp;lt;code&amp;gt;/home/ai_inference_db/models&amp;lt;/code&amp;gt;, ante esto hay dos soluciones.&lt;br /&gt;
&lt;br /&gt;
* Comunicarse con el equipo NLHPC mediante Ticket a soporte para ser agregado al grupo &amp;lt;code&amp;gt;&amp;lt;practica-gpu\&amp;gt;&amp;lt;/code&amp;gt;, el cual puede descargar modelos en la carpeta compartida.&lt;br /&gt;
* Cambiar la variable de entorno &amp;lt;code&amp;gt;OLLAMA_MODELS&amp;lt;/code&amp;gt; a un directorio con permisos.&lt;br /&gt;
&lt;br /&gt;
 unset OLLAMA_MODELS&lt;br /&gt;
&lt;br /&gt;
Con esto podrá descargar modelos en su directorio local y por tanto, ejecutarlos.&lt;br /&gt;
&lt;br /&gt;
=== ¿Es posible utilizar modelos desde hugging face? ===&lt;br /&gt;
&lt;br /&gt;
Si, si el modelo está en formato &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;, es posible que exista compatibilidad directa con el servicio de ollama. Por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ollama run hf.co/unsloth/DeepSeek-R1-GGUF:Q4_K_M&lt;br /&gt;
&lt;br /&gt;
Por lo general, puede encontrar las instrucciones de ejecución en la página de Hugging Face, específicamente en la sección &amp;quot;Use this model&amp;quot; del modelo.&lt;br /&gt;
&lt;br /&gt;
== Otros Enlaces ==&lt;br /&gt;
&lt;br /&gt;
[[OLLAMA API]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con módulos de software]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con apptainer]]&lt;br /&gt;
&lt;br /&gt;
[[ Diffusers ]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=982</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=982"/>
		<updated>2025-04-29T18:21:53Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Archivo report.log */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando &#039;&#039;&#039;seff&#039;&#039;&#039;  muestra la eficiencia de un trabajo en SLURM. &lt;br /&gt;
Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;seff &amp;lt;job_id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Dashboard.jpg|no|dashboard]]&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Uso_por_core.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Mem_por_core.png|no]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- &amp;lt;pre&amp;gt;&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt; --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=981</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=981"/>
		<updated>2025-04-29T18:19:30Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* htop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando &#039;&#039;&#039;seff&#039;&#039;&#039;  muestra la eficiencia de un trabajo en SLURM. &lt;br /&gt;
Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;seff &amp;lt;job_id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Dashboard.jpg|no|dashboard]]&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Uso_por_core.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Mem_por_core.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=980</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=980"/>
		<updated>2025-04-29T18:18:50Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Memoria utilizada por core */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando &#039;&#039;&#039;seff&#039;&#039;&#039;  muestra la eficiencia de un trabajo en SLURM. &lt;br /&gt;
Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;seff &amp;lt;job_id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Dashboard.jpg|no|dashboard]]&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Uso_por_core.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Mem_por_core.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Archivo:Mem_por_core.png&amp;diff=979</id>
		<title>Archivo:Mem por core.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Archivo:Mem_por_core.png&amp;diff=979"/>
		<updated>2025-04-29T18:18:02Z</updated>

		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=978</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=978"/>
		<updated>2025-04-29T18:17:21Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Porcentaje de uso por core */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando &#039;&#039;&#039;seff&#039;&#039;&#039;  muestra la eficiencia de un trabajo en SLURM. &lt;br /&gt;
Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;seff &amp;lt;job_id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Dashboard.jpg|no|dashboard]]&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Uso_por_core.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Archivo:Uso_por_core.png&amp;diff=977</id>
		<title>Archivo:Uso por core.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Archivo:Uso_por_core.png&amp;diff=977"/>
		<updated>2025-04-29T18:16:48Z</updated>

		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=976</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=976"/>
		<updated>2025-04-28T21:39:06Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* A través de Dashboard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando &#039;&#039;&#039;seff&#039;&#039;&#039;  muestra la eficiencia de un trabajo en SLURM. &lt;br /&gt;
Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;seff &amp;lt;job_id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Dashboard.jpg|no|dashboard]]&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=975</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=975"/>
		<updated>2025-04-28T21:38:05Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* A través de Dashboard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando &#039;&#039;&#039;seff&#039;&#039;&#039;  muestra la eficiencia de un trabajo en SLURM. &lt;br /&gt;
Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;seff &amp;lt;job_id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Dashboard.jpg| dashboard&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Archivo:Dashboard.jpg&amp;diff=974</id>
		<title>Archivo:Dashboard.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Archivo:Dashboard.jpg&amp;diff=974"/>
		<updated>2025-04-28T21:36:11Z</updated>

		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=973</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=973"/>
		<updated>2025-04-28T20:07:12Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* A través de Dashboard */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando &#039;&#039;&#039;seff&#039;&#039;&#039;  muestra la eficiencia de un trabajo en SLURM. &lt;br /&gt;
Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;seff &amp;lt;job_id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=SISTEMA_GESTOR_DE_RECURSOS&amp;diff=972</id>
		<title>SISTEMA GESTOR DE RECURSOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=SISTEMA_GESTOR_DE_RECURSOS&amp;diff=972"/>
		<updated>2025-04-23T14:58:31Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Caso de uso de un Script Job Array (Gaussian) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== SLURM Workload Manager ==&lt;br /&gt;
Es un sistema de programación de trabajos y gestión de clústeres de código abierto, tolerante a fallas y altamente escalable para clústeres Linux grandes y pequeños.&lt;br /&gt;
&lt;br /&gt;
Como administrador de carga de trabajo de clúster, Slurm tiene tres funciones clave. Primero, asigna acceso exclusivo y / o no exclusivo a los recursos (nodos de cómputo) a los usuarios durante un período de tiempo para que puedan realizar el trabajo. En segundo lugar, proporciona un marco para iniciar, ejecutar y monitorear el trabajo (normalmente un trabajo paralelo) en el conjunto de nodos asignados. Finalmente, arbitra la contención de recursos mediante la gestión de una cola de trabajo pendiente.&lt;br /&gt;
&lt;br /&gt;
SLURM es el gestor de colas instalado en muchos de los súper computadores del [https://www.top500.org/ TOP500], y también en el clúster del NLHPC. Si Ud. quiere lanzar tareas dentro de Leftaru, debe hacerlo a través de Slurm.&lt;br /&gt;
&lt;br /&gt;
== Conceptos clave ==&lt;br /&gt;
SLURM gestiona trabajos de usuario que tienen las siguientes características clave:&lt;br /&gt;
&lt;br /&gt;
* Conjunto de recursos solicitados:&lt;br /&gt;
** Número de recursos informáticos: nodos (incluidas todas sus CPUs y núcleos) o CPUs (incluidos todos sus núcleos) o solo núcleos&lt;br /&gt;
** Cantidad de memoria: por nodo o por CPU (lógica)&lt;br /&gt;
** Tiempo necesario para que las tareas del usuario completen su trabajo&lt;br /&gt;
* Una partición de nodo solicitada (cola de trabajos)&lt;br /&gt;
* Un nivel de calidad de servicio (QoS) solicitado que otorga a los usuarios accesos específicos&lt;br /&gt;
* Una cuenta solicitada con recursos limitados&lt;br /&gt;
&lt;br /&gt;
De manera predeterminada, los usuarios envían trabajos a una partición particular (marcada como tal para todos los usuarios) y bajo una cuenta particular (preestablecida por usuario).&lt;br /&gt;
&lt;br /&gt;
== Particiones SLURM ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 60%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nombre Particion&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nodos&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CPUs&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;RAM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Descripción&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;main&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;27&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;256&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;768GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;general&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;48&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;44&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;187GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;largemem&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;9&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;44&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;765GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;v100&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;44&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;187GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;4 GPUs Nvidia Tesla V100.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;mi100&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;128&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;502GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2 GPUs AMD Instinct MI100.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;mi210&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;24&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;1457GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;6 GPUs AMD Instinct MI210.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;debug&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;48&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;768GB&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Destinados a pruebas de máximo 30 minutos.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introducción a los comandos slurm ==&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 60%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Comando SLURM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Descripción&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;srun&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;ejecutar un comando en nodos de cómputo asignados.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;sbatch&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;presentar un script de trabajo&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;squeue&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Mostrar estado de los trabajos en la cola.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;scancel&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;eliminar un trabajo.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;sinfo&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Muestra el estado de los nodos de cómputo.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
Estos son los comandos básicos utilizados para realizar la mayoría de las operaciones básicas con SLURM.&lt;br /&gt;
&lt;br /&gt;
=== Estado de nodos ===&lt;br /&gt;
Para consultar el uso de nuestra infraestructura y qué particiones están más libres, le recomendamos el comando sinfo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# sinfo&amp;lt;small&amp;gt;&lt;br /&gt;
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST&lt;br /&gt;
main*        up   infinite      1  idle mn[016,018]&lt;br /&gt;
main*        up   infinite     21    mix mn[001-003,005,007-011,013,015,017,019-027]&lt;br /&gt;
main*        up   infinite      4  alloc mn[004,006,012,014]&lt;br /&gt;
general      up   infinite      1  drain sn041&lt;br /&gt;
general      up   infinite     16    mix sn[005-007,012-015,019-021,030-031,043-048]&lt;br /&gt;
general      up   infinite     31  alloc sn[001-004,008-011,016-018,022-029,032-040]&lt;br /&gt;
largemem     up   infinite      1    mix fn006&lt;br /&gt;
largemem     up   infinite      8  alloc fn[001-005,007-009]&lt;br /&gt;
debug        up   infinite      2   idle leftraru[1-2]&lt;br /&gt;
v100         up   infinite      2    mix gn[001-002]&lt;br /&gt;
mi100        up   infinite      1   idle gn003&lt;br /&gt;
mi210        up   infinite      1    mix gn004&lt;br /&gt;
mi210        up   infinite      1   idle gn005&amp;lt;/small&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Fijándose en el texto resaltado de la salida del comando sinfo, se puede comprobar que en la partición main hay 20 nodos que están completamente ocupados (estado alloc), 7 nodos que están libres (idle); por otro lado, en la partición general hay 22 nodos completamente ocupados, 4 parcialmente ocupados y 22 libres. Dado este escenario, está claro que debería de lanzar sus ejecuciones en los nodos de la partición general, por las razones anteriormente expuestas.&lt;br /&gt;
&lt;br /&gt;
Para lanzar en la partición general, debe tener en cuenta que tiene que indicar en su script que se use dicha partición en vez de, probablemente, main. Por supuesto, en esta partición cambian las características técnicas, se pasan a tener 44 cores por nodo (en vez de 256 en main) y una capacidad RAM de 187GB (en vez de 768GB en main). Puede ver más información de las particiones en este link(agregar link), donde podrá revisar que con la inclusión de Guacolda hemos añadido nodos con hasta 765GB de memoria RAM y nodos con GPUs Nvidia Tesla V100 y AMD Instinct MI100 .&lt;br /&gt;
&lt;br /&gt;
Para ver los nodos disponibles y poder determinar en que partición lanzar los trabajos se recomienda utilizar el siguiente comando.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[prueba@leftraru1 ~]$ sinfo -o &amp;quot;%10P %6D %10t %10m %c&amp;quot; -t idle| egrep &amp;quot;PARTITION|main|general|largemem|v100|mi100|mi210&amp;quot;&lt;br /&gt;
PARTITION  NODES  STATE      MEMORY     CPUS&lt;br /&gt;
PARTITION  NODES  STATE      MEMORY     CPUS&lt;br /&gt;
main*      2      idle       727000     256&lt;br /&gt;
general    0      n/a        0          0&lt;br /&gt;
largemem   0      n/a        0          0&lt;br /&gt;
v100       0      n/a        0          0&lt;br /&gt;
mi100      1      idle       485000     128&lt;br /&gt;
mi210      1      idle       1457000    48&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
El comando anterior muestra que main tiene 27 nodos libres, en este caso es recomendado lanzar en en main para evitar que el trabajo quede en cola por falta de recursos en otros nodos.&lt;br /&gt;
&lt;br /&gt;
Otro Ejemplo, se muestra sólo una partición específica&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;[prueba@leftraru1 ~]$ sinfo -p main&lt;br /&gt;
PARTITION AVAIL  TIMELIMIT  NODES  STATE NODELIST&lt;br /&gt;
main*        up   infinite     15    mix mn[001-008,014-020]&lt;br /&gt;
main*        up   infinite     12   idle mn[009-013,021-027]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Comprobación del estado de tareas ===&lt;br /&gt;
squeue - Muestra el estatus de los trabajos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;squeue                  # tus trabajos&lt;br /&gt;
squeue -u &amp;amp;lt;username&amp;amp;gt;    # trabajos por usuario &amp;amp;lt;username&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
squeue: Comprobar estados de los trabajos&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;&amp;quot; class=&amp;quot;mw-highlight mw-content-ltr&amp;quot; dir=&amp;quot;ltr&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  JOBID        PARTITION     NAME     USER    ST       TIME  	NODES 	NODELIST(REASON)&lt;br /&gt;
13951858_1     general	     test1    test1    R   1-18:35:14      2    cn[009-010]&lt;br /&gt;
13951857_2     general       test2    test1    R   1-18:36:11      2    cn[099-100]&lt;br /&gt;
13956453       gpu           test3    test3    R   1-03:42:08      1    cn039&lt;br /&gt;
13956449       largemem      test4    test4    R   1-05:42:08      1    cn044&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Puede utilizar squeue para saber el estado de una o varias de sus tareas&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ squeue -o &amp;quot;%.15i %.6P %.8j %.20S %.11M %.11L %.20V %.10Q %.4C %.2D %.6m&amp;quot; -S -t,-Q&lt;br /&gt;
 JOBID   PARTIT     NAME      START_TIME          TIME      TIME_LEFT     SUBMIT_TIME       PRIORITY CPUS NO MIN_ME&lt;br /&gt;
10837561 general   TEST1   2018-06-18T18:51:01    19:00:31  2-04:59:29  2018-06-18T18:51:01  119972    1  1  1000M&lt;br /&gt;
10838562 general   TEST2   2018-06-19T11:30:47    2:20:45   2-21:39:15  2018-06-19T11:30:46  119946    1  1  1000M&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
para mas opciones puede revisar con el comando [https://slurm.schedmd.com/squeue.html man squeue] las opciones restantes.&lt;br /&gt;
&lt;br /&gt;
=== Códigos de ESTADO de los trabajos ===&lt;br /&gt;
&lt;br /&gt;
Los trabajos suelen pasar por varios estados durante su ejecución. Los estados típicos son PENDIENTE, EN EJECUCIÓN, SUSPENDIDO, FINALIZANDO y TERMINADO. A continuación se explica cada estado.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;BF&#039;&#039;&#039; BOOT_FAIL&lt;br /&gt;
    Trabajo finalizado debido a un fallo de arranque, normalmente debido a un fallo de hardware (por ejemplo, no se puede arrancar el nodo o bloque y el trabajo no se puede volver a poner en cola). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CA&#039;&#039;&#039; CANCELADO&lt;br /&gt;
    El trabajo ha sido cancelado explícitamente por el usuario o el administrador del sistema. El trabajo puede haberse iniciado o no. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CD&#039;&#039;&#039; TERMINADO&lt;br /&gt;
    El trabajo ha terminado todos los procesos en todos los nodos con un código de salida de cero. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CF&#039;&#039;&#039; CONFIGURANDO&lt;br /&gt;
    Al trabajo se le han asignado recursos, pero están esperando a que estén listos para su uso (por ejemplo, arrancando). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;CG&#039;&#039;&#039; COMPLETANDO&lt;br /&gt;
    El trabajo está en proceso de finalización. Algunos procesos en algunos nodos pueden estar aún activos. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;DL&#039;&#039;&#039; FECHA LÍMITE&lt;br /&gt;
    El trabajo ha finalizado en la fecha límite. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;F&#039;&#039;&#039; FALLÓ&lt;br /&gt;
    Trabajo finalizado con un código de salida distinto de cero u otra condición de fallo. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NF&#039;&#039;&#039; NODO_FAIL&lt;br /&gt;
    Trabajo finalizado debido al fallo de uno o más nodos asignados. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;OOM&#039;&#039;&#039; OUT_OF_MEMORY&lt;br /&gt;
    El trabajo ha experimentado un error de memoria insuficiente. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PD&#039;&#039;&#039; PENDIENTE&lt;br /&gt;
    El trabajo está pendiente de asignación de recursos. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;PR&#039;&#039;&#039; PREEMPTED&lt;br /&gt;
    El trabajo ha finalizado debido a una espera. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;R&#039;&#039;&#039; EN MARCHA&lt;br /&gt;
    El trabajo tiene actualmente una asignación. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RD&#039;&#039;&#039; RESV_DEL_HOLD&lt;br /&gt;
    El trabajo se está reteniendo después de que se eliminara la reserva solicitada. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RF&#039;&#039;&#039; REQUEUE_FED&lt;br /&gt;
    El trabajo está siendo solicitado por una federación. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RH&#039;&#039;&#039; REQUEUE_HOLD&lt;br /&gt;
    Se está volviendo a poner en cola un trabajo retenido. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RQ&#039;&#039;&#039; REQUEUED&lt;br /&gt;
    Se está poniendo en cola un trabajo que se está completando. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RS&#039;&#039;&#039; CAMBIO DE TAMAÑO&lt;br /&gt;
    El trabajo está a punto de cambiar de tamaño. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;RV&#039;&#039;&#039; REVOCADO&lt;br /&gt;
    El trabajo se ha retirado del clúster debido a que otro clúster ha iniciado el trabajo. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SI&#039;&#039;&#039; SEÑALANDO&lt;br /&gt;
    El trabajo está siendo señalizado. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SE&#039;&#039;&#039; SPECIAL_EXIT&lt;br /&gt;
    El trabajo se ha puesto en cola en un estado especial. Este estado puede ser establecido por los usuarios, normalmente en EpilogSlurmctld, si el trabajo ha terminado con un valor de salida particular. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SO&#039;&#039;&#039; STAGE_OUT&lt;br /&gt;
    El trabajo está preparando los archivos. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ST&#039;&#039;&#039; PARADO&lt;br /&gt;
    El trabajo tiene una asignación, pero la ejecución se ha detenido con la señal SIGSTOP. Los CPUS han sido retenidos por este trabajo. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;S&#039;&#039;&#039; SUSPENDIDO&lt;br /&gt;
    El trabajo tiene una asignación, pero se ha suspendido la ejecución y se han liberado CPUs para otros trabajos. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;TO&#039;&#039;&#039; TIMEOUT&lt;br /&gt;
    El trabajo ha finalizado al alcanzar su límite de tiempo.&lt;br /&gt;
&lt;br /&gt;
=== Cancelar un trabajo ===&lt;br /&gt;
Con scancel se puede cancelar un trabajo en ejecución&lt;br /&gt;
&amp;lt;pre&amp;gt;scancel &amp;amp;lt;jobID&amp;amp;gt;         # Matar proceso &amp;amp;lt;jobID&amp;amp;gt;. (puede obtener el ID del job con &amp;quot;squeue&amp;quot;)&lt;br /&gt;
scancel -u &amp;amp;lt;username&amp;amp;gt;   # Matar proceso por usuario &amp;amp;lt;username&amp;amp;gt;. &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[prueba@leftraru1 ~]$ squeue -u prueba&lt;br /&gt;
 JOBID  PARTITION    NAME     USER    ST   TIME  NODES  NODELIST(REASON)&lt;br /&gt;
 45594    main       TEST    prueba   R    0:59   3     mn[001-003]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[prueba@leftraru1 ~]$ scancel 45594&lt;br /&gt;
[prueba@leftraru1 ~]$ squeue -u prueba&lt;br /&gt;
JOBID PARTITION     NAME     USER ST       TIME  NODES NODELIST(REASON)&lt;br /&gt;
[prueba@leftraru1 ~]$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ver estado de trabajos ===&lt;br /&gt;
Para revisar el detalle de las opciones de un trabajo: scontrol show job&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol show job 10837561&lt;br /&gt;
JobId=10837561 JobName=TEST1&lt;br /&gt;
   UserId=usuario(1000) GroupId=group(1000) MCS_label=N/A&lt;br /&gt;
   Priority=1100 Nice=0 Account=account QOS=120&lt;br /&gt;
   JobState=RUNNING Reason=None Dependency=(null)&lt;br /&gt;
   Requeue=0 Restarts=0 BatchFlag=1 Reboot=0 ExitCode=0:0&lt;br /&gt;
   DerivedExitCode=0:0&lt;br /&gt;
   RunTime=19:03:08 TimeLimit=3-00:00:00 TimeMin=N/A&lt;br /&gt;
   SubmitTime=2018-06-18T18:51:01 EligibleTime=2018-06-18T18:51:01&lt;br /&gt;
   StartTime=2018-06-18T18:51:01 EndTime=2018-06-21T18:51:01 Deadline=N/A&lt;br /&gt;
   PreemptTime=None SuspendTime=None SecsPreSuspend=0&lt;br /&gt;
   Partition=main AllocNode:Sid=leftraru2:5471&lt;br /&gt;
   ReqNodeList=(null) ExcNodeList=(null)&lt;br /&gt;
   NodeList=cn021&lt;br /&gt;
   BatchHost=cn021&lt;br /&gt;
   NumNodes=1 NumCPUs=1 NumTasks=1 CPUs/Task=1 ReqB:S:C:T=0:0:*:*&lt;br /&gt;
   TRES=cpu=1,mem=1000M,node=1&lt;br /&gt;
   Socks/Node=* NtasksPerN:B:S:C=1:0:*:* CoreSpec=*&lt;br /&gt;
     Nodes=cn021 CPU_IDs=1 Mem=1000 GRES_IDX=&lt;br /&gt;
   MinCPUsNode=1 MinMemoryCPU=1000M MinTmpDiskNode=0&lt;br /&gt;
   Features=(null) DelayBoot=00:00:00&lt;br /&gt;
   Gres=(null) Reservation=(null)&lt;br /&gt;
   OverSubscribe=OK Contiguous=0 Licenses=matlab Network=(null)&lt;br /&gt;
   Command=/home/usuario/script.sh&lt;br /&gt;
   WorkDir=/home/usuario/&lt;br /&gt;
   StdErr=/home/usuario/10837561_%x.err&lt;br /&gt;
   StdIn=/dev/null&lt;br /&gt;
   StdOut=/home/usuario/10837561_%x.out&lt;br /&gt;
   Power=&lt;br /&gt;
   BatchScript=&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Para ver el script asociado a un trabajo: scontrol write batch_script &amp;lt;job_id&amp;gt; -&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ scontrol write batch_script 10837561 -&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -J nombre_del_trabajo&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH --ntasks-per-node=1&lt;br /&gt;
#SBATCH --mail-user=usaurio@correo.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o nombre_del_trabajo%j_%x.out&lt;br /&gt;
#SBATCH -e nombre_del_trabajo%j_%x.err&lt;br /&gt;
#SBATCH --license=matlab &lt;br /&gt;
 &lt;br /&gt;
ml MATLAB/2017a&lt;br /&gt;
&lt;br /&gt;
matlab -nodisplay -nosplash -nodesktop &amp;lt; programa.m&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Ejecutando trabajos ==&lt;br /&gt;
Actualmente contamos con 2 metodos de enviar trabajos bajo SLURM: &#039;&#039;&#039;sbatch&#039;&#039;&#039; and &#039;&#039;&#039;srun&#039;&#039;&#039;. A veces puede ser ventajoso ejecutar un solo comando en el clúster como prueba o realizar rápidamente una operación con recursos adicionales. &#039;srun&#039; permite a los usuarios hacer esto, y comparte las mismas variables que &#039;sbatch&#039; . STDOUT y STDERR para un trabajo &#039;srun&#039; serán redirigidos a la pantalla del usuario. Ctrl-C cancelará un trabajo srun. &#039;&#039;&#039;sbatch&#039;&#039;&#039; enviará un script de trabajo para que lo ejecute el clúster. Los scripts de trabajo bajo SLURM son simplemente scripts de shell (* .sh) con un conjunto de solicitudes de recursos en la parte superior del script.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Uso básico de srun:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
srun &amp;lt;algúnComando&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ejemplo de salida (ejecutando el comando &amp;quot;hostname&amp;quot; para saber en que nodo se está ejecutando):&lt;br /&gt;
&amp;lt;pre&amp;gt; $ srun hostname&lt;br /&gt;
  cn003&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para enviar un script de trabajo a SLURM:&lt;br /&gt;
&amp;lt;pre&amp;gt;sbatch nombreScript.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Example output:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ sbatch test-job.sh&lt;br /&gt;
Submitted batch job 1169&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Variables Slurm ===&lt;br /&gt;
Las variables en esta sección son obligatorias, y SLURM las determina para determinar dónde y cuándo se ejecutarán sus trabajos. Si no asigna un valor para estos, el planificador asignará a sus trabajos el valor predeterminado. Si no solicita específicamente recursos para un trabajo, se le asignará un conjunto de recursos predeterminados. Para obtener una lista de todas las variables disponibles, consulte la documentación de SLURM en http://slurm.schedmd.com/sbatch.html. Las variables de este artículo estaban cubiertas porque eran las más relevantes para los casos de uso típicos.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Comando SLURM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Descripción&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;--mem-per-cpu=&amp;amp;lt;megabytes&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Memoria requerida para el trabajo por CPU (en MegaBytes). El valor predeterminado es 1024 MB.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-p &amp;amp;lt;partition&amp;amp;gt;, --partition=&amp;amp;lt;partition&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Enviar un trabajo a una partición específica.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-n, --ntasks=&amp;amp;lt;cantidad de tareas&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Número de tareas que serán asignadas para el trabajo.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-c &amp;amp;lt;cpus&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Esta es la cantidad de CPU que necesita su trabajo. Tenga en cuenta que SLURM es relativamente generoso con las CPU, y el valor especificado aquí es el número &amp;quot;mínimo&amp;quot; de CPU que se asignará a su trabajo. Si hay CPU adicionales disponibles en un nodo más allá de lo solicitado, su trabajo recibirá esas CPU hasta que otros trabajos las necesiten. El valor predeterminado es 1 CPU. Intentar usar más CPU de las que se le asignaron dará como resultado que sus procesos adicionales se turnen en la misma CPU (ralentizando su trabajo).&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-J &amp;amp;lt;name&amp;amp;gt;, --jobname=&amp;amp;lt;name&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Especifica un nombre a tu trabajo.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;--mail-type=BEGIN,END,FAIL,ALL&amp;lt;b&amp;gt; and &amp;lt;/b&amp;gt;--mail-user=&amp;amp;lt;emailAddress&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Enviar por correo electrónico cuando su trabajo comienza / termina / falla. Puede especificar varios valores para esto (separados por comas) si es necesario.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-o &amp;amp;lt;STDOUT_log&amp;amp;gt;, --output=&amp;amp;lt;STDOUT_log&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Redirija la salida a los archivos de registro que especifique. Por defecto, ambos, STDOUT and STDERR son enviados a este archivo. Puedes especificar %j como parte del nombre de archivo de registro para indicar la ID del trabajo (como ejemplo, &amp;quot;#SBATCH -o ouptut_%j.o&amp;quot; redirigiría la salida a &amp;quot;output_123456.o&amp;quot;).&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-e &amp;amp;lt;STDERR_log&amp;amp;gt;, --error=&amp;amp;lt;STDERR_log&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Redireccionar STDERR a un archivo separado. Funciona exactamente igual que &amp;quot;-o&amp;quot;.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-t &amp;amp;lt;days-hours:minutes:seconds&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Walltime para tu trabajo. La duración del Walltime es el tiempo que espera que su trabajo se ejecute.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;-a, --array=&amp;amp;lt;índices&amp;amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Envía una lista (arreglo) de trabajos identicos. Solo aplica para sbatch.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Los scripts de trabajo especifican los recursos solicitados y otras consideraciones especiales con comentarios especiales &amp;quot;#SBATCH&amp;quot; en la parte superior de un script de trabajo. Aunque muchas de estas opciones son opcionales, las varibles que se ocupan de solicitudes de recursos (CPU, memoria y tiempo) son obligatorias. Todas las variables deben agregarse a sus scripts de la siguiente manera:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#SBATCH &amp;lt;variable&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Para especificar un nombre al job, por ejemplo, debe agregar lo siguiente a su secuencia de comandos:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;#SBATCH --job-name=nombreDeTrabajo&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enviar un script===&lt;br /&gt;
&amp;lt;pre&amp;gt; &lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH -J example&lt;br /&gt;
 #SBATCH -p general&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --output=example_%j.out&lt;br /&gt;
 #SBATCH --error=example_%j.err&lt;br /&gt;
 #SBATCH --mail-user=user@example.com&lt;br /&gt;
 #SBATCH --mail-type=ALL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Como debe comenzar un script en Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre del trabajo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -J example&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre la partición donde desea ejecutar el Job:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Número de tareas:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de salida:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -o example_%j.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -e example_%j.err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Correo para notificaciones:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-user=user@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enviar correo en todos casos (verificar opciones arriba):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Programar tarea (uso de scrontab) ===&lt;br /&gt;
&#039;&#039;&#039;scrontab&#039;&#039;&#039; es una implementación del clásico planificador de tareas de linux &#039;&#039;&#039;crontab&#039;&#039;&#039; donde se guarda un listado de comandos a ejecutar en un tiempo determinado por el usuario.&lt;br /&gt;
&lt;br /&gt;
Para acceder a scrontab utilice el siguiente comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[prueba@leftraru1 ~]$ scrontab -e&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Esto le permitirá editar su archivo scrontab, asignando recursos como también el momento en que desea ejecutar su tarea. La estructura base a utilizar es la siguiente:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SCRON -J mi_tarea&lt;br /&gt;
#SCRON -p main&lt;br /&gt;
#SCRON -n 1&lt;br /&gt;
#SCRON -c 1&lt;br /&gt;
#SCRON --mem-per-cpu=2300&lt;br /&gt;
#SCRON --mail-user=foo@bar.com&lt;br /&gt;
#SCRON --mail-type=ALL&lt;br /&gt;
#SCRON -o mi_tarea_%j.out&lt;br /&gt;
#SCRON -e mi_tarea_%j.err&lt;br /&gt;
# Example of job definition:&lt;br /&gt;
# .---------------- minute (0 - 59)&lt;br /&gt;
# |  .------------- hour (0 - 23)&lt;br /&gt;
# |  |  .---------- day of month (1 - 31)&lt;br /&gt;
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...&lt;br /&gt;
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat&lt;br /&gt;
# |  |  |  |  |&lt;br /&gt;
# *  *  *  *  *     command to be executed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;minute&#039;&#039;&#039; - Corresponde al minuto en que se va a ejecutar el script, valor de 0 a 59.&lt;br /&gt;
* &#039;&#039;&#039;hour&#039;&#039;&#039; - Hora de ejecución, formato 24 horas, valor de 0 a 23, donde 0 son las 12:00 AM.&lt;br /&gt;
* &#039;&#039;&#039;day of month&#039;&#039;&#039; - Día del mes, la tarea se puede ejecutar cada x día, valor de 1 a 31.&lt;br /&gt;
* &#039;&#039;&#039;month&#039;&#039;&#039; - La tarea se puede ejecutar cada x mes, valor de 1 a 12.&lt;br /&gt;
* &#039;&#039;&#039;day of week&#039;&#039;&#039; - Día de la semana, valor de 0 a 6, donde 0 es Domingo.&lt;br /&gt;
* &#039;&#039;&#039;command to be executed&#039;&#039;&#039; - Script a ejecutar por el usuario.&lt;br /&gt;
 &lt;br /&gt;
Ejemplo envío de trabajo slurm:&lt;br /&gt;
&lt;br /&gt;
Para la asignación de recursos, utilizaremos la directriz &#039;&#039;&#039;#SCRON&#039;&#039;&#039;, que utiliza los mismos parámetros usados por &#039;&#039;&#039;#SBATCH&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Luego de asignar los recursos debemos especificar el tiempo, en este caso la tarea será ejecutada todos los días cada 20 minutos, luego debemos indicar el script enviado por el usuario y guardamos los cambios en el archivo.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*/20 * * * * /home/prueba/ejemplo/script.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Es importante destacar que el script a lanzar &#039;&#039;&#039;/home/prueba/ejemplo/script.sh&#039;&#039;&#039; debe tener permisos de ejecución.&lt;br /&gt;
&lt;br /&gt;
Para revisar el listado de tareas existentes en nuestro scrontab, ejecutamos el comando:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[prueba@leftraru1 ~]$ scrontab -l&lt;br /&gt;
*/20 * * * * /home/prueba/ejemplo/script.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para borrar el contenido de nuestro scrontab:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[prueba@leftraru1 ~]$ scrontab -r&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Información a considerar:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Generar archivos de salida correctamente&lt;br /&gt;
** Para que el archivo error y out de tu script se generen en el directorio solicitado, ejemplo, /home/prueba/ejemplo/ en tu script debe estar presente el comando cd “/home/prueba/ejemplo”, esto hará que scrontab se posicione dentro del directorio de salida.&lt;br /&gt;
* Es distinto el tiempo de programar el envío de una tarea (scrontab) a que una tarea inicie en el clúster (running), ya que esto dependerá de los recursos libres que existan en ese momento en el clúster.&lt;br /&gt;
* Para revisar las tareas programadas debe ejecutar en cualquier nodo login el comando &#039;&#039;&#039;scrontab -l&#039;&#039;&#039; o revisar con el comando &#039;&#039;&#039;squeue&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[prueba@leftraru1 ~]$ squeue&lt;br /&gt;
24293471     main /home/eg  prueba PD       0:00      1 (BeginTime)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Checkpointing ==&lt;br /&gt;
Es la acción de guardar el estado de un proceso en ejecución en un archivo de imagen de punto de control. Este proceso se puede reiniciar más tarde desde el archivo del punto de control, continuando la ejecución desde donde se detuvo, en la misma computadora o en una diferente.&lt;br /&gt;
&lt;br /&gt;
=== ¿Por qué utilizarlo? ===&lt;br /&gt;
* Permite ejecuciones de tarea largas que superen el tiempo de ejecución permitido en el cluster (30 días)&lt;br /&gt;
* Estar preparados ante fallas del sistema que nos puedan hacer perder resultados de nuestras simulaciones&lt;br /&gt;
&lt;br /&gt;
=== Utilización ===&lt;br /&gt;
Lo primero que debemos hacer en nuestro script es cargar el módulo de Mana:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ml mana/3.0.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Este módulo provee 3 ejecutables que necesitaremos:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;mana_coordinator:&#039;&#039;&#039; Coordina los checkpoints entre los distintos procesos&lt;br /&gt;
* &#039;&#039;&#039;mana_launch:&#039;&#039;&#039; Inicia un proceso con checkpoint&lt;br /&gt;
* &#039;&#039;&#039;mana_restart:&#039;&#039;&#039; Reinicia la ejecución desde una imagen del checkpoint&lt;br /&gt;
&lt;br /&gt;
Necesitaremos 2 scripts para trabajar con checkpoints: Inicio y reinicio&lt;br /&gt;
&lt;br /&gt;
=== Script de inicio (inicio.sh) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
##---------------SLURM Parameters - NLHPC ----------------&lt;br /&gt;
#SBATCH -J Testcheckpoint&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 44&lt;br /&gt;
#SBATCH --ntasks-per-node=44&lt;br /&gt;
#SBATCH --mem-per-cpu=4363&lt;br /&gt;
#SBATCH --mail-user=test@nlhpc.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o Testcheckpoint_%j.out&lt;br /&gt;
#SBATCH -e Testcheckpoint_%j.err&lt;br /&gt;
&lt;br /&gt;
# ----------------Modules----------------------------&lt;br /&gt;
ml mana/3.0.0&lt;br /&gt;
# ----------------Command--------------------------&lt;br /&gt;
#Checkpointing cada 1 hora&lt;br /&gt;
mana_cooridinator -i3600&lt;br /&gt;
#Ejecutamos nuestra tarea con checkpointing&lt;br /&gt;
srun mana_launch ./ejecutable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Script de reinicio (reinicio.sh) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
##---------------SLURM Parameters - NLHPC ----------------&lt;br /&gt;
#SBATCH -J Testcheckpoint&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 44&lt;br /&gt;
#SBATCH --ntasks-per-node=44&lt;br /&gt;
#SBATCH --mem-per-cpu=4363&lt;br /&gt;
#SBATCH --mail-user=test@nlhpc.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o Testcheckpoint_%j.out&lt;br /&gt;
#SBATCH -e Testcheckpoint_%j.err&lt;br /&gt;
&lt;br /&gt;
# ----------------Modules----------------------------&lt;br /&gt;
ml mana/3.0.0&lt;br /&gt;
# ----------------Command--------------------------&lt;br /&gt;
#Checkpointing cada 1 hora&lt;br /&gt;
mana_cooridinator -i3600&lt;br /&gt;
#Reiniciar nuestra tarea desde los archivos de checkpoint&lt;br /&gt;
srun mana_restart&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Para correr estos scripts se puede hacer utilizando la funcionalidad de dependencias de SLURM:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[test@leftraru2 test]$ sbatch inicio.sh&lt;br /&gt;
Submitted batch job 23574685&lt;br /&gt;
[test@leftraru2 test]$ sbatch --dependency=afterok:23574685 reinicio.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Trabajos ==&lt;br /&gt;
=== Trabajos paralelos ===&lt;br /&gt;
Muchos de los trabajos que se ejecutan en un clúster de producción implicarán más de un procesador (CPU, núcleo). Dichos trabajos paralelos deben solicitar la cantidad de recursos necesarios a través de opciones adicionales. Los más comunes son:&lt;br /&gt;
&lt;br /&gt;
Para diferentes tipos de trabajos paralelos, se especificarán diferentes opciones. Los trabajos paralelos más comunes son trabajos de MPI (memoria distribuida), trabajos de subprocesos múltiples (memoria compartida) y los llamados híbridos que son una combinación de los dos. Analicemos por separado con un n ejemplo para cada uno.&lt;br /&gt;
&lt;br /&gt;
=== Ejecución de programas con MPI ===&lt;br /&gt;
MPI (interfaz de paso de mensajes) es la API de comunicación estándar para trabajos paralelos de memoria distribuida capaz de implementarse en un clúster. Para programar dicho trabajo, es necesario especificar la cantidad de nodos del clúster que se utilizarán y la cantidad de procesos (tareas) que se ejecutarán en cada nodo.&lt;br /&gt;
&lt;br /&gt;
El siguiente es un ejemplo de ejecución de un programa compilado con Open MPI:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH -J example_mpi&lt;br /&gt;
 #SBATCH -p general&lt;br /&gt;
 #SBATCH -n 264&lt;br /&gt;
 #SBATCH --ntasks-per-node=44&lt;br /&gt;
 #SBATCH --output=example_%j.out&lt;br /&gt;
 #SBATCH --error=example_%j.err&lt;br /&gt;
 #SBATCH --mail-user=user@example.com&lt;br /&gt;
 #SBATCH --mail-type=ALL&lt;br /&gt;
 &lt;br /&gt;
 srun ./mpi_test&lt;br /&gt;
A continuacion se explica línea por líneael script.&lt;br /&gt;
&lt;br /&gt;
Como empieza un shell script en Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre del Job:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -J example_mpi&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre la particion donde se desea ejecutar el trabajo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Número de tareas. Debe de ser un número múltiplo del número de CPUs máximo que tenga un node de la partición donde se lanza:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -n 264&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con esto se fuerza a que se lancen 44 tareas MPI en cada uno de los nodos, ocupando de este modo nodos completos. En este caso 6 nodos completos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --ntasks-per-node=44&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de salida:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -o example_%j.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -e example_%j.err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Correo para notificaciones:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-user=user@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Envía correo en todos los casos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programa para ejecutar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
srun ./mpi_test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Nota&#039;&#039;&#039;: no se carga específicamente el módulo &amp;quot;mpi&amp;quot; ya que se carga siempre por defecto.&lt;br /&gt;
&lt;br /&gt;
Para enviarlo al clúster debe ejecutar el comando: &#039;&#039;sbatch script.sh&#039;&#039;. El ejemplo anterior ejecutará una tarea OpenMPI con 264 procesos reservando 264 cores para ello.&lt;br /&gt;
&lt;br /&gt;
=== Trabajos multiproceso OpenMP ===&lt;br /&gt;
Los trabajos paralelos diseñados para ejecutarse en un sistema multi-core (shared-memory) suelen ser &amp;quot;multi-threaded&amp;quot;. La programación de un job de este tipo requiere especificar el número de núcleos que se utilizan para acomodar los subprocesos.&lt;br /&gt;
&lt;br /&gt;
OpenMP es el conjunto común de variables de compilación para facilitar el desarrollo de programas multi-threaded. Un script típico de SLURM para un programa de este tipo se ve así:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #SBATCH -J OMPtest&lt;br /&gt;
 #SBATCH -p general&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH -c 44&lt;br /&gt;
 #SBATCH --ntasks-per-node=44&lt;br /&gt;
 #SBATCH --mem-per-cpu=1024&lt;br /&gt;
 #SBATCH -o example_%j.out&lt;br /&gt;
 #SBATCH -e example_%j.err&lt;br /&gt;
 #SBATCH --mail-user=user@example.com&lt;br /&gt;
 #SBATCH --mail-type=ALL&lt;br /&gt;
&lt;br /&gt;
 OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK time ./omp-program&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Como debe comenzar un script en Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre del Job:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -J OMPtest&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre la particion donde desea ejecutar el Job:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Número de trabajos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Número de tareas:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -c 44&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con esto se fuerza a que se agrupen las 44 tareas en un nodo (en OpenMP no hay comunicación entre nodos, por lo que todas las tareas deben estar en el mismo nodo o no funcionaría):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --ntasks-per-node=44&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Memoria por core (MBytes):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mem-per-cpu=1024&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de salida:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -o example_%j.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -e example_%j.err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Correo para notificaciones:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-user=user@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enviar correo en todos los casos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programa para ejecutar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK time ./omp-program &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cuando se utiliza un programa OpenMP, el número de subprocesos (y, por lo tanto, el número requerido de núcleos) se especifica a través de la variable de entorno OMP_NUM_THREADS que, por lo tanto, aparece en el script frente a la llamada al programa. Lo estamos configurando en la variable interna SLURM_CPUS_PER_TASK que se establece a través de la opción &amp;quot;-c&amp;quot; (a 44 en nuestro ejemplo, que sería el número total de cores de un nodo de la partición &amp;quot;general&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
La opción &amp;quot;-n&amp;quot; se mantiene en 1 para indicar un único trabajo principal que tiene 44 tareas. Para asegurarnos que todas las tareas se ejecutan en el mismo nodo, se añade la opción &amp;quot;--ntasks-per-node&amp;quot; con el máximo número de cores que tiene un nodo de la partición donde se está lanzando el trabajo.&lt;br /&gt;
&lt;br /&gt;
=== Ejecución de tareas en GPUs ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -J ejemplo_gpus&lt;br /&gt;
#SBATCH -p v100&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH -o ejemplo_%j.out&lt;br /&gt;
#SBATCH -e ejemplo_%j.err&lt;br /&gt;
#SBATCH --mail-user=correo@gmail.com&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH --mem-per-cpu=4300&lt;br /&gt;
#SBATCH --gres=gpu:1&lt;br /&gt;
&lt;br /&gt;
./programa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Inicio de un bash script en Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre del trabajo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -J ejemplo_gpus&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre la partición donde se ejecuta el trabajo:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --partition=v100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Número de tareas:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de salida:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -o ejemplo_%j.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -e ejemplo_%j.err&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Correo para notificaciones:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-user=user@example.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enviar correo en todos los casos:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Memoria por CPU (MB):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mem-per-cpu=4365&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cantidad utilizada de GPUs. El parámetro gpu:1 indica la cantidad de tarjetas a utilizar (cada nodo tiene 2 GPUs):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --gres=gpu:1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Programa para ejecutar:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./programa&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Job Arrays ===&lt;br /&gt;
Cuando se ejecutan cientos o miles de simulaciones que utilizan la misma cantidad de recursos, puede ser una ventaja ejecutar estas simulaciones como un &amp;quot;job array&amp;quot;. Los job array le permiten enviar miles de dichos trabajos (llamados &amp;quot;job steps&amp;quot;) con un solo script. A cada simulación se le asignará un valor único para la variable de entorno SLURM_ARRAY_TASK_ID. Puede usar esta variable para leer parámetros para pasos individuales de una línea dada de un archivo.&lt;br /&gt;
&lt;br /&gt;
=== Caso de uso de un Script Job Array (Gaussian) ===&lt;br /&gt;
Tenemos usuarios que actualmente envían varias simulaciones al clúster que son similares en cuanto al uso de recursos, pero, la diferencia es que solo cambia la entrada que le entregan al programa. Para esta situación, recomendamos hacer uso de un script Job Array.&lt;br /&gt;
&lt;br /&gt;
En este ejemplo crearemos un script job array para el software Gaussian, el cual, realizará 63 simulaciones, cada una de estas utilizará 8 cores y podrá alcanzar un uso máximo de 8 Gb de memoria ram. Para este caso utilizaremos la partición general donde cada nodo tiene 46 Gb de memoria ram y 20 cores.&lt;br /&gt;
&lt;br /&gt;
Script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# ----------------SLURM Parameters----------------&lt;br /&gt;
#SBATCH -J prueba&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH -c 8&lt;br /&gt;
#SBATCH --mem-per-cpu=1000&lt;br /&gt;
#SBATCH --mail-user=prueba@nlhpc.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH --array=1-63&lt;br /&gt;
#SBATCH -o prueba_%A_%a.out&lt;br /&gt;
#SBATCH -e prueba_%A_%a.err&lt;br /&gt;
#-----------------Toolchain---------------------------&lt;br /&gt;
ml purge&lt;br /&gt;
ml intel/2019b&lt;br /&gt;
# ----------------Módulos-----------------------------&lt;br /&gt;
ml g16/B.01&lt;br /&gt;
# ----------------Comandos--------------------------&lt;br /&gt;
file=$(ls Child_10_*.com | sed -n ${SLURM_ARRAY_TASK_ID}p)&lt;br /&gt;
srun g16 $file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&lt;br /&gt;
Descripción de comandos utilizados en script:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Inicio de un bash script en Linux:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre de la simulación:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -J prueba&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nombre la partición donde se ejecuta la simulación:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Número de tareas (1 tarea va a ejecutar 63 simulaciones):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Core’s por tareas (cada tarea utilizará un máximo 8 cores):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -c 8&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Memoria ram por cpu (cada tarea utilizará un máximo 8 Gb de ram):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH –mem-per-cpu=1000&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Correo para activar el envío de notificaciones:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-user=prueba@nlhpc.cl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Permitir envío de notificaciones:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se generan 63 simulaciones diferentes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --array=1-63&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de salida: (ejemplo: prueba_18455017_1.out)&lt;br /&gt;
&lt;br /&gt;
* %A corresponde al Job ID de nuestra tarea que le asignará Slurm → 18455017.&lt;br /&gt;
* %a corresponde a la simulación X de nuestra tarea que le asignará Slurm → 1.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -o prueba_%A_%a.out&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Log de errores: (ejemplo: prueba_18455017_1.err)&lt;br /&gt;
&lt;br /&gt;
* %A corresponde al Job ID de nuestra tarea que le asignará Slurm → 18455017.&lt;br /&gt;
* %a corresponde a la simulación X de nuestra tarea que le asignará Slurm → 1.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH -e prueba_%A_%a.err&lt;br /&gt;
Toolchain: en este apartado, limpiaremos nuestro entorno de software no deseados y luego escogemos la herramienta informática con la cual está compilado el software Gaussian (nosotros utilizamos el compilador Intel/2019b).&lt;br /&gt;
&lt;br /&gt;
#-----------------Toolchain---------------------------&lt;br /&gt;
ml purge&lt;br /&gt;
ml intel/2019b&lt;br /&gt;
Módulos: cargamos el software Gaussian versión 16/B.0.&lt;br /&gt;
&lt;br /&gt;
# ----------------Módulos-----------------------------&lt;br /&gt;
ml g16/B.01&lt;br /&gt;
Comandos: aquí definimos los comandos a ejecutar.&lt;br /&gt;
&lt;br /&gt;
# ----------------Comandos--------------------------&lt;br /&gt;
file=$(ls Child_10_*.com | sed -n ${SLURM_ARRAY_TASK_ID}p)&lt;br /&gt;
srun g16 $file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
file= variable que va a listar los archivos de entrada que comiencen por Child_10_ y terminen en .com&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Child.png|no]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
sed -n ${SLURM_ARRAY_TASK_ID}p) ← Sed imprimirá las líneas de cada archivo de entrada y la variable $SLURM_ARRAY_TASK_ID asumirá estas entradas como matriz de simulación en nuestro job array, en este ejemplo tenemos 63 archivos de entrada.&lt;br /&gt;
&lt;br /&gt;
Para más detalles sobre los archivos stdin, stdout y stderr de una simulación % A será reemplazado por el valor de SLURM_ARRAY_JOB_ID que es el Job ID de nuestra tarea y %a será reemplazado por el valor de SLURM_ARRAY_TASK_ID que corresponde a la simulación X de nuestra tarea.&lt;br /&gt;
&lt;br /&gt;
Srun g16 $file: ejecutará el comando gaussian g16 interpretando la variable $file en los nodos de cómputo asignados.&lt;br /&gt;
&lt;br /&gt;
Enviar el script:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[prueba@leftraru1 ~]$ sbatch prueba.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ejecución de una tarea que ocupa mucha RAM por CPU ===&lt;br /&gt;
Debemos tener en cuenta que la RAM que SLURM reserva por defecto son 1000 MB. Un típico error de cancelación de tarea por falta de memoria es el siguiente:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/tmp/slurmd/job136839939/slurm_script: line 15: 23547 Killed                  ./programa.sh&lt;br /&gt;
slurmstepd: error: Detected 1 oom-kill event(s) in step 136839939.batch cgroup. Some of your processes &lt;br /&gt;
may have been killed by the cgroup out-of-memory handler.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Si su tarea ocupa más de la memoria por defecto, puede utilizar el siguiente parámetro:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mem-per-cpu=2300 #Máxima RAM por CPU&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Esto hará que SLURM reserve más RAM por CPU para sus tareas.&lt;br /&gt;
&lt;br /&gt;
Tenga en cuenta que nuestros nodos tienen 46 GB de memoria RAM (Partición slims), 187 GB (Partición general) y 765 GB (Partición largemem) por nodo. [https://wiki.nlhpc.cl/Hardware_Disponible Más información].&lt;br /&gt;
&lt;br /&gt;
Otra forma de reservar memoria es utilizando el siguiente parámetro:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#SBATCH --mem=2300&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
En este caso SLURM realizará una reserva de memoria de 2300 MB pero por la totalidad del trabajo.&lt;br /&gt;
&lt;br /&gt;
Los parámetros anteriores al igual que el número de CPUs que se van a usar, hay que afinarlos lo mejor posible. Para ello lo que se puede hacer es hacer pruebas en los nodos logins, sin lanzar en las colas, y así estudiar el uso de RAM y CPU por parte de sus procesos.&lt;br /&gt;
&lt;br /&gt;
=== Ejecución de una tarea con Dependencias ===&lt;br /&gt;
Las dependencias de trabajos se utilizan para aplazar el inicio de un trabajo hasta que se satisfagan las dependencias especificadas. Se especifican con la opción --dependency en el siguiente formato:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sbatch --dependency=&amp;lt;type:job_id[:job_id][,type:job_id[:job_id]]&amp;gt; ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Los tipos de dependencias son las siguientes:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;after&#039;&#039;&#039;:jobid[:jobid...] - el trabajo puede empezar después de que los trabajos especificados comiencen&lt;br /&gt;
* &#039;&#039;&#039;afterany&#039;&#039;&#039;:jobid[:jobid...] - el trabajo puede empezar después de que los trabajos especificados terminen&lt;br /&gt;
* &#039;&#039;&#039;afternotok&#039;&#039;&#039;:jobid[:jobid...] - el trabajo puede empezar después que los trabajos especificados terminan fallidamente&lt;br /&gt;
* &#039;&#039;&#039;afterok&#039;&#039;&#039;:jobid[:jobid...] - el trabajo puede empezar después que los trabajos especificados terminan exitósamente&lt;br /&gt;
&lt;br /&gt;
La manera más simple de usar una dependencia del tipo afterok:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[prueba@leftraru1 ~]$ sbatch job1.sh&lt;br /&gt;
Submitted batch job 21363626&lt;br /&gt;
[prueba@leftraru1 ~]$ sbatch --dependency=afterok:21363626 job2.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ahora cuando job1.sh termine correctamente, el job2.sh entrará en ejecución. Si job1.sh termina fallidamente, job2.sh no entrará en ejecución nunca pero sí quedará en cola (debe cancelarse manualmente el trabajo).&lt;br /&gt;
&lt;br /&gt;
==== Capturando el Job ID para facilitar la ejecución de varias tareas con dependencias ====&lt;br /&gt;
Es posible capturar en una variable el Job ID de cada tarea para poder lanzar varias tareas sin conocer el Job ID previamente.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si se desea lanzar 4 tareas que sean dependientes con la anterior, se comenzará lanzando la primera tarea y capturando en la variable &#039;&#039;&#039;$JOB1&#039;&#039;&#039;, el que será utilizado como dependencia en la tarea &#039;&#039;&#039;$JOB2&#039;&#039;&#039;, y así sucesivamente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
JOB1=$(sbatch job_1.sbatch 2&amp;gt;&amp;amp;1 | awk &#039;{print $4}&#039;)&lt;br /&gt;
JOB2=$(sbatch --dependency=afterok:$JOB1 job_2.sbatch 2&amp;gt;&amp;amp;1 | awk &#039;{print $4}&#039;)&lt;br /&gt;
JOB3=$(sbatch --dependency=afterok:$JOB2 job_3.sbatch 2&amp;gt;&amp;amp;1 | awk &#039;{print $4}&#039;)&lt;br /&gt;
JOB4=$(sbatch --dependency=afterok:$JOB3 job_4.sbatch 2&amp;gt;&amp;amp;1 | awk &#039;{print $4}&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prioridad de tarea ==&lt;br /&gt;
Cómo ver la prioridad del trabajo. Los factores que determinan la prioridad del trabajo, incluyendo la fórmula y pesos.&lt;br /&gt;
&lt;br /&gt;
=== Factores que determinan prioridad de tarea ===&lt;br /&gt;
&amp;lt;table class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 60%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Comando SLURM&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Descripción&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Edad&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;la cantidad de tiempo que el trabajo ha estado esperando en la cola.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Tamaño de la tarea&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;número de nodos solicitados por el trabajo.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Partición&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;prioridad para una partición determinada.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Prioridad Baja&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Mientras más tareas se ejecuten en el cluster, menor será la prioridad.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Prioridad Alta&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;Mientras menos tareas se ejecuten en el clúster, más alta es la prioridad.&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prioridad de tarea ==&lt;br /&gt;
Cómo ver la prioridad del trabajo. Los factores que determinan la prioridad del trabajo, incluyendo la fórmula y pesos.&lt;br /&gt;
&lt;br /&gt;
=== Factores que determinan prioridad de tarea ===&lt;br /&gt;
* Edad - la cantidad de tiempo que el trabajo ha estado esperando en la cola&lt;br /&gt;
* Tamaño Oficio - número de nodos solicitados por el trabajo&lt;br /&gt;
* Partición - prioridad para una partición determinada&lt;br /&gt;
* Contribución de prioridades basada en los recursos informáticos utilizados por los miembros de un grupo de investigación en los últimos 30 días - Fairshare.&lt;br /&gt;
* Mientras más tareas se ejecuten en el cluster, menor será la prioridad.&lt;br /&gt;
* Mientras menos tareas se ejecuten en el clúster, más alta es la prioridad.&lt;br /&gt;
Fórmula Prioridad de tarea&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Job_priority =&lt;br /&gt;
  (PriorityWeightAge) * (age_factor) +&lt;br /&gt;
  (PriorityWeightFairshare) * (fair-share_factor) +&lt;br /&gt;
  (PriorityWeightJobSize) * (job_size_factor) +&lt;br /&gt;
  (PriorityWeightPartition) * (partition_factor) +&lt;br /&gt;
  (PriorityWeightQOS) * (QOS_factor)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Visualización de sus Tareas ==&lt;br /&gt;
Si Ud. necesita visualizar información acerca de sus tareas de forma interactiva, puede utilizar el comando smap:&lt;br /&gt;
&lt;br /&gt;
smap -i 3&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Smap.png|no|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De esta forma, tendrá una actualización cada 3 segundos de sus tareas en ejecución incluyendo los nodos en los cuales se encuentran ejecutándose.&lt;br /&gt;
&lt;br /&gt;
== Bibliografía ==&lt;br /&gt;
[http://slurm.schedmd.com/documentation.html Manual Oficial de Slurm]&lt;br /&gt;
&lt;br /&gt;
[https://slurm.schedmd.com/scrontab.html Documentación scrontab]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=971</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=971"/>
		<updated>2025-04-22T14:54:19Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* seff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando &#039;&#039;&#039;seff&#039;&#039;&#039;  muestra la eficiencia de un trabajo en SLURM. &lt;br /&gt;
Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;seff &amp;lt;job_id&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=970</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=970"/>
		<updated>2025-04-22T14:53:07Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* seff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando seff &amp;lt;job_id&amp;gt; muestra la eficiencia de un trabajo en SLURM. Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=969</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=969"/>
		<updated>2025-04-22T14:52:22Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* seff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando seff &amp;lt;job_id&amp;gt; muestra la eficiencia de un trabajo en SLURM. Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 LDAP]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 2-12:18:23&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=968</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=968"/>
		<updated>2025-04-22T14:51:48Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* seff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando seff &amp;lt;job_id&amp;gt; muestra la eficiencia de un trabajo en SLURM. Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 LDAP]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 1-10:30:36&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=967</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=967"/>
		<updated>2025-04-22T14:51:06Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* seff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando seff &amp;lt;job_id&amp;gt; muestra la eficiencia de un trabajo en SLURM. Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 LDAP]# seff 12863561&lt;br /&gt;
Job ID: 12863561&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: dbowman/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 1-10:30:36&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&amp;lt;!pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=966</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=966"/>
		<updated>2025-04-22T14:49:40Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* seff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando seff &amp;lt;job_id&amp;gt; muestra la eficiencia de un trabajo en SLURM. Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
[dbowman@sn009 LDAP]# seff 47911921&lt;br /&gt;
Job ID: 47911921&lt;br /&gt;
Cluster: leftraru&lt;br /&gt;
User/Group: smiranda/users&lt;br /&gt;
State: RUNNING&lt;br /&gt;
Nodes: 1&lt;br /&gt;
Cores per node: 20&lt;br /&gt;
CPU Utilized: 00:00:00&lt;br /&gt;
CPU Efficiency: 0.00% of 28-18:12:00 core-walltime&lt;br /&gt;
Job Wall-clock time: 1-10:30:36&lt;br /&gt;
Memory Utilized: 0.00 MB&lt;br /&gt;
Memory Efficiency: 0.00% of 3.91 GB (200.00 MB/core)&lt;br /&gt;
WARNING: Efficiency statistics can only be obtained after the job has ended as seff tool is based on the accounting database data.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=965</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=965"/>
		<updated>2025-04-22T14:48:14Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* * seff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== seff ====&lt;br /&gt;
El comando seff &amp;lt;job_id&amp;gt; muestra la eficiencia de un trabajo en SLURM. Funciona tanto con trabajos en ejecución como finalizados, pero mientras corre, los datos son parciales. No entrega información útil si el job está pendiente.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=964</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=964"/>
		<updated>2025-04-22T14:43:23Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* * htop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== * seff ====&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=963</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=963"/>
		<updated>2025-04-22T14:43:01Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* User Stats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script desarrollado por el equipo NLHPC permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== * seff ====&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=962</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=962"/>
		<updated>2025-04-22T14:42:30Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* * User Stats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== * seff ====&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=961</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=961"/>
		<updated>2025-04-22T14:41:08Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* ¿Como monitoreo los recursos utilizados por mi tarea? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== * seff ====&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=960</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=960"/>
		<updated>2025-04-22T14:40:41Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Cantidad de procesos por core */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== * seff ====&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=959</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=959"/>
		<updated>2025-04-22T14:02:24Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* * uptime */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== * seff ====&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=958</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=958"/>
		<updated>2025-04-22T14:01:03Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* La memoria por core (en kb) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@sn009 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== * seff ====&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=957</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=957"/>
		<updated>2025-04-22T14:00:34Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Conectándose al nodo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que reside en el nodo sn009, debemos ingresar a este mediante el comando ssh descrito a continuación&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@leftraru1 ~]#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]# ssh sn009&lt;br /&gt;
[dbowman@sn009 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
==== * seff ====&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=956</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=956"/>
		<updated>2025-04-22T13:55:28Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Conectándose al nodo */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
Por ejemplo, si deseamos revisar el uso de recursos de la tarea que tenemos en el nodo sn009&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]# ssh cn109&lt;br /&gt;
usuario@cn000 s password:&lt;br /&gt;
[usuario@cn000 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=955</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=955"/>
		<updated>2025-04-22T13:52:11Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* ¿Como listo las tareas? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[dbowman@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
12863561  general   test05   dbowman   R    2-12:18:23   1     sn009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]# ssh cn109&lt;br /&gt;
usuario@cn000 s password:&lt;br /&gt;
[usuario@cn000 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=954</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=954"/>
		<updated>2025-04-22T13:50:56Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* ¿Como listo las tareas? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman   R    20:39        1     sn002&lt;br /&gt;
12863541  largemem  test02   dbowman   R    3-19:03:58   1     fn008&lt;br /&gt;
12863789  main      test03   dbowman   PD   00:00        2     mn[015-016]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]# ssh cn109&lt;br /&gt;
usuario@cn000 s password:&lt;br /&gt;
[usuario@cn000 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=953</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=953"/>
		<updated>2025-04-22T13:43:38Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* ¿Como listo las tareas? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- [usuario@leftraru1 ~]$ squeue -o &amp;quot;%.15i %.6P %.8j %.20S %.11M %.11L %.20V %.2t %.10q %.4C %.2D %.7W %N &amp;quot; -S -t,-Q&lt;br /&gt;
&lt;br /&gt;
JOBID    PARTIT   NAME    START_TIME           TIME       TIME_LEFT  SUBMIT_TIME         ST  QOS CPUS NO LICENSE NODELIST &lt;br /&gt;
12863561  general   test04  2024-02-08T13:57:53  1-20:25:20 1-03:34:40 2018-07-08T13:57:26  R  120  5   1  (null)  cn000 &lt;br /&gt;
12864082  general   test02  2024-02-09T10:44:15    23:38:58 2-00:21:02 2018-07-09T10:43:51  R  120  10  1  (null)  cn001 &lt;br /&gt;
12865333  general   test01  2024-02-10T17:16:38        0:00 3-00:00:00 2018-07-10T09:30:22  PD 120  10  1  (null)  &lt;br /&gt;
12865334  general   test06  2024-02-10T17:49:42        0:00 3-00:00:00 2018-07-10T09:38:13  PD 120  10  1  (null)  &lt;br /&gt;
12865335  general   test09  2024-02-11T07:42:16        0:00 3-00:00:00 2018-07-10T09:28:05  PD 120  20  1  (null)&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]$ squeue&lt;br /&gt;
JOBID    PARTITION   NAME    USER     ST    TIME       NODES  NODELIST &lt;br /&gt;
12863561  general   test04   dbowman  R     20:39        1     sn002&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]# ssh cn109&lt;br /&gt;
usuario@cn000 s password:&lt;br /&gt;
[usuario@cn000 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=952</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=952"/>
		<updated>2025-04-22T13:39:35Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* ¿Como listo las tareas? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: auto; white-space: pre-wrap; word-wrap: break-word;&amp;quot;&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]$ squeue -o &amp;quot;%.15i %.6P %.8j %.20S %.11M %.11L %.20V %.2t %.10q %.4C %.2D %.7W %N &amp;quot; -S -t,-Q&lt;br /&gt;
&lt;br /&gt;
JOBID    PARTIT   NAME    START_TIME           TIME       TIME_LEFT  SUBMIT_TIME         ST  QOS CPUS NO LICENSE NODELIST &lt;br /&gt;
12863561  general   test04  2024-02-08T13:57:53  1-20:25:20 1-03:34:40 2018-07-08T13:57:26  R  120  5   1  (null)  cn000 &lt;br /&gt;
12864082  general   test02  2024-02-09T10:44:15    23:38:58 2-00:21:02 2018-07-09T10:43:51  R  120  10  1  (null)  cn001 &lt;br /&gt;
12865333  general   test01  2024-02-10T17:16:38        0:00 3-00:00:00 2018-07-10T09:30:22  PD 120  10  1  (null)  &lt;br /&gt;
12865334  general   test06  2024-02-10T17:49:42        0:00 3-00:00:00 2018-07-10T09:38:13  PD 120  10  1  (null)  &lt;br /&gt;
12865335  general   test09  2024-02-11T07:42:16        0:00 3-00:00:00 2018-07-10T09:28:05  PD 120  20  1  (null)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]# ssh cn109&lt;br /&gt;
usuario@cn000 s password:&lt;br /&gt;
[usuario@cn000 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=951</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=951"/>
		<updated>2025-04-22T13:38:45Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* ¿Como listo las tareas? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre style=&amp;quot;overflow-x: &amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]$ squeue -o &amp;quot;%.15i %.6P %.8j %.20S %.11M %.11L %.20V %.2t %.10q %.4C %.2D %.7W %N &amp;quot; -S -t,-Q&lt;br /&gt;
&lt;br /&gt;
JOBID    PARTIT   NAME    START_TIME           TIME       TIME_LEFT  SUBMIT_TIME         ST  QOS CPUS NO LICENSE NODELIST &lt;br /&gt;
12863561  general   test04  2024-02-08T13:57:53  1-20:25:20 1-03:34:40 2018-07-08T13:57:26  R  120  5   1  (null)  cn000 &lt;br /&gt;
12864082  general   test02  2024-02-09T10:44:15    23:38:58 2-00:21:02 2018-07-09T10:43:51  R  120  10  1  (null)  cn001 &lt;br /&gt;
12865333  general   test01  2024-02-10T17:16:38        0:00 3-00:00:00 2018-07-10T09:30:22  PD 120  10  1  (null)  &lt;br /&gt;
12865334  general   test06  2024-02-10T17:49:42        0:00 3-00:00:00 2018-07-10T09:38:13  PD 120  10  1  (null)  &lt;br /&gt;
12865335  general   test09  2024-02-11T07:42:16        0:00 3-00:00:00 2018-07-10T09:28:05  PD 120  20  1  (null)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]# ssh cn109&lt;br /&gt;
usuario@cn000 s password:&lt;br /&gt;
[usuario@cn000 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=950</id>
		<title>Monitoreo</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=Monitoreo&amp;diff=950"/>
		<updated>2025-04-22T13:27:50Z</updated>

		<summary type="html">&lt;p&gt;Administrador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Como listo las tareas? ==&lt;br /&gt;
Ejecuto el comando [https://slurm.schedmd.com/squeue.html squeue] para conocer por ejemplo el estado, tiempo de ejecución e identificador de los trabajos [https://wiki.nlhpc.cl/SISTEMA_GESTOR_DE_RECURSOS SLURM]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]$ squeue -o &amp;quot;%.15i %.6P %.8j %.20S %.11M %.11L %.20V %.2t %.10q %.4C %.2D %.7W %N &amp;quot; -S -t,-Q&lt;br /&gt;
&lt;br /&gt;
JOBID    PARTIT   NAME    START_TIME           TIME       TIME_LEFT  SUBMIT_TIME         ST  QOS CPUS NO LICENSE NODELIST &lt;br /&gt;
12863561  general   test04  2024-02-08T13:57:53  1-20:25:20 1-03:34:40 2018-07-08T13:57:26  R  120  5   1  (null)  cn000 &lt;br /&gt;
12864082  general   test02  2024-02-09T10:44:15    23:38:58 2-00:21:02 2018-07-09T10:43:51  R  120  10  1  (null)  cn001 &lt;br /&gt;
12865333  general   test01  2024-02-10T17:16:38        0:00 3-00:00:00 2018-07-10T09:30:22  PD 120  10  1  (null)  &lt;br /&gt;
12865334  general   test06  2024-02-10T17:49:42        0:00 3-00:00:00 2018-07-10T09:38:13  PD 120  10  1  (null)  &lt;br /&gt;
12865335  general   test09  2024-02-11T07:42:16        0:00 3-00:00:00 2018-07-10T09:28:05  PD 120  20  1  (null)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ¿Como monitoreo los recursos utilizados por mi tarea? ==&lt;br /&gt;
=== Conectándose al nodo ===&lt;br /&gt;
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.&lt;br /&gt;
&lt;br /&gt;
==== * uptime ====&lt;br /&gt;
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@leftraru1 ~]# ssh cn109&lt;br /&gt;
usuario@cn000 s password:&lt;br /&gt;
[usuario@cn000 ~]# uptime&lt;br /&gt;
10:40:59 up 27 days, 16:46,  1 user,  load average: 17.04, 13.76, 13.09&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * User Stats ====&lt;br /&gt;
Este script permite revisar:&lt;br /&gt;
&lt;br /&gt;
===== La memoria por core (en kb) =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem&lt;br /&gt;
00 371695616&lt;br /&gt;
01 373268480&lt;br /&gt;
02 367038464&lt;br /&gt;
03 363290624&lt;br /&gt;
04 367382528&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Cantidad de procesos por core =====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load&lt;br /&gt;
00 1&lt;br /&gt;
01 2&lt;br /&gt;
02 1&lt;br /&gt;
03 1&lt;br /&gt;
04 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== * htop ====&lt;br /&gt;
Es un visor de procesos en linux, basado en ncurses.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[usuario@cn109 ~]# htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Htop.png|no|htop]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
=== A través de Ganglia ===&lt;br /&gt;
Ganglia es un sistema de monitoreo distribuido para sistemas HPC, por cada uno de los nodos de cómputo de las diferentes particiones están disponibles los gráficos de memoria, carga, porcentaje de cpu usada, tráfico, etc.&lt;br /&gt;
&lt;br /&gt;
[[Archivo:Ganglia.png|no|300px]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
=== A través de [http://dashboard.nlhpc.cl/ Dashboard] ===&lt;br /&gt;
Panel de visualización del estado de los nodos. Muestra una vista rápida del estado de los nodos (de login y de cómputo) y uso general del cluster, ademas de encontrar el listado de tareas en ejecución, pendientes, históricos.&lt;br /&gt;
&lt;br /&gt;
=== En el correo de notificación ===&lt;br /&gt;
Al terminar una tarea se adjuntan las siguientes gráficas:&lt;br /&gt;
&lt;br /&gt;
==== Porcentaje de uso por core ====&lt;br /&gt;
[[Archivo:Correo CPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Memoria utilizada por core ====&lt;br /&gt;
[[Archivo:Correo MEMxCPU.png|no]]&lt;br /&gt;
&lt;br /&gt;
==== Archivo report.log ====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
job_id=12668XXX user=usuario mail=None start_time=2018-07-09T06:51:34 running_time=3:53:28 cores_total=10 nodes_raw=cn094 alarm_cpu=True alarm_memory=False watch|avg|std|ptotal=10800|30|20|50 ptcw=70 command=/home/usuario/tarea.sh nodes={&#039;cn094&#039;: {&#039;mem&#039;: &#039;10000&#039;, &#039;cpu&#039;: [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]&lt;br /&gt;
n=cn094&lt;br /&gt;
&lt;br /&gt;
  mem max:3586 resv:10000&lt;br /&gt;
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00&lt;br /&gt;
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50&lt;br /&gt;
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47&lt;br /&gt;
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50&lt;br /&gt;
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49&lt;br /&gt;
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00&lt;br /&gt;
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50&lt;br /&gt;
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48&lt;br /&gt;
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* En mem max:&#039;&#039;&#039;3586&#039;&#039;&#039; resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M&lt;br /&gt;
* Por cada una de los cores se despliega: el uso promedio de cada core, la desviación estándar en las últimas 3 horas / del total de tiempo de ejecución.&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_apptainer&amp;diff=946</id>
		<title>VLLM API con apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_apptainer&amp;diff=946"/>
		<updated>2025-04-11T16:55:47Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Lanzar el servicio vLLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En el contexto del NLHPC, se ofrecen dos herramientas principales para desplegar y realizar inferencia con LLMs: Ollama y vLLM. La elección entre ambas dependerá del formato del modelo y de los requisitos específicos de la implementación:&lt;br /&gt;
&lt;br /&gt;
* Ollama: Recomendado para utilizar modelos cuantizados. Recomendado para usuarios  que no estén familiarizados con el despliegue de LLM’s dado la facilidad de uso que presenta la herramienta.&lt;br /&gt;
* vLLM: Ideal para ejecutar modelos descargados desde Hugging Face en formato &amp;lt;code&amp;gt;.safetensors&amp;lt;/code&amp;gt;, ofreciendo un alto rendimiento y eficiencia. Recomendado a usuarios con  experiencia en el despliegue de LLM’s, dado la gran cantidad de parámetros ajustables que presenta la herramienta.&lt;br /&gt;
&lt;br /&gt;
vLLM es un motor de inferencia y servicio de LLM’s, diseñado para ofrecer alto rendimiento y eficiencia en memoria. Su arquitectura optimizada permite ejecutar modelos de lenguaje a gran escala con aceleración GPU maximizando la respuesta en inferencias. Sin embargo, su uso es complicado dada la cantidad de parámetros a tomar en cuenta para su correcta y eficiente ejecución.&lt;br /&gt;
&lt;br /&gt;
En el siguiente artículo se le enseñará a:&lt;br /&gt;
&lt;br /&gt;
# Desplegar el servicio de vLLM en el cluster utilizando apptainer.&lt;br /&gt;
# Conectarse a la API del servicio desplegado desde su computadora local.&lt;br /&gt;
# Utilizar la API para realizar cargas de trabajo de inferencia.&lt;br /&gt;
&lt;br /&gt;
== Cargar módulo apptainer ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar la imagen vLLM con compatibilidad AMD carga el módulo correspondiente:&lt;br /&gt;
&lt;br /&gt;
 ml apptainer/1.3.6-zen4-i&lt;br /&gt;
&lt;br /&gt;
== Lanzar el servicio vLLM ==&lt;br /&gt;
&lt;br /&gt;
Ejemplo de script SBATCH para iniciar el servicio:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J vllm_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 8&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=4090MB&lt;br /&gt;
 #SBATCH -o logs/vllm_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/vllm_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 ml apptainer/1.3.6-zen4-i&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 apptainer exec --rocm --fakeroot --bind /home/ai_inference_db:/home/ai_inference_db --bind /home/$USER:/home/$USER&lt;br /&gt;
 $IMAGES/rocm6.3.2_mi210_ubuntu22.04_py3.12_vllm_0.7.1.dev103_ib.sif /bin/bash -c &lt;br /&gt;
 export HF_HOME=/home/ai_inference_db/models/&lt;br /&gt;
 export HF_DATASETS_CACHE=/home/ai_inference_db/data/&lt;br /&gt;
 vllm serve gpt2 --served-model-name gpt2 --distributed-executor-backend mp --tensor-parallel-size 1 --host 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
== ⚠️ Consideraciones importantes ==&lt;br /&gt;
&lt;br /&gt;
* Terminar el servicio de vLLM&lt;br /&gt;
&lt;br /&gt;
El servicio de vLLM &#039;&#039;&#039;no termina&#039;&#039;&#039; automáticamente, recuerde siempre cancelar la tarea con &amp;lt;cancel&amp;gt;scancel&amp;lt;/cancel&amp;gt; para evitar subutilización de recursos de cómputo.&lt;br /&gt;
&lt;br /&gt;
* Memoria RAM&lt;br /&gt;
&lt;br /&gt;
La cantidad de RAM que se está reservando debe ser acorde a la cantidad de memoria que necesita el modelo a lanzar. Se puede utilizar la siguiente fórmula para estimar el peso en GB&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cantidad de parámetros&amp;gt; * &amp;lt;cantidad de bits&amp;gt; / (8 * 10 ^ 9)&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si su modelo tiene 14 billones de parámetros y está cuantizado a 4 bits, entonces requerirá 7GB de memoria para lanzarse, por tanto debe reservar siete o más gigabytes de memoria.&lt;br /&gt;
&lt;br /&gt;
* Reserva de GPU’s&lt;br /&gt;
&lt;br /&gt;
Cada GPU MI210 tiene 64 GB de memoria VRAM. Si su modelo utiliza más memoria,&lt;br /&gt;
entonces solicitar más GPU’s adicionales con &amp;lt;code&amp;gt;--gres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
También debe agregar la flag --tensor-parallel-size &amp;lt;NUM_GPUS&amp;gt; a vllm serve.&lt;br /&gt;
&lt;br /&gt;
Notar que, al solicitar más GPU’s el rendimiento en tokens/s no mejora. Además, se&lt;br /&gt;
recomienda pedir 8 CPU’s por GPU solicitada.&lt;br /&gt;
&lt;br /&gt;
* Flags de ejecución:&lt;br /&gt;
&lt;br /&gt;
vLLM cuenta con una variada gama de flags para lanzar su servicio. A continuación, la guía oficial: [https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html?ref=blog.mozilla.ai OpenAI-Compatible Server — vLLM]&lt;br /&gt;
&lt;br /&gt;
* Puerto de escucha&lt;br /&gt;
&lt;br /&gt;
El puerto por defecto es 8000. Se recomienda utilizar otro (ej. 1journal1434) para evitar utilizar un puerto ya desplegado.&lt;br /&gt;
&lt;br /&gt;
Se especifica con:&lt;br /&gt;
&lt;br /&gt;
 --port &amp;lt;Num_puerto&amp;gt;&lt;br /&gt;
&lt;br /&gt;
al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Directorio de descarga de modelos&lt;br /&gt;
&lt;br /&gt;
Los modelos se descargan automáticamente de HuggingFace Hub en el directorio &amp;lt;code&amp;gt;/home/ai_inference_db/models/&amp;lt;/code&amp;gt;. Para usar y descargar modelos en su carpeta de usuario, cambie las variables de entorno:&lt;br /&gt;
&lt;br /&gt;
 unset HF_HOME&lt;br /&gt;
 unset HF_DATASETS_CACHE&lt;br /&gt;
&lt;br /&gt;
Ademas, si su modelo requiere permisos para utilizarse, puede realizar login a su cuenta utilizando:&lt;br /&gt;
&lt;br /&gt;
 huggingface-cli login&lt;br /&gt;
&lt;br /&gt;
Por otro lado, puede comunicarse con el soporte de NLHPC vía tickets para solicitar el grupo &amp;lt;code&amp;gt;&amp;lt;practica-gpu&amp;gt;&amp;lt;/code&amp;gt; y descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* Uso de modelos propios&lt;br /&gt;
&lt;br /&gt;
Para utilizar un modelo propio o fine tunned, se debe especificar la ruta al archivo de su modelo agregando la flag:&lt;br /&gt;
&lt;br /&gt;
 --model /ruta/a/tu/modelo&lt;br /&gt;
&lt;br /&gt;
al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, si utiliza &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;, el modelo debe estar en un único archivo y no dividido por partes.&lt;br /&gt;
&lt;br /&gt;
== Identificar el nodo de ejecución ==&lt;br /&gt;
&lt;br /&gt;
Usa &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt; para encontrar el nodo asignado:&lt;br /&gt;
&lt;br /&gt;
 [usuario@leftraru2 ~]$ squeue&lt;br /&gt;
 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)&lt;br /&gt;
 38922125 mi210 vllm_serve usuario R 0:03 1 gn004&lt;br /&gt;
&lt;br /&gt;
Importante recordarlo pues lo usaremos más tarde.&lt;br /&gt;
&lt;br /&gt;
== Creación de túnel de acceso ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo el nodo en que ejecutó nuestra tarea. Crearemos un túnel de acceso desde el cluster hacia nuestra computadora. Para esto, en una nueva terminal, ejecutar cambiando los valores:&lt;br /&gt;
&lt;br /&gt;
 ssh usuario@leftraru.nlhpc.cl -p 4603 -L [puerto_local]:[nodo]:[puerto_vllm]&lt;br /&gt;
&lt;br /&gt;
por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ssh intern02@leftraru.nlhpc.cl -p 4603 -L 4466:gn004:8000&lt;br /&gt;
&lt;br /&gt;
Con esto podremos utilizar el &amp;lt;puerto_local&amp;gt; para lanzar consultas a la API de vLLM.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
Una vez realizado el túnel de acceso, podemos utilizar la API de vLLM en nuestra computadora personal, utilizando herramientas como Python o Curl. &lt;br /&gt;
&lt;br /&gt;
He aqui una guia de uso para la [https://platform.openai.com/docs/api-reference/chat API de vLLM].&lt;br /&gt;
&lt;br /&gt;
A continuación unos ejemplos:&lt;br /&gt;
&lt;br /&gt;
=== Python: ===&lt;br /&gt;
&lt;br /&gt;
 import requests, json&lt;br /&gt;
 url = &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot;&lt;br /&gt;
 headers = {&amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;}&lt;br /&gt;
 payload = {&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&lt;br /&gt;
 response = requests.post(url, json=payload, headers=headers)&lt;br /&gt;
 data = response.json()&lt;br /&gt;
 print(data[&amp;quot;choices&amp;quot;][0][&amp;quot;text&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
=== CURL: ===&lt;br /&gt;
&lt;br /&gt;
 curl -X POST &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot; \&lt;br /&gt;
 -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
 -d &#039;{&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&#039;&lt;br /&gt;
&lt;br /&gt;
== TroubleShooting ==&lt;br /&gt;
&lt;br /&gt;
=== ¿Por qué el modelo no carga? ===&lt;br /&gt;
&lt;br /&gt;
Pueden haber múltiples razones:&lt;br /&gt;
# La cantidad de GPU’s solicitadas no es divisor de la cantidad de cabezas de atención del modelo. Se recomienda que la cantidad de GPU’s sea potencia de 2.&lt;br /&gt;
# El modelo es demasiado grande y no cabe en la cantidad de GPU’s solicitadas. Se recomienda ver la documentación del modelo en hugging face y calcular cuanto pesa. Posteriormente aumentar la cantidad de GPU’s solicitadas.&lt;br /&gt;
# El modelo no está descargado en la carpeta compartida &amp;lt;code&amp;gt;/home/ai_inference/db/models&amp;lt;/code&amp;gt;. Cambiar la carpeta utilizando &amp;lt;code&amp;gt;unset HF_HOME&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;unset HF_CACHE&amp;lt;/code&amp;gt;. Pedir el grupo &amp;lt;practica-gpu&amp;gt; al soporte NLHPC para descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
=== ¿Puedo utilizar modelos cuantizados en vLLM? ===&lt;br /&gt;
&lt;br /&gt;
Es posible, utilizando la flag &amp;lt;code&amp;gt;--model /ruta/a/tu/modelo&amp;lt;/code&amp;gt; es posible cargar un LLM en formato gguf (cuantizado). Sin embargo debe ser un único archivo. &lt;br /&gt;
&lt;br /&gt;
No es lo recomendado dado que vLLM está optimizado para realizar inferencia con precisión completa o media.&lt;br /&gt;
&lt;br /&gt;
== Otros Enlaces ==&lt;br /&gt;
&lt;br /&gt;
[[OLLAMA API]]&lt;br /&gt;
&lt;br /&gt;
[[ Diffusers ]]&lt;br /&gt;
&lt;br /&gt;
[[ vLLM API con módulos de software ]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_apptainer&amp;diff=945</id>
		<title>VLLM API con apptainer</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_apptainer&amp;diff=945"/>
		<updated>2025-04-11T16:55:34Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Cargar módulo apptainer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En el contexto del NLHPC, se ofrecen dos herramientas principales para desplegar y realizar inferencia con LLMs: Ollama y vLLM. La elección entre ambas dependerá del formato del modelo y de los requisitos específicos de la implementación:&lt;br /&gt;
&lt;br /&gt;
* Ollama: Recomendado para utilizar modelos cuantizados. Recomendado para usuarios  que no estén familiarizados con el despliegue de LLM’s dado la facilidad de uso que presenta la herramienta.&lt;br /&gt;
* vLLM: Ideal para ejecutar modelos descargados desde Hugging Face en formato &amp;lt;code&amp;gt;.safetensors&amp;lt;/code&amp;gt;, ofreciendo un alto rendimiento y eficiencia. Recomendado a usuarios con  experiencia en el despliegue de LLM’s, dado la gran cantidad de parámetros ajustables que presenta la herramienta.&lt;br /&gt;
&lt;br /&gt;
vLLM es un motor de inferencia y servicio de LLM’s, diseñado para ofrecer alto rendimiento y eficiencia en memoria. Su arquitectura optimizada permite ejecutar modelos de lenguaje a gran escala con aceleración GPU maximizando la respuesta en inferencias. Sin embargo, su uso es complicado dada la cantidad de parámetros a tomar en cuenta para su correcta y eficiente ejecución.&lt;br /&gt;
&lt;br /&gt;
En el siguiente artículo se le enseñará a:&lt;br /&gt;
&lt;br /&gt;
# Desplegar el servicio de vLLM en el cluster utilizando apptainer.&lt;br /&gt;
# Conectarse a la API del servicio desplegado desde su computadora local.&lt;br /&gt;
# Utilizar la API para realizar cargas de trabajo de inferencia.&lt;br /&gt;
&lt;br /&gt;
== Cargar módulo apptainer ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar la imagen vLLM con compatibilidad AMD carga el módulo correspondiente:&lt;br /&gt;
&lt;br /&gt;
 ml apptainer/1.3.6-zen4-i&lt;br /&gt;
&lt;br /&gt;
== Lanzar el servicio vLLM ==&lt;br /&gt;
&lt;br /&gt;
Ejemplo de script SBATCH para iniciar el servicio:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J vllm_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 8&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=4090MB&lt;br /&gt;
 #SBATCH -o logs/vllm_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/vllm_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 ml apptainer&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 apptainer exec --rocm --fakeroot --bind /home/ai_inference_db:/home/ai_inference_db --bind /home/$USER:/home/$USER&lt;br /&gt;
 $IMAGES/rocm6.3.2_mi210_ubuntu22.04_py3.12_vllm_0.7.1.dev103_ib.sif /bin/bash -c &lt;br /&gt;
 export HF_HOME=/home/ai_inference_db/models/&lt;br /&gt;
 export HF_DATASETS_CACHE=/home/ai_inference_db/data/&lt;br /&gt;
 vllm serve gpt2 --served-model-name gpt2 --distributed-executor-backend mp --tensor-parallel-size 1 --host 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
== ⚠️ Consideraciones importantes ==&lt;br /&gt;
&lt;br /&gt;
* Terminar el servicio de vLLM&lt;br /&gt;
&lt;br /&gt;
El servicio de vLLM &#039;&#039;&#039;no termina&#039;&#039;&#039; automáticamente, recuerde siempre cancelar la tarea con &amp;lt;cancel&amp;gt;scancel&amp;lt;/cancel&amp;gt; para evitar subutilización de recursos de cómputo.&lt;br /&gt;
&lt;br /&gt;
* Memoria RAM&lt;br /&gt;
&lt;br /&gt;
La cantidad de RAM que se está reservando debe ser acorde a la cantidad de memoria que necesita el modelo a lanzar. Se puede utilizar la siguiente fórmula para estimar el peso en GB&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cantidad de parámetros&amp;gt; * &amp;lt;cantidad de bits&amp;gt; / (8 * 10 ^ 9)&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si su modelo tiene 14 billones de parámetros y está cuantizado a 4 bits, entonces requerirá 7GB de memoria para lanzarse, por tanto debe reservar siete o más gigabytes de memoria.&lt;br /&gt;
&lt;br /&gt;
* Reserva de GPU’s&lt;br /&gt;
&lt;br /&gt;
Cada GPU MI210 tiene 64 GB de memoria VRAM. Si su modelo utiliza más memoria,&lt;br /&gt;
entonces solicitar más GPU’s adicionales con &amp;lt;code&amp;gt;--gres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
También debe agregar la flag --tensor-parallel-size &amp;lt;NUM_GPUS&amp;gt; a vllm serve.&lt;br /&gt;
&lt;br /&gt;
Notar que, al solicitar más GPU’s el rendimiento en tokens/s no mejora. Además, se&lt;br /&gt;
recomienda pedir 8 CPU’s por GPU solicitada.&lt;br /&gt;
&lt;br /&gt;
* Flags de ejecución:&lt;br /&gt;
&lt;br /&gt;
vLLM cuenta con una variada gama de flags para lanzar su servicio. A continuación, la guía oficial: [https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html?ref=blog.mozilla.ai OpenAI-Compatible Server — vLLM]&lt;br /&gt;
&lt;br /&gt;
* Puerto de escucha&lt;br /&gt;
&lt;br /&gt;
El puerto por defecto es 8000. Se recomienda utilizar otro (ej. 1journal1434) para evitar utilizar un puerto ya desplegado.&lt;br /&gt;
&lt;br /&gt;
Se especifica con:&lt;br /&gt;
&lt;br /&gt;
 --port &amp;lt;Num_puerto&amp;gt;&lt;br /&gt;
&lt;br /&gt;
al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Directorio de descarga de modelos&lt;br /&gt;
&lt;br /&gt;
Los modelos se descargan automáticamente de HuggingFace Hub en el directorio &amp;lt;code&amp;gt;/home/ai_inference_db/models/&amp;lt;/code&amp;gt;. Para usar y descargar modelos en su carpeta de usuario, cambie las variables de entorno:&lt;br /&gt;
&lt;br /&gt;
 unset HF_HOME&lt;br /&gt;
 unset HF_DATASETS_CACHE&lt;br /&gt;
&lt;br /&gt;
Ademas, si su modelo requiere permisos para utilizarse, puede realizar login a su cuenta utilizando:&lt;br /&gt;
&lt;br /&gt;
 huggingface-cli login&lt;br /&gt;
&lt;br /&gt;
Por otro lado, puede comunicarse con el soporte de NLHPC vía tickets para solicitar el grupo &amp;lt;code&amp;gt;&amp;lt;practica-gpu&amp;gt;&amp;lt;/code&amp;gt; y descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* Uso de modelos propios&lt;br /&gt;
&lt;br /&gt;
Para utilizar un modelo propio o fine tunned, se debe especificar la ruta al archivo de su modelo agregando la flag:&lt;br /&gt;
&lt;br /&gt;
 --model /ruta/a/tu/modelo&lt;br /&gt;
&lt;br /&gt;
al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, si utiliza &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;, el modelo debe estar en un único archivo y no dividido por partes.&lt;br /&gt;
&lt;br /&gt;
== Identificar el nodo de ejecución ==&lt;br /&gt;
&lt;br /&gt;
Usa &amp;lt;code&amp;gt;squeue&amp;lt;/code&amp;gt; para encontrar el nodo asignado:&lt;br /&gt;
&lt;br /&gt;
 [usuario@leftraru2 ~]$ squeue&lt;br /&gt;
 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)&lt;br /&gt;
 38922125 mi210 vllm_serve usuario R 0:03 1 gn004&lt;br /&gt;
&lt;br /&gt;
Importante recordarlo pues lo usaremos más tarde.&lt;br /&gt;
&lt;br /&gt;
== Creación de túnel de acceso ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo el nodo en que ejecutó nuestra tarea. Crearemos un túnel de acceso desde el cluster hacia nuestra computadora. Para esto, en una nueva terminal, ejecutar cambiando los valores:&lt;br /&gt;
&lt;br /&gt;
 ssh usuario@leftraru.nlhpc.cl -p 4603 -L [puerto_local]:[nodo]:[puerto_vllm]&lt;br /&gt;
&lt;br /&gt;
por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ssh intern02@leftraru.nlhpc.cl -p 4603 -L 4466:gn004:8000&lt;br /&gt;
&lt;br /&gt;
Con esto podremos utilizar el &amp;lt;puerto_local&amp;gt; para lanzar consultas a la API de vLLM.&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
Una vez realizado el túnel de acceso, podemos utilizar la API de vLLM en nuestra computadora personal, utilizando herramientas como Python o Curl. &lt;br /&gt;
&lt;br /&gt;
He aqui una guia de uso para la [https://platform.openai.com/docs/api-reference/chat API de vLLM].&lt;br /&gt;
&lt;br /&gt;
A continuación unos ejemplos:&lt;br /&gt;
&lt;br /&gt;
=== Python: ===&lt;br /&gt;
&lt;br /&gt;
 import requests, json&lt;br /&gt;
 url = &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot;&lt;br /&gt;
 headers = {&amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;}&lt;br /&gt;
 payload = {&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&lt;br /&gt;
 response = requests.post(url, json=payload, headers=headers)&lt;br /&gt;
 data = response.json()&lt;br /&gt;
 print(data[&amp;quot;choices&amp;quot;][0][&amp;quot;text&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
=== CURL: ===&lt;br /&gt;
&lt;br /&gt;
 curl -X POST &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot; \&lt;br /&gt;
 -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
 -d &#039;{&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&#039;&lt;br /&gt;
&lt;br /&gt;
== TroubleShooting ==&lt;br /&gt;
&lt;br /&gt;
=== ¿Por qué el modelo no carga? ===&lt;br /&gt;
&lt;br /&gt;
Pueden haber múltiples razones:&lt;br /&gt;
# La cantidad de GPU’s solicitadas no es divisor de la cantidad de cabezas de atención del modelo. Se recomienda que la cantidad de GPU’s sea potencia de 2.&lt;br /&gt;
# El modelo es demasiado grande y no cabe en la cantidad de GPU’s solicitadas. Se recomienda ver la documentación del modelo en hugging face y calcular cuanto pesa. Posteriormente aumentar la cantidad de GPU’s solicitadas.&lt;br /&gt;
# El modelo no está descargado en la carpeta compartida &amp;lt;code&amp;gt;/home/ai_inference/db/models&amp;lt;/code&amp;gt;. Cambiar la carpeta utilizando &amp;lt;code&amp;gt;unset HF_HOME&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;unset HF_CACHE&amp;lt;/code&amp;gt;. Pedir el grupo &amp;lt;practica-gpu&amp;gt; al soporte NLHPC para descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
=== ¿Puedo utilizar modelos cuantizados en vLLM? ===&lt;br /&gt;
&lt;br /&gt;
Es posible, utilizando la flag &amp;lt;code&amp;gt;--model /ruta/a/tu/modelo&amp;lt;/code&amp;gt; es posible cargar un LLM en formato gguf (cuantizado). Sin embargo debe ser un único archivo. &lt;br /&gt;
&lt;br /&gt;
No es lo recomendado dado que vLLM está optimizado para realizar inferencia con precisión completa o media.&lt;br /&gt;
&lt;br /&gt;
== Otros Enlaces ==&lt;br /&gt;
&lt;br /&gt;
[[OLLAMA API]]&lt;br /&gt;
&lt;br /&gt;
[[ Diffusers ]]&lt;br /&gt;
&lt;br /&gt;
[[ vLLM API con módulos de software ]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=944</id>
		<title>VASP</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=944"/>
		<updated>2025-04-09T13:58:02Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Script de Ejemplo (128 núcleos) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es? ==&lt;br /&gt;
&lt;br /&gt;
VASP (Vienna Ab initio Simulation Package) es un paquete de mecánica cuántica para simulaciones de dinámica molecular a nivel ab initio, utilizando pseudopotenciales o el método Projector-Augmented Wave (PAW) y una base de ondas planas.&lt;br /&gt;
&lt;br /&gt;
La metodología usada en este software se basa en la aproximación local de la densidad (LDA) y una evaluación exacta del estado fundamental en cada paso de la dinámica molecul&lt;br /&gt;
== Modulos ==&lt;br /&gt;
&lt;br /&gt;
VASP se encuentra disponible en varias versiones, tanto para infraestructura INTEL como para AMD.&lt;br /&gt;
&lt;br /&gt;
Las últimas versiones disponibles son:&lt;br /&gt;
&lt;br /&gt;
 * 6.2.1&lt;br /&gt;
 * 6.3.2&lt;br /&gt;
 * 6.4.3&lt;br /&gt;
&lt;br /&gt;
Puede buscar las versiones de VASP para intel ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
intelsoftware&lt;br /&gt;
ml spider VASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para buscar las versiones de AMD puede ejecutar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
amdsoftware&lt;br /&gt;
ml spider vasp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definir entorno ==&lt;br /&gt;
En el archivo INCAR configuramos las siguientes variables respecto a la reserva que hagamos para tener idealmente de 1 átomo por core.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPAR = 5 #cantidad de nodos&lt;br /&gt;
NCORE = 20 #cantidad de cores por nodo&lt;br /&gt;
&lt;br /&gt;
#evitar exceso de carga en I/O&lt;br /&gt;
LWAVE  = .FALSE.&lt;br /&gt;
LCHARG = .FALSE.&lt;br /&gt;
LVTOT  = .FALSE.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ejemplo de Lanzador ==&lt;br /&gt;
&lt;br /&gt;
=== Para INTEL ===&lt;br /&gt;
Ejemplo de SBATCH para enviar a particiones &#039;&#039;general&#039;&#039; y &#039;&#039;largemem&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -J ejemplo&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 88&lt;br /&gt;
#SBATCH --ntasks-per-node=44 &lt;br /&gt;
#SBATCH --mem-per-cpu=4200&lt;br /&gt;
#SBATCH --mail-user=usuario@correo.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o %j_%x.out&lt;br /&gt;
#SBATCH -e %j_%x.err&lt;br /&gt;
&lt;br /&gt;
ml purge&lt;br /&gt;
ml intel/2022.00&lt;br /&gt;
ml VASP/6.3.2&lt;br /&gt;
&lt;br /&gt;
export OMP_NUM_THREADS=1&lt;br /&gt;
export MKL_NUM_THREADS=1&lt;br /&gt;
export MKL_DYNAMIC=FALSE&lt;br /&gt;
&lt;br /&gt;
#vasp_std for standard NVT calculation and non-gamma k-points&lt;br /&gt;
#vasp_gam for standard NVT calculation and only gamma-point&lt;br /&gt;
#vasp_ncl for NPT ensemble and non-gamma-point calculations&lt;br /&gt;
&lt;br /&gt;
EXEC=vasp_gam&lt;br /&gt;
BINVASP=&amp;quot;${EXEC}&amp;quot;&lt;br /&gt;
export BINVASP&lt;br /&gt;
srun $BINVASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Para AMD ===&lt;br /&gt;
El siguiente ejemplo muestra la versión de VASP 6.4.3 para ser ejecutada en un nodo de la partición &#039;&#039;&#039;main&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es importante destacar que al momemento de cargar estos módulos se generan avisos de tipo &#039;&#039;Warning&#039;&#039;, por lo que se recomienda monitorear la tarea y su comportamiento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;TareaVASP&amp;quot;&lt;br /&gt;
#SBATCH --partition=&amp;quot;main&amp;quot;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH -c 256&lt;br /&gt;
#SBATCH --mem-per-cpu=2839&lt;br /&gt;
##SBATCH --ntasks-per-node=64&lt;br /&gt;
&lt;br /&gt;
#SBATCH --output=TareaVASP-%j.out #&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&lt;br /&gt;
ml aocc&lt;br /&gt;
ml openmpi/5.0.5-zen4-j&lt;br /&gt;
ml amdfftw/4.2-mpi-openmp-zen4-tjgyk3c&lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-zen4-e&lt;br /&gt;
&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
export OMP_NUM_THREADS=256&lt;br /&gt;
export OMP_PLACES=cores&lt;br /&gt;
&lt;br /&gt;
srun vasp_std&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pruebas y recomendaciones de ejecución AMD ====&lt;br /&gt;
Los ejemplos descritos a continuación describen la configuración recomendada para ejecutar simulaciones con VASP (Vienna Ab initio Simulation Package) de manera eficiente (procesos) utilizando el paradigma MPI por sobre OpenMP o configuraciones híbridas (MPI + OpenMP)..&lt;br /&gt;
&lt;br /&gt;
A continuación, compartimos configuraciones recomendadas para distintos números de núcleos, que podrían ser útiles para mejorar el rendimiento de tus simulaciones.&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (24 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 24                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=24   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=30000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 6&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (64 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 64                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=64   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=60000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 16&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (128 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 128                 # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=128  # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=90000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 32&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Recomendaciones Adicionales====&lt;br /&gt;
&lt;br /&gt;
=====Optimización de NPAR y KPAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 80%; margin: 1em auto;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Núcleos&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | NPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | KPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Notas&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;Regla general&#039;&#039;&#039;:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;NPAR × KPAR ≈ Núcleos totales&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Ejemplo para 24 nucleos&#039;&#039;&#039;:&amp;lt;br&amp;gt;6 × 4 = 24 (configuración óptima)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Alternativa&#039;&#039;&#039;:&amp;lt;br&amp;gt;8 × 8 = 64 (Configuración alternativa)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Evitar OpenMP e Hibrido =====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FFF3F3; border-left: 4px solid #FF8080; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nota importante&#039;&#039;&#039;: Las pruebas muestran que &#039;&#039;&#039;MPI puro&#039;&#039;&#039; es significativamente más rápido que configuraciones híbridas (MPI + OpenMP) o solo OpenMP.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Monitoreo de Rendimiento =====&lt;br /&gt;
&#039;&#039;&#039;Pasos recomendados&#039;&#039;&#039;:&lt;br /&gt;
# Verificar el archivo &amp;lt;code&amp;gt;OUTCAR&amp;lt;/code&amp;gt; (buscar &amp;quot;Maximum memory used&amp;quot;)&lt;br /&gt;
# Ajustar &amp;lt;code&amp;gt;NPAR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;KPAR&amp;lt;/code&amp;gt; si se observan:&lt;br /&gt;
:* Cuellos de botella en E/S&lt;br /&gt;
:* Problemas de comunicación&lt;br /&gt;
:* Bajo rendimiento&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #F0F8FF; border-left: 4px solid #4682B4; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039;: Para sistemas grandes (&amp;gt;200 átomos), considerar aumentar NPAR en un 10-20%.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uso de software licenciado ==&lt;br /&gt;
&lt;br /&gt;
El uso de este software está restringido a los usuarios que dispongan de una licencia válida de VASP, la cual deben enviar al correo de soporte.&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
    * [https://www.vasp.at/ The VASP site]&lt;br /&gt;
    * [https://www.pdc.kth.se/software/software/VASP/cpe21.11/6.2.1-vanilla/index_using.html How to use VASP]&lt;br /&gt;
    * [https://hpc-uit.readthedocs.io/en/latest/applications/chemistry/VASP/firsttime_vasp.html First time you run a VASP job?]&lt;br /&gt;
    * [https://wiki.bwhpc.de/e/JUSTUS2/Software/VASP VASP bwHPC]&lt;br /&gt;
    * [https://www.vasp.at/wiki/index.php/NCORE VASP Wiki-Ncore]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_m%C3%B3dulos_de_software&amp;diff=943</id>
		<title>VLLM API con módulos de software</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_m%C3%B3dulos_de_software&amp;diff=943"/>
		<updated>2025-04-09T13:22:47Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Lanzar el servicio vLLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En el contexto del NLHPC, se ofrecen dos herramientas principales para desplegar y realizar inferencia con LLMs: Ollama y vLLM. La elección entre ambas dependerá del formato del modelo y de los requisitos específicos de la implementación:&lt;br /&gt;
&lt;br /&gt;
* Ollama: Recomendado para utilizar modelos cuantizados. Recomendado para usuarios que no estén familiarizados con el despliegue de LLM’s dado la facilidad de uso que presenta la herramienta.&lt;br /&gt;
* vLLM: Ideal para ejecutar modelos descargados desde Hugging Face en formato &amp;lt;code&amp;gt;.safetensors&amp;lt;/code&amp;gt;, ofreciendo un alto rendimiento y eficiencia. Recomendado a usuarios con experiencia en el despliegue de LLM’s, dado la gran cantidad de parámetros ajustables que presenta la herramienta.&lt;br /&gt;
&lt;br /&gt;
vLLM es un motor de inferencia y servicio de LLM’s, diseñado para ofrecer alto rendimiento y eficiencia en memoria. Su arquitectura optimizada permite ejecutar modelos de lenguaje a gran escala con aceleración GPU maximizando la respuesta en inferencias. Sin embargo, su uso es complicado dada la cantidad de parámetros a tomar en cuenta para su correcta ejecución.&lt;br /&gt;
&lt;br /&gt;
En el siguiente artículo se le enseñará a:&lt;br /&gt;
&lt;br /&gt;
# Desplegar el servicio de vLLM en el cluster utilizando módulos de software.&lt;br /&gt;
# Conectarse a la API del servicio desplegado desde su computadora local.&lt;br /&gt;
# Utilizar la API para realizar cargas de trabajo de inferencia.&lt;br /&gt;
&lt;br /&gt;
== Cargar módulo vLLM ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar vLLM con compatibilidad AMD realiza el export del MODULEPATH y luego carga el módulo correspondiente:&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
&lt;br /&gt;
El cual contiene todos paquetes de software necesarios para realizar inferencia con modelos de difusión y LLM’s.&lt;br /&gt;
&lt;br /&gt;
Entre los paquetes se encuentran:&lt;br /&gt;
&lt;br /&gt;
* Pytorch, &lt;br /&gt;
* Ollama, &lt;br /&gt;
* vLLM, &lt;br /&gt;
* diffusers, &lt;br /&gt;
* huggingface-cli, &lt;br /&gt;
* transformers, &lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
== Lanzar el servicio vLLM ==&lt;br /&gt;
&lt;br /&gt;
Ejemplo de script SBATCH para iniciar el servicio:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J vllm_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 8&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=4090MB&lt;br /&gt;
 #SBATCH -o logs/vllm_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/vllm_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack /linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 vllm serve gpt2 --served-model-name gpt2 --distributed-executor-backend mp --tensor-parallel-size 1 --host 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
== ⚠️ Consideraciones importantes ==&lt;br /&gt;
&lt;br /&gt;
* Terminar el servicio de vLLM&lt;br /&gt;
&lt;br /&gt;
El servicio de vLLM &#039;&#039;&#039;no termina automáticamente&#039;&#039;&#039;, recuerde siempre cancelar la tarea con &amp;lt;code&amp;gt;scancel&amp;lt;/code&amp;gt; para evitar subutilización de recursos de cómputo&lt;br /&gt;
&lt;br /&gt;
* Memoria RAM&lt;br /&gt;
&lt;br /&gt;
La cantidad de RAM que se está reservando debe ser acorde a la cantidad de memoria que necesita el modelo a lanzar. Se puede utilizar la siguiente fórmula para estimar el peso en GB&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cantidad de parámetros&amp;gt; * &amp;lt;cantidad de bits&amp;gt; / (8 * 10 ^ 9)&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si su modelo tiene 14 billones de parámetros y está cuantizado a 4 bits, entonces requerirá 7GB de memoria para lanzarse, por tanto debe reservar siete o más gigabytes de memoria.&lt;br /&gt;
&lt;br /&gt;
* Reserva de GPU’s&lt;br /&gt;
&lt;br /&gt;
Cada GPU MI210 tiene 64 GB de memoria VRAM. Si su modelo utiliza más memoria, entonces solicitar más GPU’s adicionales con &amp;lt;code&amp;gt;--gres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
También debe agregar la flag &amp;lt;code&amp;gt;--tensor-parallel-size &amp;lt;NUM_GPUS&amp;gt;&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, al solicitar más GPU’s el rendimiento en tokens/s no mejora. Además, se recomienda pedir 8 CPU’s por GPU solicitada.&lt;br /&gt;
&lt;br /&gt;
* Flags de ejecución&lt;br /&gt;
&lt;br /&gt;
vLLM cuenta con una variada gama de flags para lanzar su servicio. A continuación, la guía oficial: [https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html?ref=blog.mozilla.ai OpenAI-Compatible Server — vLLM].&lt;br /&gt;
&lt;br /&gt;
* Puerto de escucha&lt;br /&gt;
&lt;br /&gt;
El puerto por defecto es 8000. Se recomienda utilizar otro (ej. 11434) para evitar utilizar un&lt;br /&gt;
puerto ya desplegado.&lt;br /&gt;
&lt;br /&gt;
Se especifica con:&lt;br /&gt;
&lt;br /&gt;
 --port &amp;lt;Num_puerto&amp;gt;&lt;br /&gt;
&lt;br /&gt;
al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Directorio de descarga de modelos&lt;br /&gt;
&lt;br /&gt;
Los modelos se descargan automáticamente de HuggingFace Hub en el directorio &amp;lt;code&amp;gt;/home/ai_inference_db/models/&amp;lt;/code&amp;gt;. Para usar y descargar modelos en su carpeta de usuario, cambie las variables de entorno:&lt;br /&gt;
&lt;br /&gt;
 unset HF_HOME&lt;br /&gt;
 unset HF_DATASETS_CACHE&lt;br /&gt;
&lt;br /&gt;
Además, si su modelo requiere permisos para utilizarse, puede realizar login a su cuenta utilizando:&lt;br /&gt;
&lt;br /&gt;
 huggingface-cli login&lt;br /&gt;
&lt;br /&gt;
Por otro lado, puede comunicarse con el soporte de NLHPC vía tickets para solicitar el grupo &amp;lt;practica-gpu&amp;gt; y descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* Uso de modelos propios&lt;br /&gt;
&lt;br /&gt;
Para utilizar un modelo propio o fine tunned, se debe especificar la ruta al archivo de su modelo agregando la flag &amp;lt;code&amp;gt;--model /ruta/a/tu/modelo&amp;lt;/code&amp;gt; al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, si utiliza &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;, el modelo debe estar en un único archivo y no dividido por partes.&lt;br /&gt;
&lt;br /&gt;
== Identificar el nodo de ejecución ==&lt;br /&gt;
&lt;br /&gt;
Usa squeue para encontrar el nodo asignado:&lt;br /&gt;
&lt;br /&gt;
 [usuario@leftraru2 ~]$ squeue &lt;br /&gt;
 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)&lt;br /&gt;
 38922125 mi210 vllm_serve usuario R 0:03 1 gn004&lt;br /&gt;
&lt;br /&gt;
Importante recordarlo pues lo usaremos más tarde.&lt;br /&gt;
&lt;br /&gt;
== Creación de túnel de acceso ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo el nodo en que ejecutó nuestra tarea. Crearemos un túnel de acceso desde el cluster hacia nuestra computadora. Para esto, en una nueva terminal, ejecutar cambiando los valores:&lt;br /&gt;
&lt;br /&gt;
 ssh usuario@leftraru.nlhpc.cl -p 4603 -L [puerto_local]:[nodo]:[puerto_vllm]&lt;br /&gt;
&lt;br /&gt;
por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ssh intern02@leftraru.nlhpc.cl -p 4603 -L 4466:gn004:8000&lt;br /&gt;
&lt;br /&gt;
Con esto podremos utilizar el &amp;lt;puerto_local&amp;gt; para lanzar consultas a la API de vLLM&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
Una vez realizado el túnel de acceso, podemos utilizar la API de vLLM en nuestra computadora personal, utilizando herramientas como Python o Curl.&lt;br /&gt;
&lt;br /&gt;
He aqui una guia de uso para la [https://platform.openai.com/docs/api-reference/chat API de vLLM].&lt;br /&gt;
&lt;br /&gt;
A continuación unos ejemplos:&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
 import requests, json&lt;br /&gt;
 url = &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot;&lt;br /&gt;
 headers = {&amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;}&lt;br /&gt;
 payload = {&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&lt;br /&gt;
 response = requests.post(url, json=payload, headers=headers)&lt;br /&gt;
 data = response.json()&lt;br /&gt;
 print(data[&amp;quot;choices&amp;quot;][0][&amp;quot;text&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
=== CURL ===&lt;br /&gt;
&lt;br /&gt;
 curl -X POST &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot; \&lt;br /&gt;
 -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
 squeue-d &#039;{&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&#039;&lt;br /&gt;
&lt;br /&gt;
== TroubleShooting ==&lt;br /&gt;
&lt;br /&gt;
* ¿Por qué el modelo no carga?&lt;br /&gt;
&lt;br /&gt;
Pueden haber múltiples razones:&lt;br /&gt;
&lt;br /&gt;
# La cantidad de GPU’s solicitadas no es divisor de la cantidad de cabezas de atención del modelo. Se recomienda que la cantidad de GPU’s sea potencia de 2.&lt;br /&gt;
# El modelo es demasiado grande y no cabe en la cantidad de GPU’s solicitadas. Se recomienda ver la documentación del modelo en hugging face y calcular cuanto pesa. Posteriormente aumentar la cantidad de GPU’s solicitadas.&lt;br /&gt;
# El modelo no está descargado en la carpeta compartida &amp;lt;code&amp;gt;/home/ai_inference/db/models&amp;lt;/code&amp;gt;. Cambiar la carpeta utilizando &amp;lt;code&amp;gt;unset HF_HOME&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;unset HF_CACHE&amp;lt;/code&amp;gt;. Pedir el grupo &amp;lt;practica-gpu&amp;gt; a soporte NLHPC para descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* ¿Puedo utilizar modelos cuantizados en vLLM?&lt;br /&gt;
&lt;br /&gt;
Es posible, utilizando la flag &amp;lt;code&amp;gt;--model /ruta/a/tu/modelo&amp;lt;/code&amp;gt; es posible cargar un LLM en formato gguf (cuantizado). Sin embargo debe ser un único archivo.&lt;br /&gt;
&lt;br /&gt;
No es lo recomendado dado que vLLM está optimizado para realizar inferencia con precisión completa o media.&lt;br /&gt;
&lt;br /&gt;
== Otros Enlaces ==&lt;br /&gt;
&lt;br /&gt;
[[OLLAMA API]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con módulos de software]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con apptainer]]&lt;br /&gt;
&lt;br /&gt;
[[ Diffusers ]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_m%C3%B3dulos_de_software&amp;diff=942</id>
		<title>VLLM API con módulos de software</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_m%C3%B3dulos_de_software&amp;diff=942"/>
		<updated>2025-04-09T13:22:32Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Lanzar el servicio vLLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En el contexto del NLHPC, se ofrecen dos herramientas principales para desplegar y realizar inferencia con LLMs: Ollama y vLLM. La elección entre ambas dependerá del formato del modelo y de los requisitos específicos de la implementación:&lt;br /&gt;
&lt;br /&gt;
* Ollama: Recomendado para utilizar modelos cuantizados. Recomendado para usuarios que no estén familiarizados con el despliegue de LLM’s dado la facilidad de uso que presenta la herramienta.&lt;br /&gt;
* vLLM: Ideal para ejecutar modelos descargados desde Hugging Face en formato &amp;lt;code&amp;gt;.safetensors&amp;lt;/code&amp;gt;, ofreciendo un alto rendimiento y eficiencia. Recomendado a usuarios con experiencia en el despliegue de LLM’s, dado la gran cantidad de parámetros ajustables que presenta la herramienta.&lt;br /&gt;
&lt;br /&gt;
vLLM es un motor de inferencia y servicio de LLM’s, diseñado para ofrecer alto rendimiento y eficiencia en memoria. Su arquitectura optimizada permite ejecutar modelos de lenguaje a gran escala con aceleración GPU maximizando la respuesta en inferencias. Sin embargo, su uso es complicado dada la cantidad de parámetros a tomar en cuenta para su correcta ejecución.&lt;br /&gt;
&lt;br /&gt;
En el siguiente artículo se le enseñará a:&lt;br /&gt;
&lt;br /&gt;
# Desplegar el servicio de vLLM en el cluster utilizando módulos de software.&lt;br /&gt;
# Conectarse a la API del servicio desplegado desde su computadora local.&lt;br /&gt;
# Utilizar la API para realizar cargas de trabajo de inferencia.&lt;br /&gt;
&lt;br /&gt;
== Cargar módulo vLLM ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar vLLM con compatibilidad AMD realiza el export del MODULEPATH y luego carga el módulo correspondiente:&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
&lt;br /&gt;
El cual contiene todos paquetes de software necesarios para realizar inferencia con modelos de difusión y LLM’s.&lt;br /&gt;
&lt;br /&gt;
Entre los paquetes se encuentran:&lt;br /&gt;
&lt;br /&gt;
* Pytorch, &lt;br /&gt;
* Ollama, &lt;br /&gt;
* vLLM, &lt;br /&gt;
* diffusers, &lt;br /&gt;
* huggingface-cli, &lt;br /&gt;
* transformers, &lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
== Lanzar el servicio vLLM ==&lt;br /&gt;
&lt;br /&gt;
Ejemplo de script SBATCH para iniciar el servicio:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J vllm_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 8&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=4090MB&lt;br /&gt;
 #SBATCH -o logs/vllm_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/vllm_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack /linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 vllm serve gpt2 --served-model-name gpt2 --distributed-executor-backend mp --tensor-parallel-size 1 --host 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
== ⚠️ Consideraciones importantes ==&lt;br /&gt;
&lt;br /&gt;
* Terminar el servicio de vLLM&lt;br /&gt;
&lt;br /&gt;
El servicio de vLLM &#039;&#039;&#039;no termina automáticamente&#039;&#039;&#039;, recuerde siempre cancelar la tarea con &amp;lt;code&amp;gt;scancel&amp;lt;/code&amp;gt; para evitar subutilización de recursos de cómputo&lt;br /&gt;
&lt;br /&gt;
* Memoria RAM&lt;br /&gt;
&lt;br /&gt;
La cantidad de RAM que se está reservando debe ser acorde a la cantidad de memoria que necesita el modelo a lanzar. Se puede utilizar la siguiente fórmula para estimar el peso en GB&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cantidad de parámetros&amp;gt; * &amp;lt;cantidad de bits&amp;gt; / (8 * 10 ^ 9)&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si su modelo tiene 14 billones de parámetros y está cuantizado a 4 bits, entonces requerirá 7GB de memoria para lanzarse, por tanto debe reservar siete o más gigabytes de memoria.&lt;br /&gt;
&lt;br /&gt;
* Reserva de GPU’s&lt;br /&gt;
&lt;br /&gt;
Cada GPU MI210 tiene 64 GB de memoria VRAM. Si su modelo utiliza más memoria, entonces solicitar más GPU’s adicionales con &amp;lt;code&amp;gt;--gres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
También debe agregar la flag &amp;lt;code&amp;gt;--tensor-parallel-size &amp;lt;NUM_GPUS&amp;gt;&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, al solicitar más GPU’s el rendimiento en tokens/s no mejora. Además, se recomienda pedir 8 CPU’s por GPU solicitada.&lt;br /&gt;
&lt;br /&gt;
* Flags de ejecución&lt;br /&gt;
&lt;br /&gt;
vLLM cuenta con una variada gama de flags para lanzar su servicio. A continuación, la guía oficial: [https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html?ref=blog.mozilla.ai OpenAI-Compatible Server — vLLM].&lt;br /&gt;
&lt;br /&gt;
* Puerto de escucha&lt;br /&gt;
&lt;br /&gt;
El puerto por defecto es 8000. Se recomienda utilizar otro (ej. 11434) para evitar utilizar un&lt;br /&gt;
puerto ya desplegado.&lt;br /&gt;
&lt;br /&gt;
Se especifica con:&lt;br /&gt;
&lt;br /&gt;
 --port &amp;lt;Num_puerto&amp;gt;&lt;br /&gt;
&lt;br /&gt;
al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Directorio de descarga de modelos&lt;br /&gt;
&lt;br /&gt;
Los modelos se descargan automáticamente de HuggingFace Hub en el directorio &amp;lt;code&amp;gt;/home/ai_inference_db/models/&amp;lt;/code&amp;gt;. Para usar y descargar modelos en su carpeta de usuario, cambie las variables de entorno:&lt;br /&gt;
&lt;br /&gt;
 unset HF_HOME&lt;br /&gt;
 unset HF_DATASETS_CACHE&lt;br /&gt;
&lt;br /&gt;
Además, si su modelo requiere permisos para utilizarse, puede realizar login a su cuenta utilizando:&lt;br /&gt;
&lt;br /&gt;
 huggingface-cli login&lt;br /&gt;
&lt;br /&gt;
Por otro lado, puede comunicarse con el soporte de NLHPC vía tickets para solicitar el grupo &amp;lt;practica-gpu&amp;gt; y descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* Uso de modelos propios&lt;br /&gt;
&lt;br /&gt;
Para utilizar un modelo propio o fine tunned, se debe especificar la ruta al archivo de su modelo agregando la flag &amp;lt;code&amp;gt;--model /ruta/a/tu/modelo&amp;lt;/code&amp;gt; al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, si utiliza &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;, el modelo debe estar en un único archivo y no dividido por partes.&lt;br /&gt;
&lt;br /&gt;
== Identificar el nodo de ejecución ==&lt;br /&gt;
&lt;br /&gt;
Usa squeue para encontrar el nodo asignado:&lt;br /&gt;
&lt;br /&gt;
 [usuario@leftraru2 ~]$ squeue &lt;br /&gt;
 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)&lt;br /&gt;
 38922125 mi210 vllm_serve usuario R 0:03 1 gn004&lt;br /&gt;
&lt;br /&gt;
Importante recordarlo pues lo usaremos más tarde.&lt;br /&gt;
&lt;br /&gt;
== Creación de túnel de acceso ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo el nodo en que ejecutó nuestra tarea. Crearemos un túnel de acceso desde el cluster hacia nuestra computadora. Para esto, en una nueva terminal, ejecutar cambiando los valores:&lt;br /&gt;
&lt;br /&gt;
 ssh usuario@leftraru.nlhpc.cl -p 4603 -L [puerto_local]:[nodo]:[puerto_vllm]&lt;br /&gt;
&lt;br /&gt;
por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ssh intern02@leftraru.nlhpc.cl -p 4603 -L 4466:gn004:8000&lt;br /&gt;
&lt;br /&gt;
Con esto podremos utilizar el &amp;lt;puerto_local&amp;gt; para lanzar consultas a la API de vLLM&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
Una vez realizado el túnel de acceso, podemos utilizar la API de vLLM en nuestra computadora personal, utilizando herramientas como Python o Curl.&lt;br /&gt;
&lt;br /&gt;
He aqui una guia de uso para la [https://platform.openai.com/docs/api-reference/chat API de vLLM].&lt;br /&gt;
&lt;br /&gt;
A continuación unos ejemplos:&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
 import requests, json&lt;br /&gt;
 url = &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot;&lt;br /&gt;
 headers = {&amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;}&lt;br /&gt;
 payload = {&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&lt;br /&gt;
 response = requests.post(url, json=payload, headers=headers)&lt;br /&gt;
 data = response.json()&lt;br /&gt;
 print(data[&amp;quot;choices&amp;quot;][0][&amp;quot;text&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
=== CURL ===&lt;br /&gt;
&lt;br /&gt;
 curl -X POST &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot; \&lt;br /&gt;
 -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
 squeue-d &#039;{&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&#039;&lt;br /&gt;
&lt;br /&gt;
== TroubleShooting ==&lt;br /&gt;
&lt;br /&gt;
* ¿Por qué el modelo no carga?&lt;br /&gt;
&lt;br /&gt;
Pueden haber múltiples razones:&lt;br /&gt;
&lt;br /&gt;
# La cantidad de GPU’s solicitadas no es divisor de la cantidad de cabezas de atención del modelo. Se recomienda que la cantidad de GPU’s sea potencia de 2.&lt;br /&gt;
# El modelo es demasiado grande y no cabe en la cantidad de GPU’s solicitadas. Se recomienda ver la documentación del modelo en hugging face y calcular cuanto pesa. Posteriormente aumentar la cantidad de GPU’s solicitadas.&lt;br /&gt;
# El modelo no está descargado en la carpeta compartida &amp;lt;code&amp;gt;/home/ai_inference/db/models&amp;lt;/code&amp;gt;. Cambiar la carpeta utilizando &amp;lt;code&amp;gt;unset HF_HOME&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;unset HF_CACHE&amp;lt;/code&amp;gt;. Pedir el grupo &amp;lt;practica-gpu&amp;gt; a soporte NLHPC para descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* ¿Puedo utilizar modelos cuantizados en vLLM?&lt;br /&gt;
&lt;br /&gt;
Es posible, utilizando la flag &amp;lt;code&amp;gt;--model /ruta/a/tu/modelo&amp;lt;/code&amp;gt; es posible cargar un LLM en formato gguf (cuantizado). Sin embargo debe ser un único archivo.&lt;br /&gt;
&lt;br /&gt;
No es lo recomendado dado que vLLM está optimizado para realizar inferencia con precisión completa o media.&lt;br /&gt;
&lt;br /&gt;
== Otros Enlaces ==&lt;br /&gt;
&lt;br /&gt;
[[OLLAMA API]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con módulos de software]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con apptainer]]&lt;br /&gt;
&lt;br /&gt;
[[ Diffusers ]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_m%C3%B3dulos_de_software&amp;diff=941</id>
		<title>VLLM API con módulos de software</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VLLM_API_con_m%C3%B3dulos_de_software&amp;diff=941"/>
		<updated>2025-04-09T13:20:43Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Cargar módulo vLLM */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introducción ==&lt;br /&gt;
&lt;br /&gt;
En el contexto del NLHPC, se ofrecen dos herramientas principales para desplegar y realizar inferencia con LLMs: Ollama y vLLM. La elección entre ambas dependerá del formato del modelo y de los requisitos específicos de la implementación:&lt;br /&gt;
&lt;br /&gt;
* Ollama: Recomendado para utilizar modelos cuantizados. Recomendado para usuarios que no estén familiarizados con el despliegue de LLM’s dado la facilidad de uso que presenta la herramienta.&lt;br /&gt;
* vLLM: Ideal para ejecutar modelos descargados desde Hugging Face en formato &amp;lt;code&amp;gt;.safetensors&amp;lt;/code&amp;gt;, ofreciendo un alto rendimiento y eficiencia. Recomendado a usuarios con experiencia en el despliegue de LLM’s, dado la gran cantidad de parámetros ajustables que presenta la herramienta.&lt;br /&gt;
&lt;br /&gt;
vLLM es un motor de inferencia y servicio de LLM’s, diseñado para ofrecer alto rendimiento y eficiencia en memoria. Su arquitectura optimizada permite ejecutar modelos de lenguaje a gran escala con aceleración GPU maximizando la respuesta en inferencias. Sin embargo, su uso es complicado dada la cantidad de parámetros a tomar en cuenta para su correcta ejecución.&lt;br /&gt;
&lt;br /&gt;
En el siguiente artículo se le enseñará a:&lt;br /&gt;
&lt;br /&gt;
# Desplegar el servicio de vLLM en el cluster utilizando módulos de software.&lt;br /&gt;
# Conectarse a la API del servicio desplegado desde su computadora local.&lt;br /&gt;
# Utilizar la API para realizar cargas de trabajo de inferencia.&lt;br /&gt;
&lt;br /&gt;
== Cargar módulo vLLM ==&lt;br /&gt;
&lt;br /&gt;
Para utilizar vLLM con compatibilidad AMD realiza el export del MODULEPATH y luego carga el módulo correspondiente:&lt;br /&gt;
 export MODULEPATH=/home/lmod/modules/all/spack/linux-rocky9-x86_64/openmpi/5.0.6-54a6qv3/aocc/5.0.0:/home/lmod/modules/all/spack/linux-rocky9-x86_64/aocc/5.0.0&lt;br /&gt;
&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
&lt;br /&gt;
El cual contiene todos paquetes de software necesarios para realizar inferencia con modelos de difusión y LLM’s.&lt;br /&gt;
&lt;br /&gt;
Entre los paquetes se encuentran:&lt;br /&gt;
&lt;br /&gt;
* Pytorch, &lt;br /&gt;
* Ollama, &lt;br /&gt;
* vLLM, &lt;br /&gt;
* diffusers, &lt;br /&gt;
* huggingface-cli, &lt;br /&gt;
* transformers, &lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
== Lanzar el servicio vLLM ==&lt;br /&gt;
&lt;br /&gt;
Ejemplo de script SBATCH para iniciar el servicio:&lt;br /&gt;
&lt;br /&gt;
 #!/bin/bash&lt;br /&gt;
 #---------------Script SBATCH - NLHPC ----------------&lt;br /&gt;
 #SBATCH -J vllm_serve&lt;br /&gt;
 #SBATCH -p mi210&lt;br /&gt;
 #SBATCH --gres=gpu:1&lt;br /&gt;
 #SBATCH -n 1&lt;br /&gt;
 #SBATCH --ntasks-per-node=1&lt;br /&gt;
 #SBATCH -c 8&lt;br /&gt;
 #SBATCH -t 0:10:00&lt;br /&gt;
 #SBATCH --mem=4090MB&lt;br /&gt;
 #SBATCH -o logs/vllm_serve_%j.out&lt;br /&gt;
 #SBATCH -e logs/vllm_serve_%j.err&lt;br /&gt;
 #-----------------Toolchain--------------------------&lt;br /&gt;
 ml purge&lt;br /&gt;
 # ----------------Modulos----------------------------&lt;br /&gt;
 ml ai-inference&lt;br /&gt;
 # ----------------Comando--------------------------&lt;br /&gt;
 vllm serve gpt2 --served-model-name gpt2 --distributed-executor-backend mp --tensor-parallel-size 1 --host 0.0.0.0&lt;br /&gt;
&lt;br /&gt;
== ⚠️ Consideraciones importantes ==&lt;br /&gt;
&lt;br /&gt;
* Terminar el servicio de vLLM&lt;br /&gt;
&lt;br /&gt;
El servicio de vLLM &#039;&#039;&#039;no termina automáticamente&#039;&#039;&#039;, recuerde siempre cancelar la tarea con &amp;lt;code&amp;gt;scancel&amp;lt;/code&amp;gt; para evitar subutilización de recursos de cómputo&lt;br /&gt;
&lt;br /&gt;
* Memoria RAM&lt;br /&gt;
&lt;br /&gt;
La cantidad de RAM que se está reservando debe ser acorde a la cantidad de memoria que necesita el modelo a lanzar. Se puede utilizar la siguiente fórmula para estimar el peso en GB&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;cantidad de parámetros&amp;gt; * &amp;lt;cantidad de bits&amp;gt; / (8 * 10 ^ 9)&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, si su modelo tiene 14 billones de parámetros y está cuantizado a 4 bits, entonces requerirá 7GB de memoria para lanzarse, por tanto debe reservar siete o más gigabytes de memoria.&lt;br /&gt;
&lt;br /&gt;
* Reserva de GPU’s&lt;br /&gt;
&lt;br /&gt;
Cada GPU MI210 tiene 64 GB de memoria VRAM. Si su modelo utiliza más memoria, entonces solicitar más GPU’s adicionales con &amp;lt;code&amp;gt;--gres&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
También debe agregar la flag &amp;lt;code&amp;gt;--tensor-parallel-size &amp;lt;NUM_GPUS&amp;gt;&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, al solicitar más GPU’s el rendimiento en tokens/s no mejora. Además, se recomienda pedir 8 CPU’s por GPU solicitada.&lt;br /&gt;
&lt;br /&gt;
* Flags de ejecución&lt;br /&gt;
&lt;br /&gt;
vLLM cuenta con una variada gama de flags para lanzar su servicio. A continuación, la guía oficial: [https://docs.vllm.ai/en/latest/serving/openai_compatible_server.html?ref=blog.mozilla.ai OpenAI-Compatible Server — vLLM].&lt;br /&gt;
&lt;br /&gt;
* Puerto de escucha&lt;br /&gt;
&lt;br /&gt;
El puerto por defecto es 8000. Se recomienda utilizar otro (ej. 11434) para evitar utilizar un&lt;br /&gt;
puerto ya desplegado.&lt;br /&gt;
&lt;br /&gt;
Se especifica con:&lt;br /&gt;
&lt;br /&gt;
 --port &amp;lt;Num_puerto&amp;gt;&lt;br /&gt;
&lt;br /&gt;
al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
* Directorio de descarga de modelos&lt;br /&gt;
&lt;br /&gt;
Los modelos se descargan automáticamente de HuggingFace Hub en el directorio &amp;lt;code&amp;gt;/home/ai_inference_db/models/&amp;lt;/code&amp;gt;. Para usar y descargar modelos en su carpeta de usuario, cambie las variables de entorno:&lt;br /&gt;
&lt;br /&gt;
 unset HF_HOME&lt;br /&gt;
 unset HF_DATASETS_CACHE&lt;br /&gt;
&lt;br /&gt;
Además, si su modelo requiere permisos para utilizarse, puede realizar login a su cuenta utilizando:&lt;br /&gt;
&lt;br /&gt;
 huggingface-cli login&lt;br /&gt;
&lt;br /&gt;
Por otro lado, puede comunicarse con el soporte de NLHPC vía tickets para solicitar el grupo &amp;lt;practica-gpu&amp;gt; y descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* Uso de modelos propios&lt;br /&gt;
&lt;br /&gt;
Para utilizar un modelo propio o fine tunned, se debe especificar la ruta al archivo de su modelo agregando la flag &amp;lt;code&amp;gt;--model /ruta/a/tu/modelo&amp;lt;/code&amp;gt; al comando &amp;lt;code&amp;gt;vllm serve&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Notar que, si utiliza &amp;lt;code&amp;gt;.gguf&amp;lt;/code&amp;gt;, el modelo debe estar en un único archivo y no dividido por partes.&lt;br /&gt;
&lt;br /&gt;
== Identificar el nodo de ejecución ==&lt;br /&gt;
&lt;br /&gt;
Usa squeue para encontrar el nodo asignado:&lt;br /&gt;
&lt;br /&gt;
 [usuario@leftraru2 ~]$ squeue &lt;br /&gt;
 JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)&lt;br /&gt;
 38922125 mi210 vllm_serve usuario R 0:03 1 gn004&lt;br /&gt;
&lt;br /&gt;
Importante recordarlo pues lo usaremos más tarde.&lt;br /&gt;
&lt;br /&gt;
== Creación de túnel de acceso ==&lt;br /&gt;
&lt;br /&gt;
Sabiendo el nodo en que ejecutó nuestra tarea. Crearemos un túnel de acceso desde el cluster hacia nuestra computadora. Para esto, en una nueva terminal, ejecutar cambiando los valores:&lt;br /&gt;
&lt;br /&gt;
 ssh usuario@leftraru.nlhpc.cl -p 4603 -L [puerto_local]:[nodo]:[puerto_vllm]&lt;br /&gt;
&lt;br /&gt;
por ejemplo:&lt;br /&gt;
&lt;br /&gt;
 ssh intern02@leftraru.nlhpc.cl -p 4603 -L 4466:gn004:8000&lt;br /&gt;
&lt;br /&gt;
Con esto podremos utilizar el &amp;lt;puerto_local&amp;gt; para lanzar consultas a la API de vLLM&lt;br /&gt;
&lt;br /&gt;
== Ejemplo de uso ==&lt;br /&gt;
&lt;br /&gt;
Una vez realizado el túnel de acceso, podemos utilizar la API de vLLM en nuestra computadora personal, utilizando herramientas como Python o Curl.&lt;br /&gt;
&lt;br /&gt;
He aqui una guia de uso para la [https://platform.openai.com/docs/api-reference/chat API de vLLM].&lt;br /&gt;
&lt;br /&gt;
A continuación unos ejemplos:&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
&lt;br /&gt;
 import requests, json&lt;br /&gt;
 url = &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot;&lt;br /&gt;
 headers = {&amp;quot;Content-Type&amp;quot;: &amp;quot;application/json&amp;quot;}&lt;br /&gt;
 payload = {&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&lt;br /&gt;
 response = requests.post(url, json=payload, headers=headers)&lt;br /&gt;
 data = response.json()&lt;br /&gt;
 print(data[&amp;quot;choices&amp;quot;][0][&amp;quot;text&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
=== CURL ===&lt;br /&gt;
&lt;br /&gt;
 curl -X POST &amp;quot;&amp;lt;http://localhost:[puerto_local]/v1/completions&amp;gt;&amp;quot; \&lt;br /&gt;
 -H &amp;quot;Content-Type: application/json&amp;quot; \&lt;br /&gt;
 squeue-d &#039;{&lt;br /&gt;
 &amp;quot;model&amp;quot;: &amp;quot;[nombre_modelo]&amp;quot;,&lt;br /&gt;
 &amp;quot;prompt&amp;quot;: &amp;quot;[tu_prompt]&amp;quot;,&lt;br /&gt;
 &amp;quot;max_tokens&amp;quot;: 100,&lt;br /&gt;
 &amp;quot;temperature&amp;quot;: 0.7&lt;br /&gt;
 }&#039;&lt;br /&gt;
&lt;br /&gt;
== TroubleShooting ==&lt;br /&gt;
&lt;br /&gt;
* ¿Por qué el modelo no carga?&lt;br /&gt;
&lt;br /&gt;
Pueden haber múltiples razones:&lt;br /&gt;
&lt;br /&gt;
# La cantidad de GPU’s solicitadas no es divisor de la cantidad de cabezas de atención del modelo. Se recomienda que la cantidad de GPU’s sea potencia de 2.&lt;br /&gt;
# El modelo es demasiado grande y no cabe en la cantidad de GPU’s solicitadas. Se recomienda ver la documentación del modelo en hugging face y calcular cuanto pesa. Posteriormente aumentar la cantidad de GPU’s solicitadas.&lt;br /&gt;
# El modelo no está descargado en la carpeta compartida &amp;lt;code&amp;gt;/home/ai_inference/db/models&amp;lt;/code&amp;gt;. Cambiar la carpeta utilizando &amp;lt;code&amp;gt;unset HF_HOME&amp;lt;/code&amp;gt; y &amp;lt;code&amp;gt;unset HF_CACHE&amp;lt;/code&amp;gt;. Pedir el grupo &amp;lt;practica-gpu&amp;gt; a soporte NLHPC para descargar modelos en la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* ¿Puedo utilizar modelos cuantizados en vLLM?&lt;br /&gt;
&lt;br /&gt;
Es posible, utilizando la flag &amp;lt;code&amp;gt;--model /ruta/a/tu/modelo&amp;lt;/code&amp;gt; es posible cargar un LLM en formato gguf (cuantizado). Sin embargo debe ser un único archivo.&lt;br /&gt;
&lt;br /&gt;
No es lo recomendado dado que vLLM está optimizado para realizar inferencia con precisión completa o media.&lt;br /&gt;
&lt;br /&gt;
== Otros Enlaces ==&lt;br /&gt;
&lt;br /&gt;
[[OLLAMA API]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con módulos de software]]&lt;br /&gt;
&lt;br /&gt;
[[VLLM API con apptainer]]&lt;br /&gt;
&lt;br /&gt;
[[ Diffusers ]]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=940</id>
		<title>VASP</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=940"/>
		<updated>2025-04-08T19:41:02Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Script de Ejemplo (64 núcleos) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es? ==&lt;br /&gt;
&lt;br /&gt;
VASP (Vienna Ab initio Simulation Package) es un paquete de mecánica cuántica para simulaciones de dinámica molecular a nivel ab initio, utilizando pseudopotenciales o el método Projector-Augmented Wave (PAW) y una base de ondas planas.&lt;br /&gt;
&lt;br /&gt;
La metodología usada en este software se basa en la aproximación local de la densidad (LDA) y una evaluación exacta del estado fundamental en cada paso de la dinámica molecul&lt;br /&gt;
== Modulos ==&lt;br /&gt;
&lt;br /&gt;
VASP se encuentra disponible en varias versiones, tanto para infraestructura INTEL como para AMD.&lt;br /&gt;
&lt;br /&gt;
Las últimas versiones disponibles son:&lt;br /&gt;
&lt;br /&gt;
 * 6.2.1&lt;br /&gt;
 * 6.3.2&lt;br /&gt;
 * 6.4.3&lt;br /&gt;
&lt;br /&gt;
Puede buscar las versiones de VASP para intel ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
intelsoftware&lt;br /&gt;
ml spider VASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para buscar las versiones de AMD puede ejecutar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
amdsoftware&lt;br /&gt;
ml spider vasp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definir entorno ==&lt;br /&gt;
En el archivo INCAR configuramos las siguientes variables respecto a la reserva que hagamos para tener idealmente de 1 átomo por core.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPAR = 5 #cantidad de nodos&lt;br /&gt;
NCORE = 20 #cantidad de cores por nodo&lt;br /&gt;
&lt;br /&gt;
#evitar exceso de carga en I/O&lt;br /&gt;
LWAVE  = .FALSE.&lt;br /&gt;
LCHARG = .FALSE.&lt;br /&gt;
LVTOT  = .FALSE.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ejemplo de Lanzador ==&lt;br /&gt;
&lt;br /&gt;
=== Para INTEL ===&lt;br /&gt;
Ejemplo de SBATCH para enviar a particiones &#039;&#039;general&#039;&#039; y &#039;&#039;largemem&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -J ejemplo&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 88&lt;br /&gt;
#SBATCH --ntasks-per-node=44 &lt;br /&gt;
#SBATCH --mem-per-cpu=4200&lt;br /&gt;
#SBATCH --mail-user=usuario@correo.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o %j_%x.out&lt;br /&gt;
#SBATCH -e %j_%x.err&lt;br /&gt;
&lt;br /&gt;
ml purge&lt;br /&gt;
ml intel/2022.00&lt;br /&gt;
ml VASP/6.3.2&lt;br /&gt;
&lt;br /&gt;
export OMP_NUM_THREADS=1&lt;br /&gt;
export MKL_NUM_THREADS=1&lt;br /&gt;
export MKL_DYNAMIC=FALSE&lt;br /&gt;
&lt;br /&gt;
#vasp_std for standard NVT calculation and non-gamma k-points&lt;br /&gt;
#vasp_gam for standard NVT calculation and only gamma-point&lt;br /&gt;
#vasp_ncl for NPT ensemble and non-gamma-point calculations&lt;br /&gt;
&lt;br /&gt;
EXEC=vasp_gam&lt;br /&gt;
BINVASP=&amp;quot;${EXEC}&amp;quot;&lt;br /&gt;
export BINVASP&lt;br /&gt;
srun $BINVASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Para AMD ===&lt;br /&gt;
El siguiente ejemplo muestra la versión de VASP 6.4.3 para ser ejecutada en un nodo de la partición &#039;&#039;&#039;main&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es importante destacar que al momemento de cargar estos módulos se generan avisos de tipo &#039;&#039;Warning&#039;&#039;, por lo que se recomienda monitorear la tarea y su comportamiento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;TareaVASP&amp;quot;&lt;br /&gt;
#SBATCH --partition=&amp;quot;main&amp;quot;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH -c 256&lt;br /&gt;
#SBATCH --mem-per-cpu=2839&lt;br /&gt;
##SBATCH --ntasks-per-node=64&lt;br /&gt;
&lt;br /&gt;
#SBATCH --output=TareaVASP-%j.out #&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&lt;br /&gt;
ml aocc&lt;br /&gt;
ml openmpi/5.0.5-zen4-j&lt;br /&gt;
ml amdfftw/4.2-mpi-openmp-zen4-tjgyk3c&lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-zen4-e&lt;br /&gt;
&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
export OMP_NUM_THREADS=256&lt;br /&gt;
export OMP_PLACES=cores&lt;br /&gt;
&lt;br /&gt;
srun vasp_std&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pruebas y recomendaciones de ejecución AMD ====&lt;br /&gt;
Los ejemplos descritos a continuación describen la configuración recomendada para ejecutar simulaciones con VASP (Vienna Ab initio Simulation Package) de manera eficiente (procesos) utilizando el paradigma MPI por sobre OpenMP o configuraciones híbridas (MPI + OpenMP)..&lt;br /&gt;
&lt;br /&gt;
A continuación, compartimos configuraciones recomendadas para distintos números de núcleos, que podrían ser útiles para mejorar el rendimiento de tus simulaciones.&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (24 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 24                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=24   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=30000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 6&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (64 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 64                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=64   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=60000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 16&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (128 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 128                 # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=128  # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=160000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 32&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Recomendaciones Adicionales====&lt;br /&gt;
&lt;br /&gt;
=====Optimización de NPAR y KPAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 80%; margin: 1em auto;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Núcleos&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | NPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | KPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Notas&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;Regla general&#039;&#039;&#039;:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;NPAR × KPAR ≈ Núcleos totales&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Ejemplo para 24 nucleos&#039;&#039;&#039;:&amp;lt;br&amp;gt;6 × 4 = 24 (configuración óptima)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Alternativa&#039;&#039;&#039;:&amp;lt;br&amp;gt;8 × 8 = 64 (Configuración alternativa)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Evitar OpenMP e Hibrido =====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FFF3F3; border-left: 4px solid #FF8080; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nota importante&#039;&#039;&#039;: Las pruebas muestran que &#039;&#039;&#039;MPI puro&#039;&#039;&#039; es significativamente más rápido que configuraciones híbridas (MPI + OpenMP) o solo OpenMP.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Monitoreo de Rendimiento =====&lt;br /&gt;
&#039;&#039;&#039;Pasos recomendados&#039;&#039;&#039;:&lt;br /&gt;
# Verificar el archivo &amp;lt;code&amp;gt;OUTCAR&amp;lt;/code&amp;gt; (buscar &amp;quot;Maximum memory used&amp;quot;)&lt;br /&gt;
# Ajustar &amp;lt;code&amp;gt;NPAR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;KPAR&amp;lt;/code&amp;gt; si se observan:&lt;br /&gt;
:* Cuellos de botella en E/S&lt;br /&gt;
:* Problemas de comunicación&lt;br /&gt;
:* Bajo rendimiento&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #F0F8FF; border-left: 4px solid #4682B4; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039;: Para sistemas grandes (&amp;gt;200 átomos), considerar aumentar NPAR en un 10-20%.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uso de software licenciado ==&lt;br /&gt;
&lt;br /&gt;
El uso de este software está restringido a los usuarios que dispongan de una licencia válida de VASP, la cual deben enviar al correo de soporte.&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
    * [https://www.vasp.at/ The VASP site]&lt;br /&gt;
    * [https://www.pdc.kth.se/software/software/VASP/cpe21.11/6.2.1-vanilla/index_using.html How to use VASP]&lt;br /&gt;
    * [https://hpc-uit.readthedocs.io/en/latest/applications/chemistry/VASP/firsttime_vasp.html First time you run a VASP job?]&lt;br /&gt;
    * [https://wiki.bwhpc.de/e/JUSTUS2/Software/VASP VASP bwHPC]&lt;br /&gt;
    * [https://www.vasp.at/wiki/index.php/NCORE VASP Wiki-Ncore]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=939</id>
		<title>VASP</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=939"/>
		<updated>2025-04-08T18:57:19Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Evitar OpenMP e Hibrido */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es? ==&lt;br /&gt;
&lt;br /&gt;
VASP (Vienna Ab initio Simulation Package) es un paquete de mecánica cuántica para simulaciones de dinámica molecular a nivel ab initio, utilizando pseudopotenciales o el método Projector-Augmented Wave (PAW) y una base de ondas planas.&lt;br /&gt;
&lt;br /&gt;
La metodología usada en este software se basa en la aproximación local de la densidad (LDA) y una evaluación exacta del estado fundamental en cada paso de la dinámica molecul&lt;br /&gt;
== Modulos ==&lt;br /&gt;
&lt;br /&gt;
VASP se encuentra disponible en varias versiones, tanto para infraestructura INTEL como para AMD.&lt;br /&gt;
&lt;br /&gt;
Las últimas versiones disponibles son:&lt;br /&gt;
&lt;br /&gt;
 * 6.2.1&lt;br /&gt;
 * 6.3.2&lt;br /&gt;
 * 6.4.3&lt;br /&gt;
&lt;br /&gt;
Puede buscar las versiones de VASP para intel ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
intelsoftware&lt;br /&gt;
ml spider VASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para buscar las versiones de AMD puede ejecutar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
amdsoftware&lt;br /&gt;
ml spider vasp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definir entorno ==&lt;br /&gt;
En el archivo INCAR configuramos las siguientes variables respecto a la reserva que hagamos para tener idealmente de 1 átomo por core.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPAR = 5 #cantidad de nodos&lt;br /&gt;
NCORE = 20 #cantidad de cores por nodo&lt;br /&gt;
&lt;br /&gt;
#evitar exceso de carga en I/O&lt;br /&gt;
LWAVE  = .FALSE.&lt;br /&gt;
LCHARG = .FALSE.&lt;br /&gt;
LVTOT  = .FALSE.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ejemplo de Lanzador ==&lt;br /&gt;
&lt;br /&gt;
=== Para INTEL ===&lt;br /&gt;
Ejemplo de SBATCH para enviar a particiones &#039;&#039;general&#039;&#039; y &#039;&#039;largemem&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -J ejemplo&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 88&lt;br /&gt;
#SBATCH --ntasks-per-node=44 &lt;br /&gt;
#SBATCH --mem-per-cpu=4200&lt;br /&gt;
#SBATCH --mail-user=usuario@correo.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o %j_%x.out&lt;br /&gt;
#SBATCH -e %j_%x.err&lt;br /&gt;
&lt;br /&gt;
ml purge&lt;br /&gt;
ml intel/2022.00&lt;br /&gt;
ml VASP/6.3.2&lt;br /&gt;
&lt;br /&gt;
export OMP_NUM_THREADS=1&lt;br /&gt;
export MKL_NUM_THREADS=1&lt;br /&gt;
export MKL_DYNAMIC=FALSE&lt;br /&gt;
&lt;br /&gt;
#vasp_std for standard NVT calculation and non-gamma k-points&lt;br /&gt;
#vasp_gam for standard NVT calculation and only gamma-point&lt;br /&gt;
#vasp_ncl for NPT ensemble and non-gamma-point calculations&lt;br /&gt;
&lt;br /&gt;
EXEC=vasp_gam&lt;br /&gt;
BINVASP=&amp;quot;${EXEC}&amp;quot;&lt;br /&gt;
export BINVASP&lt;br /&gt;
srun $BINVASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Para AMD ===&lt;br /&gt;
El siguiente ejemplo muestra la versión de VASP 6.4.3 para ser ejecutada en un nodo de la partición &#039;&#039;&#039;main&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es importante destacar que al momemento de cargar estos módulos se generan avisos de tipo &#039;&#039;Warning&#039;&#039;, por lo que se recomienda monitorear la tarea y su comportamiento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;TareaVASP&amp;quot;&lt;br /&gt;
#SBATCH --partition=&amp;quot;main&amp;quot;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH -c 256&lt;br /&gt;
#SBATCH --mem-per-cpu=2839&lt;br /&gt;
##SBATCH --ntasks-per-node=64&lt;br /&gt;
&lt;br /&gt;
#SBATCH --output=TareaVASP-%j.out #&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&lt;br /&gt;
ml aocc&lt;br /&gt;
ml openmpi/5.0.5-zen4-j&lt;br /&gt;
ml amdfftw/4.2-mpi-openmp-zen4-tjgyk3c&lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-zen4-e&lt;br /&gt;
&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
export OMP_NUM_THREADS=256&lt;br /&gt;
export OMP_PLACES=cores&lt;br /&gt;
&lt;br /&gt;
srun vasp_std&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pruebas y recomendaciones de ejecución AMD ====&lt;br /&gt;
Los ejemplos descritos a continuación describen la configuración recomendada para ejecutar simulaciones con VASP (Vienna Ab initio Simulation Package) de manera eficiente (procesos) utilizando el paradigma MPI por sobre OpenMP o configuraciones híbridas (MPI + OpenMP)..&lt;br /&gt;
&lt;br /&gt;
A continuación, compartimos configuraciones recomendadas para distintos números de núcleos, que podrían ser útiles para mejorar el rendimiento de tus simulaciones.&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (24 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 24                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=24   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=30000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 6&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (64 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 64                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=64   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=80000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 16&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (128 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 128                 # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=128  # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=160000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 32&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Recomendaciones Adicionales====&lt;br /&gt;
&lt;br /&gt;
=====Optimización de NPAR y KPAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 80%; margin: 1em auto;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Núcleos&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | NPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | KPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Notas&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;Regla general&#039;&#039;&#039;:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;NPAR × KPAR ≈ Núcleos totales&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Ejemplo para 24 nucleos&#039;&#039;&#039;:&amp;lt;br&amp;gt;6 × 4 = 24 (configuración óptima)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Alternativa&#039;&#039;&#039;:&amp;lt;br&amp;gt;8 × 8 = 64 (Configuración alternativa)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Evitar OpenMP e Hibrido =====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FFF3F3; border-left: 4px solid #FF8080; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nota importante&#039;&#039;&#039;: Las pruebas muestran que &#039;&#039;&#039;MPI puro&#039;&#039;&#039; es significativamente más rápido que configuraciones híbridas (MPI + OpenMP) o solo OpenMP.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Monitoreo de Rendimiento =====&lt;br /&gt;
&#039;&#039;&#039;Pasos recomendados&#039;&#039;&#039;:&lt;br /&gt;
# Verificar el archivo &amp;lt;code&amp;gt;OUTCAR&amp;lt;/code&amp;gt; (buscar &amp;quot;Maximum memory used&amp;quot;)&lt;br /&gt;
# Ajustar &amp;lt;code&amp;gt;NPAR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;KPAR&amp;lt;/code&amp;gt; si se observan:&lt;br /&gt;
:* Cuellos de botella en E/S&lt;br /&gt;
:* Problemas de comunicación&lt;br /&gt;
:* Bajo rendimiento&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #F0F8FF; border-left: 4px solid #4682B4; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039;: Para sistemas grandes (&amp;gt;200 átomos), considerar aumentar NPAR en un 10-20%.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uso de software licenciado ==&lt;br /&gt;
&lt;br /&gt;
El uso de este software está restringido a los usuarios que dispongan de una licencia válida de VASP, la cual deben enviar al correo de soporte.&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
    * [https://www.vasp.at/ The VASP site]&lt;br /&gt;
    * [https://www.pdc.kth.se/software/software/VASP/cpe21.11/6.2.1-vanilla/index_using.html How to use VASP]&lt;br /&gt;
    * [https://hpc-uit.readthedocs.io/en/latest/applications/chemistry/VASP/firsttime_vasp.html First time you run a VASP job?]&lt;br /&gt;
    * [https://wiki.bwhpc.de/e/JUSTUS2/Software/VASP VASP bwHPC]&lt;br /&gt;
    * [https://www.vasp.at/wiki/index.php/NCORE VASP Wiki-Ncore]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=938</id>
		<title>VASP</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=938"/>
		<updated>2025-04-08T18:56:58Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Monitoreo de Rendimiento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es? ==&lt;br /&gt;
&lt;br /&gt;
VASP (Vienna Ab initio Simulation Package) es un paquete de mecánica cuántica para simulaciones de dinámica molecular a nivel ab initio, utilizando pseudopotenciales o el método Projector-Augmented Wave (PAW) y una base de ondas planas.&lt;br /&gt;
&lt;br /&gt;
La metodología usada en este software se basa en la aproximación local de la densidad (LDA) y una evaluación exacta del estado fundamental en cada paso de la dinámica molecul&lt;br /&gt;
== Modulos ==&lt;br /&gt;
&lt;br /&gt;
VASP se encuentra disponible en varias versiones, tanto para infraestructura INTEL como para AMD.&lt;br /&gt;
&lt;br /&gt;
Las últimas versiones disponibles son:&lt;br /&gt;
&lt;br /&gt;
 * 6.2.1&lt;br /&gt;
 * 6.3.2&lt;br /&gt;
 * 6.4.3&lt;br /&gt;
&lt;br /&gt;
Puede buscar las versiones de VASP para intel ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
intelsoftware&lt;br /&gt;
ml spider VASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para buscar las versiones de AMD puede ejecutar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
amdsoftware&lt;br /&gt;
ml spider vasp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definir entorno ==&lt;br /&gt;
En el archivo INCAR configuramos las siguientes variables respecto a la reserva que hagamos para tener idealmente de 1 átomo por core.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPAR = 5 #cantidad de nodos&lt;br /&gt;
NCORE = 20 #cantidad de cores por nodo&lt;br /&gt;
&lt;br /&gt;
#evitar exceso de carga en I/O&lt;br /&gt;
LWAVE  = .FALSE.&lt;br /&gt;
LCHARG = .FALSE.&lt;br /&gt;
LVTOT  = .FALSE.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ejemplo de Lanzador ==&lt;br /&gt;
&lt;br /&gt;
=== Para INTEL ===&lt;br /&gt;
Ejemplo de SBATCH para enviar a particiones &#039;&#039;general&#039;&#039; y &#039;&#039;largemem&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -J ejemplo&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 88&lt;br /&gt;
#SBATCH --ntasks-per-node=44 &lt;br /&gt;
#SBATCH --mem-per-cpu=4200&lt;br /&gt;
#SBATCH --mail-user=usuario@correo.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o %j_%x.out&lt;br /&gt;
#SBATCH -e %j_%x.err&lt;br /&gt;
&lt;br /&gt;
ml purge&lt;br /&gt;
ml intel/2022.00&lt;br /&gt;
ml VASP/6.3.2&lt;br /&gt;
&lt;br /&gt;
export OMP_NUM_THREADS=1&lt;br /&gt;
export MKL_NUM_THREADS=1&lt;br /&gt;
export MKL_DYNAMIC=FALSE&lt;br /&gt;
&lt;br /&gt;
#vasp_std for standard NVT calculation and non-gamma k-points&lt;br /&gt;
#vasp_gam for standard NVT calculation and only gamma-point&lt;br /&gt;
#vasp_ncl for NPT ensemble and non-gamma-point calculations&lt;br /&gt;
&lt;br /&gt;
EXEC=vasp_gam&lt;br /&gt;
BINVASP=&amp;quot;${EXEC}&amp;quot;&lt;br /&gt;
export BINVASP&lt;br /&gt;
srun $BINVASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Para AMD ===&lt;br /&gt;
El siguiente ejemplo muestra la versión de VASP 6.4.3 para ser ejecutada en un nodo de la partición &#039;&#039;&#039;main&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es importante destacar que al momemento de cargar estos módulos se generan avisos de tipo &#039;&#039;Warning&#039;&#039;, por lo que se recomienda monitorear la tarea y su comportamiento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;TareaVASP&amp;quot;&lt;br /&gt;
#SBATCH --partition=&amp;quot;main&amp;quot;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH -c 256&lt;br /&gt;
#SBATCH --mem-per-cpu=2839&lt;br /&gt;
##SBATCH --ntasks-per-node=64&lt;br /&gt;
&lt;br /&gt;
#SBATCH --output=TareaVASP-%j.out #&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&lt;br /&gt;
ml aocc&lt;br /&gt;
ml openmpi/5.0.5-zen4-j&lt;br /&gt;
ml amdfftw/4.2-mpi-openmp-zen4-tjgyk3c&lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-zen4-e&lt;br /&gt;
&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
export OMP_NUM_THREADS=256&lt;br /&gt;
export OMP_PLACES=cores&lt;br /&gt;
&lt;br /&gt;
srun vasp_std&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pruebas y recomendaciones de ejecución AMD ====&lt;br /&gt;
Los ejemplos descritos a continuación describen la configuración recomendada para ejecutar simulaciones con VASP (Vienna Ab initio Simulation Package) de manera eficiente (procesos) utilizando el paradigma MPI por sobre OpenMP o configuraciones híbridas (MPI + OpenMP)..&lt;br /&gt;
&lt;br /&gt;
A continuación, compartimos configuraciones recomendadas para distintos números de núcleos, que podrían ser útiles para mejorar el rendimiento de tus simulaciones.&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (24 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 24                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=24   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=30000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 6&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (64 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 64                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=64   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=80000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 16&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (128 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 128                 # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=128  # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=160000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 32&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Recomendaciones Adicionales====&lt;br /&gt;
&lt;br /&gt;
=====Optimización de NPAR y KPAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 80%; margin: 1em auto;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Núcleos&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | NPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | KPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Notas&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;Regla general&#039;&#039;&#039;:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;NPAR × KPAR ≈ Núcleos totales&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Ejemplo para 24 nucleos&#039;&#039;&#039;:&amp;lt;br&amp;gt;6 × 4 = 24 (configuración óptima)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Alternativa&#039;&#039;&#039;:&amp;lt;br&amp;gt;8 × 8 = 64 (Configuración alternativa)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Evitar OpenMP e Hibrido =====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FFF3F3; border-left: 4px solid #FF8080; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nota importante&#039;&#039;&#039;: Las pruebas muestran que &#039;&#039;&#039;MPI puro&#039;&#039;&#039; es significativamente más rápido que configuraciones híbridas (MPI + OpenMP) o solo OpenMP.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uso de software licenciado ==&lt;br /&gt;
&lt;br /&gt;
El uso de este software está restringido a los usuarios que dispongan de una licencia válida de VASP, la cual deben enviar al correo de soporte.&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
    * [https://www.vasp.at/ The VASP site]&lt;br /&gt;
    * [https://www.pdc.kth.se/software/software/VASP/cpe21.11/6.2.1-vanilla/index_using.html How to use VASP]&lt;br /&gt;
    * [https://hpc-uit.readthedocs.io/en/latest/applications/chemistry/VASP/firsttime_vasp.html First time you run a VASP job?]&lt;br /&gt;
    * [https://wiki.bwhpc.de/e/JUSTUS2/Software/VASP VASP bwHPC]&lt;br /&gt;
    * [https://www.vasp.at/wiki/index.php/NCORE VASP Wiki-Ncore]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=937</id>
		<title>VASP</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=937"/>
		<updated>2025-04-08T18:56:43Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Monitoreo de Rendimiento */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es? ==&lt;br /&gt;
&lt;br /&gt;
VASP (Vienna Ab initio Simulation Package) es un paquete de mecánica cuántica para simulaciones de dinámica molecular a nivel ab initio, utilizando pseudopotenciales o el método Projector-Augmented Wave (PAW) y una base de ondas planas.&lt;br /&gt;
&lt;br /&gt;
La metodología usada en este software se basa en la aproximación local de la densidad (LDA) y una evaluación exacta del estado fundamental en cada paso de la dinámica molecul&lt;br /&gt;
== Modulos ==&lt;br /&gt;
&lt;br /&gt;
VASP se encuentra disponible en varias versiones, tanto para infraestructura INTEL como para AMD.&lt;br /&gt;
&lt;br /&gt;
Las últimas versiones disponibles son:&lt;br /&gt;
&lt;br /&gt;
 * 6.2.1&lt;br /&gt;
 * 6.3.2&lt;br /&gt;
 * 6.4.3&lt;br /&gt;
&lt;br /&gt;
Puede buscar las versiones de VASP para intel ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
intelsoftware&lt;br /&gt;
ml spider VASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para buscar las versiones de AMD puede ejecutar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
amdsoftware&lt;br /&gt;
ml spider vasp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definir entorno ==&lt;br /&gt;
En el archivo INCAR configuramos las siguientes variables respecto a la reserva que hagamos para tener idealmente de 1 átomo por core.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPAR = 5 #cantidad de nodos&lt;br /&gt;
NCORE = 20 #cantidad de cores por nodo&lt;br /&gt;
&lt;br /&gt;
#evitar exceso de carga en I/O&lt;br /&gt;
LWAVE  = .FALSE.&lt;br /&gt;
LCHARG = .FALSE.&lt;br /&gt;
LVTOT  = .FALSE.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ejemplo de Lanzador ==&lt;br /&gt;
&lt;br /&gt;
=== Para INTEL ===&lt;br /&gt;
Ejemplo de SBATCH para enviar a particiones &#039;&#039;general&#039;&#039; y &#039;&#039;largemem&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -J ejemplo&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 88&lt;br /&gt;
#SBATCH --ntasks-per-node=44 &lt;br /&gt;
#SBATCH --mem-per-cpu=4200&lt;br /&gt;
#SBATCH --mail-user=usuario@correo.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o %j_%x.out&lt;br /&gt;
#SBATCH -e %j_%x.err&lt;br /&gt;
&lt;br /&gt;
ml purge&lt;br /&gt;
ml intel/2022.00&lt;br /&gt;
ml VASP/6.3.2&lt;br /&gt;
&lt;br /&gt;
export OMP_NUM_THREADS=1&lt;br /&gt;
export MKL_NUM_THREADS=1&lt;br /&gt;
export MKL_DYNAMIC=FALSE&lt;br /&gt;
&lt;br /&gt;
#vasp_std for standard NVT calculation and non-gamma k-points&lt;br /&gt;
#vasp_gam for standard NVT calculation and only gamma-point&lt;br /&gt;
#vasp_ncl for NPT ensemble and non-gamma-point calculations&lt;br /&gt;
&lt;br /&gt;
EXEC=vasp_gam&lt;br /&gt;
BINVASP=&amp;quot;${EXEC}&amp;quot;&lt;br /&gt;
export BINVASP&lt;br /&gt;
srun $BINVASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Para AMD ===&lt;br /&gt;
El siguiente ejemplo muestra la versión de VASP 6.4.3 para ser ejecutada en un nodo de la partición &#039;&#039;&#039;main&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es importante destacar que al momemento de cargar estos módulos se generan avisos de tipo &#039;&#039;Warning&#039;&#039;, por lo que se recomienda monitorear la tarea y su comportamiento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;TareaVASP&amp;quot;&lt;br /&gt;
#SBATCH --partition=&amp;quot;main&amp;quot;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH -c 256&lt;br /&gt;
#SBATCH --mem-per-cpu=2839&lt;br /&gt;
##SBATCH --ntasks-per-node=64&lt;br /&gt;
&lt;br /&gt;
#SBATCH --output=TareaVASP-%j.out #&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&lt;br /&gt;
ml aocc&lt;br /&gt;
ml openmpi/5.0.5-zen4-j&lt;br /&gt;
ml amdfftw/4.2-mpi-openmp-zen4-tjgyk3c&lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-zen4-e&lt;br /&gt;
&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
export OMP_NUM_THREADS=256&lt;br /&gt;
export OMP_PLACES=cores&lt;br /&gt;
&lt;br /&gt;
srun vasp_std&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pruebas y recomendaciones de ejecución AMD ====&lt;br /&gt;
Los ejemplos descritos a continuación describen la configuración recomendada para ejecutar simulaciones con VASP (Vienna Ab initio Simulation Package) de manera eficiente (procesos) utilizando el paradigma MPI por sobre OpenMP o configuraciones híbridas (MPI + OpenMP)..&lt;br /&gt;
&lt;br /&gt;
A continuación, compartimos configuraciones recomendadas para distintos números de núcleos, que podrían ser útiles para mejorar el rendimiento de tus simulaciones.&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (24 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 24                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=24   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=30000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 6&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (64 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 64                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=64   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=80000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 16&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (128 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 128                 # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=128  # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=160000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 32&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Recomendaciones Adicionales====&lt;br /&gt;
&lt;br /&gt;
=====Optimización de NPAR y KPAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 80%; margin: 1em auto;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Núcleos&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | NPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | KPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Notas&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;Regla general&#039;&#039;&#039;:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;NPAR × KPAR ≈ Núcleos totales&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Ejemplo para 24 nucleos&#039;&#039;&#039;:&amp;lt;br&amp;gt;6 × 4 = 24 (configuración óptima)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Alternativa&#039;&#039;&#039;:&amp;lt;br&amp;gt;8 × 8 = 64 (Configuración alternativa)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Evitar OpenMP e Hibrido =====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FFF3F3; border-left: 4px solid #FF8080; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nota importante&#039;&#039;&#039;: Las pruebas muestran que &#039;&#039;&#039;MPI puro&#039;&#039;&#039; es significativamente más rápido que configuraciones híbridas (MPI + OpenMP) o solo OpenMP.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoreo de Rendimiento ==&lt;br /&gt;
&#039;&#039;&#039;Pasos recomendados&#039;&#039;&#039;:&lt;br /&gt;
# Verificar el archivo &amp;lt;code&amp;gt;OUTCAR&amp;lt;/code&amp;gt; (buscar &amp;quot;Maximum memory used&amp;quot;)&lt;br /&gt;
# Ajustar &amp;lt;code&amp;gt;NPAR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;KPAR&amp;lt;/code&amp;gt; si se observan:&lt;br /&gt;
:* Cuellos de botella en E/S&lt;br /&gt;
:* Problemas de comunicación&lt;br /&gt;
:* Bajo rendimiento&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #F0F8FF; border-left: 4px solid #4682B4; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039;: Para sistemas grandes (&amp;gt;200 átomos), considerar aumentar NPAR en un 10-20%.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Uso de software licenciado ==&lt;br /&gt;
&lt;br /&gt;
El uso de este software está restringido a los usuarios que dispongan de una licencia válida de VASP, la cual deben enviar al correo de soporte.&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
    * [https://www.vasp.at/ The VASP site]&lt;br /&gt;
    * [https://www.pdc.kth.se/software/software/VASP/cpe21.11/6.2.1-vanilla/index_using.html How to use VASP]&lt;br /&gt;
    * [https://hpc-uit.readthedocs.io/en/latest/applications/chemistry/VASP/firsttime_vasp.html First time you run a VASP job?]&lt;br /&gt;
    * [https://wiki.bwhpc.de/e/JUSTUS2/Software/VASP VASP bwHPC]&lt;br /&gt;
    * [https://www.vasp.at/wiki/index.php/NCORE VASP Wiki-Ncore]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
	<entry>
		<id>https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=936</id>
		<title>VASP</title>
		<link rel="alternate" type="text/html" href="https://wiki.nlhpc.cl/index.php?title=VASP&amp;diff=936"/>
		<updated>2025-04-08T18:56:29Z</updated>

		<summary type="html">&lt;p&gt;Administrador: /* Evitar OpenMP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ¿Qué es? ==&lt;br /&gt;
&lt;br /&gt;
VASP (Vienna Ab initio Simulation Package) es un paquete de mecánica cuántica para simulaciones de dinámica molecular a nivel ab initio, utilizando pseudopotenciales o el método Projector-Augmented Wave (PAW) y una base de ondas planas.&lt;br /&gt;
&lt;br /&gt;
La metodología usada en este software se basa en la aproximación local de la densidad (LDA) y una evaluación exacta del estado fundamental en cada paso de la dinámica molecul&lt;br /&gt;
== Modulos ==&lt;br /&gt;
&lt;br /&gt;
VASP se encuentra disponible en varias versiones, tanto para infraestructura INTEL como para AMD.&lt;br /&gt;
&lt;br /&gt;
Las últimas versiones disponibles son:&lt;br /&gt;
&lt;br /&gt;
 * 6.2.1&lt;br /&gt;
 * 6.3.2&lt;br /&gt;
 * 6.4.3&lt;br /&gt;
&lt;br /&gt;
Puede buscar las versiones de VASP para intel ejecutando:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
intelsoftware&lt;br /&gt;
ml spider VASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Y para buscar las versiones de AMD puede ejecutar:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
amdsoftware&lt;br /&gt;
ml spider vasp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Definir entorno ==&lt;br /&gt;
En el archivo INCAR configuramos las siguientes variables respecto a la reserva que hagamos para tener idealmente de 1 átomo por core.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NPAR = 5 #cantidad de nodos&lt;br /&gt;
NCORE = 20 #cantidad de cores por nodo&lt;br /&gt;
&lt;br /&gt;
#evitar exceso de carga en I/O&lt;br /&gt;
LWAVE  = .FALSE.&lt;br /&gt;
LCHARG = .FALSE.&lt;br /&gt;
LVTOT  = .FALSE.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Ejemplo de Lanzador ==&lt;br /&gt;
&lt;br /&gt;
=== Para INTEL ===&lt;br /&gt;
Ejemplo de SBATCH para enviar a particiones &#039;&#039;general&#039;&#039; y &#039;&#039;largemem&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH -J ejemplo&lt;br /&gt;
#SBATCH -p general&lt;br /&gt;
#SBATCH -n 88&lt;br /&gt;
#SBATCH --ntasks-per-node=44 &lt;br /&gt;
#SBATCH --mem-per-cpu=4200&lt;br /&gt;
#SBATCH --mail-user=usuario@correo.cl&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
#SBATCH -o %j_%x.out&lt;br /&gt;
#SBATCH -e %j_%x.err&lt;br /&gt;
&lt;br /&gt;
ml purge&lt;br /&gt;
ml intel/2022.00&lt;br /&gt;
ml VASP/6.3.2&lt;br /&gt;
&lt;br /&gt;
export OMP_NUM_THREADS=1&lt;br /&gt;
export MKL_NUM_THREADS=1&lt;br /&gt;
export MKL_DYNAMIC=FALSE&lt;br /&gt;
&lt;br /&gt;
#vasp_std for standard NVT calculation and non-gamma k-points&lt;br /&gt;
#vasp_gam for standard NVT calculation and only gamma-point&lt;br /&gt;
#vasp_ncl for NPT ensemble and non-gamma-point calculations&lt;br /&gt;
&lt;br /&gt;
EXEC=vasp_gam&lt;br /&gt;
BINVASP=&amp;quot;${EXEC}&amp;quot;&lt;br /&gt;
export BINVASP&lt;br /&gt;
srun $BINVASP&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Para AMD ===&lt;br /&gt;
El siguiente ejemplo muestra la versión de VASP 6.4.3 para ser ejecutada en un nodo de la partición &#039;&#039;&#039;main&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Es importante destacar que al momemento de cargar estos módulos se generan avisos de tipo &#039;&#039;Warning&#039;&#039;, por lo que se recomienda monitorear la tarea y su comportamiento.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;TareaVASP&amp;quot;&lt;br /&gt;
#SBATCH --partition=&amp;quot;main&amp;quot;&lt;br /&gt;
#SBATCH -n 1&lt;br /&gt;
#SBATCH -c 256&lt;br /&gt;
#SBATCH --mem-per-cpu=2839&lt;br /&gt;
##SBATCH --ntasks-per-node=64&lt;br /&gt;
&lt;br /&gt;
#SBATCH --output=TareaVASP-%j.out #&lt;br /&gt;
#SBATCH --mail-type=ALL&lt;br /&gt;
&lt;br /&gt;
ml aocc&lt;br /&gt;
ml openmpi/5.0.5-zen4-j&lt;br /&gt;
ml amdfftw/4.2-mpi-openmp-zen4-tjgyk3c&lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-zen4-e&lt;br /&gt;
&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
export OMP_NUM_THREADS=256&lt;br /&gt;
export OMP_PLACES=cores&lt;br /&gt;
&lt;br /&gt;
srun vasp_std&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Pruebas y recomendaciones de ejecución AMD ====&lt;br /&gt;
Los ejemplos descritos a continuación describen la configuración recomendada para ejecutar simulaciones con VASP (Vienna Ab initio Simulation Package) de manera eficiente (procesos) utilizando el paradigma MPI por sobre OpenMP o configuraciones híbridas (MPI + OpenMP)..&lt;br /&gt;
&lt;br /&gt;
A continuación, compartimos configuraciones recomendadas para distintos números de núcleos, que podrían ser útiles para mejorar el rendimiento de tus simulaciones.&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (24 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 24                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=24   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=30000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 6&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (64 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 64                  # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=64   # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=80000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 16&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=====Script de Ejemplo (128 núcleos)=====&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
#SBATCH --job-name=&amp;quot;MPI&amp;quot;&lt;br /&gt;
#SBATCH -p main&lt;br /&gt;
#SBATCH -n 128                 # Total de procesos MPI&lt;br /&gt;
#SBATCH --ntasks-per-node=128  # Procesos por nodo (ajustar según arquitectura)&lt;br /&gt;
#SBATCH -c 1                   # 1 thread por proceso (MPI puro)&lt;br /&gt;
#SBATCH --mem=160000            # Memoria en MB (ajustar según necesidades)&lt;br /&gt;
#SBATCH --output=MiTareaVASP-log/%j.out&lt;br /&gt;
#SBATCH --error=MiTareaVASP-log/%j.err&lt;br /&gt;
&lt;br /&gt;
# Cargar módulos necesarios&lt;br /&gt;
ml gcc/14.2.0-zen4-y &lt;br /&gt;
ml vasp/6.4.3-mpi-openmp-h5-zen4-c&lt;br /&gt;
&lt;br /&gt;
# Limpiar archivos previos&lt;br /&gt;
rm -f DOSCAR PROCAR XDATCAR OSZICAR OUTCAR vasprun.xml REPORT&lt;br /&gt;
&lt;br /&gt;
# Configuración MPI (opcional)&lt;br /&gt;
export OMPI_MCA_mtl=ofi&lt;br /&gt;
&lt;br /&gt;
# Medir tiempo de ejecución&lt;br /&gt;
echo &amp;quot;Inicio: $(date)&amp;quot;&lt;br /&gt;
/usr/bin/time -v srun vasp_std&lt;br /&gt;
echo &amp;quot;Fin: $(date)&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Parámetros Clave en el INCAR&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color:#d9edf7;&amp;quot; | Parámetro&lt;br /&gt;
! Valor recomendado (24 núcleos)&lt;br /&gt;
! Descripción&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NPAR&lt;br /&gt;
| 32&lt;br /&gt;
| Número de bandas calculadas en paralelo.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | NCORE&lt;br /&gt;
| 1&lt;br /&gt;
| Evita OpenMP (MPI puro es más eficiente).&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;background-color:#d9edf7;&amp;quot; | KPAR&lt;br /&gt;
| 4&lt;br /&gt;
| División de la malla k-point.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
====Recomendaciones Adicionales====&lt;br /&gt;
&lt;br /&gt;
=====Optimización de NPAR y KPAR=====&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 80%; margin: 1em auto;&amp;quot;&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Núcleos&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | NPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | KPAR&lt;br /&gt;
! style=&amp;quot;background-color: #d9edf7; text-align: center;&amp;quot; | Notas&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 24&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; style=&amp;quot;padding: 10px;&amp;quot; | &#039;&#039;&#039;Regla general&#039;&#039;&#039;:&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;NPAR × KPAR ≈ Núcleos totales&amp;lt;/code&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Ejemplo para 24 nucleos&#039;&#039;&#039;:&amp;lt;br&amp;gt;6 × 4 = 24 (configuración óptima)&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&#039;&#039;&#039;Alternativa&#039;&#039;&#039;:&amp;lt;br&amp;gt;8 × 8 = 64 (Configuración alternativa)&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 64&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 16&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===== Evitar OpenMP e Hibrido =====&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #FFF3F3; border-left: 4px solid #FF8080; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Nota importante&#039;&#039;&#039;: Las pruebas muestran que &#039;&#039;&#039;MPI puro&#039;&#039;&#039; es significativamente más rápido que configuraciones híbridas (MPI + OpenMP) o solo OpenMP.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoreo de Rendimiento ==&lt;br /&gt;
&#039;&#039;&#039;Pasos recomendados&#039;&#039;&#039;:&lt;br /&gt;
# Verificar el archivo &amp;lt;code&amp;gt;OUTCAR&amp;lt;/code&amp;gt; (buscar &amp;quot;Maximum memory used&amp;quot;)&lt;br /&gt;
# Ajustar &amp;lt;code&amp;gt;NPAR&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;KPAR&amp;lt;/code&amp;gt; si se observan:&lt;br /&gt;
:* Cuellos de botella en E/S&lt;br /&gt;
:* Problemas de comunicación&lt;br /&gt;
:* Bajo rendimiento&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #F0F8FF; border-left: 4px solid #4682B4; padding: 0.5em 1em; margin: 1em 0;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Tip&#039;&#039;&#039;: Para sistemas grandes (&amp;gt;200 átomos), considerar aumentar NPAR en un 10-20%.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Monitoreo de Rendimiento ==&lt;br /&gt;
&#039;&#039;&#039;Pasos recomendados&#039;&#039;&#039;:&lt;br /&gt;
# Verificar el archivo {{mono|OUTCAR}} (buscar &amp;quot;Maximum memory used&amp;quot;)&lt;br /&gt;
# Ajustar {{mono|NPAR}}/{{mono|KPAR}} si se observan:&lt;br /&gt;
** Cuellos de botella en E/S&lt;br /&gt;
** Problemas de comunicación entre nodos&lt;br /&gt;
** Bajo rendimiento&lt;br /&gt;
&lt;br /&gt;
{{tip|Para sistemas grandes (&amp;gt;200 átomos), considerar aumentar NPAR en un 10-20%}}&lt;br /&gt;
&lt;br /&gt;
== Uso de software licenciado ==&lt;br /&gt;
&lt;br /&gt;
El uso de este software está restringido a los usuarios que dispongan de una licencia válida de VASP, la cual deben enviar al correo de soporte.&lt;br /&gt;
&lt;br /&gt;
== Referencias ==&lt;br /&gt;
    * [https://www.vasp.at/ The VASP site]&lt;br /&gt;
    * [https://www.pdc.kth.se/software/software/VASP/cpe21.11/6.2.1-vanilla/index_using.html How to use VASP]&lt;br /&gt;
    * [https://hpc-uit.readthedocs.io/en/latest/applications/chemistry/VASP/firsttime_vasp.html First time you run a VASP job?]&lt;br /&gt;
    * [https://wiki.bwhpc.de/e/JUSTUS2/Software/VASP VASP bwHPC]&lt;br /&gt;
    * [https://www.vasp.at/wiki/index.php/NCORE VASP Wiki-Ncore]&lt;/div&gt;</summary>
		<author><name>Administrador</name></author>
	</entry>
</feed>