Diferencia entre las páginas «Monitoreo» y «Lmod»

De NLHPC
(Diferencia entre las páginas)
 
 
Línea 1: Línea 1:
== ¿Como listo las tareas? ==
Lmod es un sistema de módulos que permite cargar software para la ejecución en el clúster. La mayoría del software ya se encuentra compilado y optimizado para su ejecución en las diversas arquitecturas disponibles, pero si necesitara software no incluido, por favor, comuníquenoslo mediante un correo a Soporte. A continuación se presenta una guía básica para su uso habitual.
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]
 
Tenga en cuenta que por defecto se carga el módulo '''intel''', ya que casi todo el software está compilado con dicho compilador. Si no desea usar por defecto dicho compilador, debería ejecutar '''ml purge''' para limpiar el entorno de variables (ver sección Limpiar).
 
El comando '''module''' y '''ml''' pueden usarse indistintamente. La segunda forma se utiliza para abreviar y es la que se usará en este tutorial.
 
== Listar y Buscar ==
El comando ml o ml list lista todos los módulos que estén cargados. El comando ml av o ml avail lista todo el software disponible. La mayoría del software disponible está compilado con el compilador Intel para optimizar su ejecución en nuestra arquitectura computacional.
 
<pre>
<pre>
[usuario@leftraru1 ~]$ squeue -o "%.15i %.6P %.8j %.20S %.11M %.11L %.20V %.2t %.10q %.4C %.2D %.7W %N " -S -t,-Q
$ ml av


JOBID   PARTIT  NAME    START_TIME          TIME      TIME_LEFT  SUBMIT_TIME        ST  QOS CPUS NO LICENSE NODELIST
----------------- /home/lmod/modules/all/MPI/intel/2019.2.187-GCC-8.2.0-2.31.1/impi/2019.2.187 -----------------
12863561  slims  test04  2018-07-08T13:57:53  1-20:25:20 1-03:34:40 2018-07-08T13:57:26  R  120  5   1 (null) cn000
   ANTLR/2.7.7-Python-3.7.2                MPFR/4.0.2                          bzip2/1.0.6
12864082  slims  test02  2018-07-09T10:44:15   23:38:58 2-00:21:02 2018-07-09T10:43:51  R  120  10  1 (null) cn001
  APR-util/1.6.1                          Mako/1.0.7-Python-2.7.15            cURL/7.64.0
12865333  slims  test01  2018-07-10T17:16:38        0:00 3-00:00:00 2018-07-10T09:30:22  PD 120  10  1 (null)
  APR/1.6.5                               Mesa/18.3.4                          cairo/1.16.0
12865334  slims  test06  2018-07-10T17:49:42       0:00 3-00:00:00 2018-07-10T09:38:13  PD 120  10  1 (null) 
  Autoconf/2.69                    (D)   Meson/0.49.2-Python-3.7.2            expat/2.2.6
