Diferencia entre las páginas «Tutorial de acceso a Leftraru via SSH» y «Lmod»

De NLHPC
(Diferencia entre las páginas)
 
 
Línea 1: Línea 1:
== Ejemplos de conexión ==
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.
Para realizar una conexión desde un sistema GNU/Linux o MacOSX, use el comando SSH (ejemplo con usuario "prueba"):
<pre>
$ ssh prueba@leftraru.nlhpc.cl
prueba@leftraru.nlhpc.cl password:


[...]
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).


prueba@leftraru4:~$
El comando '''module''' y '''ml''' pueden usarse indistintamente. La segunda forma se utiliza para abreviar y es la que se usará en este tutorial.
</pre>


Para conectar desde sistemas Windows, se recomienda usar Putty como cliente SSH:
== 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.


Putty.jpg
<pre>
$ ml av


En este ejemplo, se usará el usuario "prueba".
----------------- /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


Accesologin1.png
[ETC...]
</pre>


El password es ingresado sin mostrar ningún carácter en la pantalla.
Para buscar si está disponible un software, use ml spider y un nombre a buscar:


== Cambiar contraseña ==
<pre>
Para cambiar la contraseña de usuario, es necesario que esta cumpla con ciertos requisitos como por ejemplo:
$ ml spider openfoam
-----------------------------------------------------------------------------------
  OpenFOAM: OpenFOAM/v1812
-----------------------------------------------------------------------------------


* El mínimo de caracteres son 10.
    Description:
* Debe ser alfanumérica.
      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
* Tener 3 caracteres especiales (al menos 1 mayúscula – 1 minúscula y 1 número).
      electromagnetics.  


Para ejecutar esta acción, utilice el siguiente comando:
<pre>
[prueba@leftraru1 ~]$ passwd


Changing password for user prueba.
    You will need to load all module(s) on any one of the lines below before the "OpenFOAM/v1812" module is available to load.
(current) LDAP Password: <- Ingrese su contraseña actual.


New password: ********* <- Ingrese su nueva contraseña.
      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
</pre>


Retype new password: Reingrese su nueva contraseña.
== Mostrar ==
Muestra información específica de una aplicación en particular.
<pre>
$ 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.


passwd: all authentication tokens updated successfully.
      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
</pre>
</pre>


Confirmación de cambio de clave exitoso, le recomendamos cerrar su sesión e ingresar nuevamente a nuestro sistema ingresando su nueva contraseña.
== Cargar ==
Este comando carga el modulo NAMD/2.13-mpi:


== Conexión a nodos actualmente utilizados ==
$ ml NAMD/2.13-mpi
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.
$ 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.


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.
$ ml


Por ejemplo; nuestra tarea de prueba 'tarea_test.sh' ha sido enviada a la cola y ha ingresado con el ID '3469576'. Slurm reservó el nodo 'cn053' para llevar a cabo la ejecución, por tanto el usuario tiene permitido el ingreso mediante ssh al nodo:
Currently Loaded Modules:
 
  1) GCCcore/8.2.0                      4) impi/2019.2.187  7) binutils/2.32 10) FFTW/3.3.8
<pre>
  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
leftraru$ sbatch tarea_test.sh
  3) ifort/2019.2.187-GCC-8.2.0-2.31.1  6) intel/2019b      9) Tcl/8.6.9
leftraru$ squeue
          JOBID PARTITION    NAME    USER ST      TIME NODES NODELIST(REASON)
          3469576     slims Prueba    test  R      1:57      1 cn053
leftraru$ ssh cn053
Last login: today 2016 from leftraru.nlhpc.cl
cn053$
</pre>


Tenga en cuenta que aún se mantiene la restricción de ingreso para el resto de los nodos:
$ ml unload NAMD/2.13-mpi
<pre>
$ ml
leftraru$ ssh cn001
Access denied: user test (uid=000) has no active jobs on this node.
leftraru$
</pre>


== Nodos Login ==
Currently Loaded Modules:
Aunque disponemos de 4 nodos para el acceso al clúster por parte de los usuarios, en general, hay que usar el nombre:
  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.


leftraru.nlhpc.cl
$ ml
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.


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:
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


leftraru1.nlhpc.cl
$ ml purge
leftraru2.nlhpc.cl
$ ml
leftraru3.nlhpc.cl
No modules loaded
leftraru4.nlhpc.cl
== Ejemplo simple de un script sbatch ==
== Notas ==
Para cargar la versión 3.7 de Python en un script sbatch:
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.


Un usuario sólo podrá acceder por ssh a los cuatro nodos logins y a los nodos de cómputo en los cuales tenga alguna tarea en ejecución mediante nuestro sistema gestor de colas SLURM.
#!/bin/bash
#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


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 si tiene problemas de conexión: soporte@nlhpc.cl
[ETC...]

Revisión del 20:48 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...]