12865335  slims  test09  2018-07-11T07:42:16        0:00 3-00:00:00 2018-07-10T09:28:05  PD 120  20  1 (null)
  Automake/1.16.1                  (D)   NAMD/2.13-mpi                (D)    flex/2.6.4                    (D)
  Autotools/20180311                (D)    NAMD/2.13-smp-mpi                    fontconfig/2.13.1
  BAGEL/1.2.2                              NASM/2.14.02                        freeglut/3.0.0
  Bison/3.0.5                              NCL/6.6.2                            freetype/2.9.1
  Bison/3.3                        (D)   NCO/4.7.9                            g2clib/1.6.0
  Boost/1.64.0                            NLopt/2.5.0                          g2lib/1.4.0
  Boost/1.69.0-Python-2.7.15              Ninja/1.9.0                          gc/7.6.8
  Boost/1.69.0                     (D)    ORCA/4.1.1-OpenMPI-3.1.3            gettext/0.19.8.1              (D)
  Bowtie/1.2.2                            OpenFOAM/v1812                      git/2.21.0
  Bowtie2/2.3.4.3                          OpenMPI/3.1.3                        gperf/3.1
  CDO/1.9.6                                OpenMPI/4.0.0                        grib_api/1.28.0
  CESM-deps/2                              OpenMPI/4.0.1                 (D)    help2man/1.47.8              (D)
  CGAL/4.13-Python-2.7.15                  PCRE/8.42                           hopspack/2.0.2
  CGAL/4.13                        (D)    PLUMED/2.5.0                        hwloc/2.0.3                  (D)
  CMake/3.13.4                      (D)    PROJ/5.2.0                          imkl/2019.2.187              (L)
  CP2K/7.0                                ParaView/5.4.1-mpi                  intltool/0.51.0-Perl-5.28.1
  Doxygen/1.8.15                          Perl/5.28.1                         libGLU/9.0.0
  ELPA/2018.11.001                        Pillow/5.4.1-Python-3.7.2            libQGLViewer/2.7.1
  ESMF/7.1.0r                              PnetCDF/1.9.0                       libconfig/1.7.2
  ESyS-Particle/2.3.5-Python-2.7.15        Pylint/1.9.4-Python-2.7.15          libdap/3.19.1
 
[ETC...]
</pre>
</pre>


== ¿Como monitoreo los recursos utilizados por mi tarea? ==
Para buscar si está disponible un software, use ml spider y un nombre a buscar:
=== Conectándose al nodo ===
Siempre y cuando tengamos tareas corriendo en un nodo, podemos entrar en este vía SSH.


==== * uptime ====
Para conocer la carga del nodo, cuantos procesos por core existen actualmente.
<pre>
<pre>
[usuario@leftraru1 ~]# ssh cn109
$ ml spider openfoam
usuario@cn000 s password:
-----------------------------------------------------------------------------------
[usuario@cn000 ~]# uptime
  OpenFOAM: OpenFOAM/v1812
10:40:59 up 27 days, 16:46, 1 user,  load average: 17.04, 13.76, 13.09
-----------------------------------------------------------------------------------
</pre>
 
    Description:
      OpenFOAM is a free, open source CFD software package. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and
      electromagnetics.  
 


==== * User Stats ====
    You will need to load all module(s) on any one of the lines below before the "OpenFOAM/v1812" module is available to load.
Este script permite revisar:


===== '''La memoria por core (en kb)''' =====
      icc/2019.2.187-GCC-8.2.0-2.31.1  impi/2019.2.187
<pre>
      ifort/2019.2.187-GCC-8.2.0-2.31.1  impi/2019.2.187
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh mem
00 371695616
01 373268480
02 367038464
03 363290624
04 367382528
</pre>
</pre>


===== '''Cantidad de procesos por core''' =====
== Mostrar ==
<pre>
Muestra información específica de una aplicación en particular.
[usuario@cn000 ~]$ /home/apps/nlhpc/bin/user_stats.sh load
 
00 1
$ ml spider OpenFOAM/v1812
01 2
02 1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
03 1
  OpenFOAM: OpenFOAM/v1812
04 1
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
</pre>
    Description:
      OpenFOAM is a free, open source CFD software package. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions,
      turbulence and heat transfer, to solid dynamics and electromagnetics.
    You will need to load all module(s) on any one of the lines below before the "OpenFOAM/v1812" module is available to load.


==== * htop ====
      icc/2019.2.187-GCC-8.2.0-2.31.1  impi/2019.2.187
Es un visor de procesos en linux, basado en ncurses.
      ifort/2019.2.187-GCC-8.2.0-2.31.1  impi/2019.2.187
<pre>
== Cargar ==
[usuario@cn109 ~]# htop
Este comando carga el modulo NAMD/2.13-mpi:
</pre>
[[Archivo:Htop.png|marco|izquierda|htop]]


$ ml NAMD/2.13-mpi
$ ml
Currently Loaded Modules:
  1) GCCcore/8.2.0                      4) impi/2019.2.187  7) binutils/2.32  10) FFTW/3.3.8
  2) icc/2019.2.187-GCC-8.2.0-2.31.1    5) imkl/2019.2.187  8) zlib/1.2.11    11) NAMD/2.13-mpi
  3) ifort/2019.2.187-GCC-8.2.0-2.31.1  6) intel/2019b      9) Tcl/8.6.9
== Descargar ==
Descarga un módulo en particular, pero no sus dependencias.


.
$ ml


=== A través de Ganglia ===
Currently Loaded Modules:
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.
  1) GCCcore/8.2.0                      4) impi/2019.2.187  7) binutils/2.32  10) FFTW/3.3.8
  2) icc/2019.2.187-GCC-8.2.0-2.31.1    5) imkl/2019.2.187  8) zlib/1.2.11    11) NAMD/2.13-mpi
  3) ifort/2019.2.187-GCC-8.2.0-2.31.1  6) intel/2019b      9) Tcl/8.6.9


300px-Ganglia.png
$ ml unload NAMD/2.13-mpi
$ ml


=== A través de Dashboard ===
Currently Loaded Modules:
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.
  1) GCCcore/8.2.0                    3) ifort/2019.2.187-GCC-8.2.0-2.31.1  5) imkl/2019.2.187  7) binutils/2.32  9) Tcl/8.6.9
  2) icc/2019.2.187-GCC-8.2.0-2.31.1  4) impi/2019.2.187                    6) intel/2019b      8) zlib/1.2.11    10) FFTW/3.3.8
== Limpiar ==
Eliminar todos los módulos que previamente se tienen cargados.


$ ml


=== En el correo de notificación ===
Currently Loaded Modules:
Al terminar una tarea se adjuntan las siguientes gráficas:
  1) GCCcore/8.2.0    3) icc/2019.2.187-GCC-8.2.0-2.31.1    5) impi/2019.2.187  7) intel/2019b
  2) binutils/2.31.1  4) ifort/2019.2.187-GCC-8.2.0-2.31.1  6) imkl/2019.2.187


==== Porcentaje de uso por core ====
$ ml purge
300px-Correo CPU.png
$ ml
No modules loaded
== Ejemplo simple de un script sbatch ==
Para cargar la versión 3.7 de Python en un script sbatch:


==== Memoria utilizada por core ====
#!/bin/bash
300px-Correo MEMxCPU.png
#SBATCH -J example
#SBATCH -p general
#SBATCH -n 1
#SBATCH -o example_%j.out
#SBATCH -e example_%j.err
#SBATCH --mail-user=user@gmail.com
#SBATCH --mail-type=ALL
ml Python/3.7.2


==== Archivo report.log ====
[ETC...]
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={'cn094': {'mem': '10000', 'cpu': [0, 2, 3, 4, 5, 6, 7, 8, 9, 10]}} alarm_count=1 last_time=1531147611 iter=2 job_cancel=None modules=[]
n=cn094
  mem max:3586 resv:10000
  cpu=10 avg=91.00 std=45.77 / all avg=0.00 std=0.00
  cpu= 0 avg=98.19 std=44.53 / all avg=0.00 std=0.00
* cpu= 3 avg=0.56 std=0.50 / all avg=0.47 std=0.50
* cpu= 2 avg=0.86 std=0.35 / all avg=0.66 std=0.47
* cpu= 5 avg=0.64 std=0.48 / all avg=0.49 std=0.50
* cpu= 4 avg=0.53 std=0.50 / all avg=0.40 std=0.49
  cpu= 7 avg=82.11 std=48.93 / all avg=0.00 std=0.00
* cpu= 6 avg=0.56 std=0.50 / all avg=0.45 std=0.50
* cpu= 9 avg=0.47 std=0.50 / all avg=0.36 std=0.48
* cpu= 8 avg=0.72 std=0.45 / all avg=0.79 std=0.41
En mem max:3586 resv:10000 se destaca que el máximo de memoria utilizada por la tarea ha sido de 3568M
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.

Revisión del 20:47 26 ago 2022

Lmod es un sistema de módulos que permite cargar software para la ejecución en el clúster. La mayoría del software ya se encuentra compilado y optimizado para su ejecución en las diversas arquitecturas disponibles, pero si necesitara software no incluido, por favor, comuníquenoslo mediante un correo a Soporte. A continuación se presenta una guía básica para su uso habitual.

Tenga en cuenta que por defecto se carga el módulo intel, ya que casi todo el software está compilado con dicho compilador. Si no desea usar por defecto dicho compilador, debería ejecutar ml purge para limpiar el entorno de variables (ver sección Limpiar).

El comando module y ml pueden usarse indistintamente. La segunda forma se utiliza para abreviar y es la que se usará en este tutorial.

Listar y Buscar

El comando ml o ml list lista todos los módulos que estén cargados. El comando ml av o ml avail lista todo el software disponible. La mayoría del software disponible está compilado con el compilador Intel para optimizar su ejecución en nuestra arquitectura computacional.

$ ml av

----------------- /home/lmod/modules/all/MPI/intel/2019.2.187-GCC-8.2.0-2.31.1/impi/2019.2.187 -----------------
   ANTLR/2.7.7-Python-3.7.2                 MPFR/4.0.2                           bzip2/1.0.6
   APR-util/1.6.1                           Mako/1.0.7-Python-2.7.15             cURL/7.64.0
   APR/1.6.5                                Mesa/18.3.4                          cairo/1.16.0
   Autoconf/2.69                     (D)    Meson/0.49.2-Python-3.7.2            expat/2.2.6
   Automake/1.16.1                   (D)    NAMD/2.13-mpi                 (D)    flex/2.6.4                    (D)
   Autotools/20180311                (D)    NAMD/2.13-smp-mpi                    fontconfig/2.13.1
   BAGEL/1.2.2                              NASM/2.14.02                         freeglut/3.0.0
   Bison/3.0.5                              NCL/6.6.2                            freetype/2.9.1
   Bison/3.3                         (D)    NCO/4.7.9                            g2clib/1.6.0
   Boost/1.64.0                             NLopt/2.5.0                          g2lib/1.4.0
   Boost/1.69.0-Python-2.7.15               Ninja/1.9.0                          gc/7.6.8
   Boost/1.69.0                      (D)    ORCA/4.1.1-OpenMPI-3.1.3             gettext/0.19.8.1              (D)
   Bowtie/1.2.2                             OpenFOAM/v1812                       git/2.21.0
   Bowtie2/2.3.4.3                          OpenMPI/3.1.3                        gperf/3.1
   CDO/1.9.6                                OpenMPI/4.0.0                        grib_api/1.28.0
   CESM-deps/2                              OpenMPI/4.0.1                 (D)    help2man/1.47.8               (D)
   CGAL/4.13-Python-2.7.15                  PCRE/8.42                            hopspack/2.0.2
   CGAL/4.13                         (D)    PLUMED/2.5.0                         hwloc/2.0.3                   (D)
   CMake/3.13.4                      (D)    PROJ/5.2.0                           imkl/2019.2.187               (L)
   CP2K/7.0                                 ParaView/5.4.1-mpi                   intltool/0.51.0-Perl-5.28.1
   Doxygen/1.8.15                           Perl/5.28.1                          libGLU/9.0.0
   ELPA/2018.11.001                         Pillow/5.4.1-Python-3.7.2            libQGLViewer/2.7.1
   ESMF/7.1.0r                              PnetCDF/1.9.0                        libconfig/1.7.2
   ESyS-Particle/2.3.5-Python-2.7.15        Pylint/1.9.4-Python-2.7.15           libdap/3.19.1

[ETC...]

Para buscar si está disponible un software, use ml spider y un nombre a buscar:

$ ml spider openfoam
-----------------------------------------------------------------------------------
  OpenFOAM: OpenFOAM/v1812
-----------------------------------------------------------------------------------

    Description:
      OpenFOAM is a free, open source CFD software package. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics and
      electromagnetics. 


    You will need to load all module(s) on any one of the lines below before the "OpenFOAM/v1812" module is available to load.

      icc/2019.2.187-GCC-8.2.0-2.31.1  impi/2019.2.187
      ifort/2019.2.187-GCC-8.2.0-2.31.1  impi/2019.2.187

Mostrar

Muestra información específica de una aplicación en particular.

$ ml spider OpenFOAM/v1812

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  OpenFOAM: OpenFOAM/v1812
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
   Description:
     OpenFOAM is a free, open source CFD software package. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions,
     turbulence and heat transfer, to solid dynamics and electromagnetics. 

   You will need to load all module(s) on any one of the lines below before the "OpenFOAM/v1812" module is available to load.
     icc/2019.2.187-GCC-8.2.0-2.31.1  impi/2019.2.187
     ifort/2019.2.187-GCC-8.2.0-2.31.1  impi/2019.2.187

Cargar

Este comando carga el modulo NAMD/2.13-mpi:

$ ml NAMD/2.13-mpi $ ml

Currently Loaded Modules:

 1) GCCcore/8.2.0                       4) impi/2019.2.187   7) binutils/2.32  10) FFTW/3.3.8
 2) icc/2019.2.187-GCC-8.2.0-2.31.1     5) imkl/2019.2.187   8) zlib/1.2.11    11) NAMD/2.13-mpi
 3) ifort/2019.2.187-GCC-8.2.0-2.31.1   6) intel/2019b       9) Tcl/8.6.9

Descargar

Descarga un módulo en particular, pero no sus dependencias.

$ ml

Currently Loaded Modules:
 1) GCCcore/8.2.0                       4) impi/2019.2.187   7) binutils/2.32  10) FFTW/3.3.8
 2) icc/2019.2.187-GCC-8.2.0-2.31.1     5) imkl/2019.2.187   8) zlib/1.2.11    11) NAMD/2.13-mpi
 3) ifort/2019.2.187-GCC-8.2.0-2.31.1   6) intel/2019b       9) Tcl/8.6.9

$ ml unload NAMD/2.13-mpi $ ml

Currently Loaded Modules:

 1) GCCcore/8.2.0                     3) ifort/2019.2.187-GCC-8.2.0-2.31.1   5) imkl/2019.2.187   7) binutils/2.32   9) Tcl/8.6.9
 2) icc/2019.2.187-GCC-8.2.0-2.31.1   4) impi/2019.2.187                     6) intel/2019b       8) zlib/1.2.11    10) FFTW/3.3.8

Limpiar

Eliminar todos los módulos que previamente se tienen cargados.

$ ml

Currently Loaded Modules:

 1) GCCcore/8.2.0     3) icc/2019.2.187-GCC-8.2.0-2.31.1     5) impi/2019.2.187   7) intel/2019b
 2) binutils/2.31.1   4) ifort/2019.2.187-GCC-8.2.0-2.31.1   6) imkl/2019.2.187

$ ml purge $ ml No modules loaded

Ejemplo simple de un script sbatch

Para cargar la versión 3.7 de Python en un script sbatch:

  1. !/bin/bash
  2. SBATCH -J example
  3. SBATCH -p general
  4. SBATCH -n 1
  5. SBATCH -o example_%j.out
  6. SBATCH -e example_%j.err
  7. SBATCH --mail-user=user@gmail.com
  8. SBATCH --mail-type=ALL

ml Python/3.7.2

[ETC...]