Manual de Usuario Supercomputador LUSITANIA Manual de Usuario del Supercomputador LUSITANIA Índice de contenido 1 Introducción ......................................................................................................... 3 2 Acceso a LUSITANIA ............................................................................................. 4 2.1 2.2 2.3 2.4 Acceso desde clientes GNU/Linux......................................................................................................4 Acceso desde clientes Windows.........................................................................................................6 Copia de ficheros desde GNU/Linux...................................................................................................8 Copia de ficheros desde Windows......................................................................................................9 3 Ejecución de trabajos en LUSITANIA ...................................................................13 3.1 3.2 3.3 3.4 3.5 3.6 El gestor de trabajos LSF..................................................................................................................13 Las colas de trabajos........................................................................................................................13 Lanzar un trabajo.............................................................................................................................14 Estado de un trabajo........................................................................................................................16 Operaciones sobre trabajos.............................................................................................................16 Tabla de estados de un trabajo........................................................................................................17 Pag. 2 Manual de Usuario del Supercomputador LUSITANIA 1 Introducción El presente documento pretende ser una guía rápida para la correcta utilización del cluster de supercomputación LUSITANIA. A lo largo del documento se ofrece la información necesaria para acceder a LUSITANIA así como la utilización de éste para la ejecución de los trabajos. Pag. 3 Manual de Usuario del Supercomputador LUSITANIA 2 Acceso a LUSITANIA En esta sección se describen los pasos a seguir para conectarse remotamente a los equipos del cluster de supercomputación LUSITANIA con el fin de lanzar proyectos sobre él. A continuación se detalla el acceso al cluster de supercomputación LUSITANIA desde estaciones de trabajo con el sistema operativo GNU/Linux o Microsoft Windows para conectarse a un terminal de consola y para transferir archivos desde los equipos cliente al supercomputador. Antes de comenzar, es necesario disponer de las credenciales (cuenta de usuario y contraseña) de acceso al cluster de supercomputación, que deberá suministrar el equipo técnico del Centro de Supercomputación (CénitS) tras haber cumplimentado debidamente la solicitud de acceso a los recursos del supercomputador LUSITANIA. Una vez que se disponga de una cuenta de usuario y contraseña se estará en disposición de empezar a trabajar con el cluster de supercomputación LUSITANIA. Para ello, se conectará de forma remota a los servidores de acceso, que responden al nombre ssh.cenits.es 2.1 Acceso desde clientes GNU/Linux Por norma general, cualquier distribución GNU/Linux que se utilice vendrá equipada con un cliente del protocolo SSH que se podrá utilizar para acceder de forma segura mediante una sesión remota a los recursos de LUSITANIA. En caso de que el ordenador del usuario no esté equipado con un cliente SSH éste deberá instalarlo por medios propios. El cliente de acceso SSH más utilizado en entornos GNU/Linux se llama OpenSSH y, normalmente, se encuentra dentro del paquete openssh-client, y puede ser instalado con el gestor de paquetes incluido en la distribución que se utilice, esto es, aptitude o synaptic para Debian y derivados (como Ubuntu), rpm para RedHat o YaST para SUSE Linux. Una vez que se disponga de un cliente SSH en el sistema GNU/Linux del usuario se procederá a realizar la conexión a cualquiera de los servidores de acceso del supercomputador LUSITANIA. Para ello se procederá a abrir una consola de terminal en el ordenador del usuario y a teclear en ella el siguiente comando: $ ssh <usuario>@<servidor de acceso> o alternativamente: $ ssh -l <usuario> <servidor de acceso> Pag. 4 Manual de Usuario del Supercomputador LUSITANIA donde: <usuario> será el nombre de la cuenta de usuario proporcionado por el equipo de CénitS. <servidor de acceso> será el nombre de servidor que se ha señalado anteriormente, ssh.cenits.es La primera vez que se establezca la conexión a un servidor de acceso el cliente SSH del usuario hará la pregunta que muestra la Fig. 1: Fig 1: Pregunta de seguridad del cliente SSH donde se indica que no está seguro de la autenticidad de la conexión y se pregunta si se desea continuar; se contestará a la pregunta con yes y el sistema avisará de que se ha añadido esa dirección a la lista de ordenadores conocidos. A continuación, tal y como se observa en la Fig. 2, el cliente se teclee la contraseña mostrando la palabra Password: proceda a validar la entrada en el sistema. Tras teclear la pulsar la tecla INTRO, finalmente se establecerá la conexión acceso del cluster LUSITANIA. solicitará que para que se contraseña y al sistema de Fig 2: El cliente SSH solicita la contraseña Podremos saber que la conexión al cluster del supercomputador LUSITANIA se ha establecido correctamente si el símbolo del sistema o prompt Pag. 5 Manual de Usuario del Supercomputador LUSITANIA (marcado en rojo en la Fig. 3) muestra el nombre de la cuenta de usuario y el nombre de una de las máquinas de acceso del cluster (login1 o login2). A partir de este momento, todo el trabajo que se lleve a cabo se ejecutará en alguno de los nodos del cluster de supercomputación y, en función del tipo de trabajo, se ejecutará en los distintos sistemas que componen el supercomputador LUSITANIA. Fig 3: Simbolo de sistema de LUSITANIA 2.2 Acceso desde clientes Windows Si el ordenador del usuario tiene instalado un sistema operativo de la familia Microsoft Windows, no estará provisto por defecto de un cliente SSH, con lo cual se tendrá que conseguir uno e instalarlo. Se podrá utilizar cualquier cliente SSH para acceder a los servidores del cluster LUSITANIA, aunque se recomienda la utilización de PUTTY. PUTTY es un cliente del protocolo SSH libre y gratuito licenciado bajo la Licencia MIT. Se puede utilizar Putty para establecer conexiones SSH entre un ordenador y los servidores de acceso del cluster LUSITANIA y ejecutar proyectos y trabajos en éste. Puede descargarse Putty libremente a través de Internet, desde la siguiente dirección: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Una vez descargado el archivo putty.exe en el ordenador local del usuario se tendrá que ejecutar (no necesita realizar ningún tipo de instalación) para iniciar la conexión a los servidores del cluster LUSITANIA. Tras ejecutar putty.exe se observa la pantalla de solicitud de datos de conexión mostrada en la Fig. 4: Pag. 6 Manual de Usuario del Supercomputador LUSITANIA En esta pantalla se necesitará configurar los siguientes datos y dejar el resto por defecto: – Host Name (or IP address): nombre de servidor o dirección IP del servidor al que se quiere acceder de forma remota. En este caso ssh.cenits.es – Port: número de puerto TCP al que se quiere acceder. En el caso del protocolo SSH este puerto es el 22. – Connection type: tipo de protocolo de conexión. En este caso SSH (Secure Shell). Tras pulsar el botón Open el cliente Putty intentará conectarse al servidor que se haya introducido, en este caso ssh.cenits.es, y en la primera conexión, el cliente mostrará una alerta de seguridad: Fig 5: Alerta de seguridad de Putty Pag. 7 Manual de Usuario del Supercomputador LUSITANIA En la Fig. 5 se indica que la clave pública del servidor al que se está intentando acceder no se reconoce, y pregunta si se desea confiar en el servidor. Se contestará Si, ya que de cualquier otra manera se cancelaría el procedimiento de conexión. Una vez establecida la conexión, el sistema de login del cluster LUSITANIA presentará la pantalla de login de la consola del sistema, donde se procederá a introducir las credenciales para obtener acceso al sistema. Fig 6: Putty solicita la contraseña de acceso a LUSITANIA Tras la correcta introducción del nombre de la cuenta de usuario y contraseña, el servidor mostrará el símbolo del sistema, donde se podrán ejecutar comandos y comenzar a trabajar sobre el conjunto de máquinas que componen el cluster de supercomputación LUSITANIA. 2.3 Copia de ficheros desde GNU/Linux Una de las primeras tareas que se planteará a la hora de comenzar a ejecutar trabajos en el cluster LUSITANIA será el modo en el que se transferirá el trabajo desde los ordenadores locales del usuario hasta las máquinas que componen el cluster. Para ello se tendrán que copiar ficheros desde el ordenador local hacia los servidores de LUSITANIA y, solamente, se podrán utilizar medios electrónicos, ya que en ningún caso se dispondrá de acceso físico al supercomputador LUSITANIA. Para realizar esta tarea, en GNU/Linux se cuenta con un conjunto de herramientas que ya estarán instaladas en el sistema si se dispone del cliente de acceso remoto SSH. Pag. 8 Manual de Usuario del Supercomputador LUSITANIA Las herramientas en cuestión son scp y sftp: – scp es el cliente de copia segura sobre SSH, que permite realizar la copia interactiva de ficheros desde el ordenador local hacia los servidores de LUSITANIA. – sftp es el cliente de FTP seguro sobre SSH, que permite conexiones de forma segura al supercomputador LUSITANIA como si se estuviese accediendo a un servidor FTP estándar. La sintaxis de scp es la siguiente: $ scp <fichero local> <usuario>@<nombre de servidor>:<ruta remota> Y la de sftp es esta: $ sftp <usuario>@<nombre de servidor> Donde: – <fichero local>: es el fichero que se quiere subir al cluster – <usuario>: es el nombre de la cuenta de usuario para acceder al cluster – <nombre de servidor>: es el nombre del servidor de acceso, en el caso de LUSITANIA ssh.cenits.es – <ruta remota>: es el directorio donde se quiere depositar el fichero. Con cualquiera de estas dos herramientas se podrán subir al cluster LUSITANIA los ficheros de programas que posteriormente se ejecutarán en el supercomputador. 2.4 Copia de ficheros desde Windows A la hora de transferir los ficheros de trabajo desde el ordenador local con sistema operativo Windows hacia las máquinas del cluster LUSITANIA, se presenta el problema de que Windows no dispone de clientes del protocolo de copia segura SCP, problema que se remediará obteniendo el cliente WinSCP, aunque hay otros disponibles. WinSCP es un cliente Windows para los protocolos SCP (copia segura) y SFTP (FTP seguro) con licencia libre GNU GPL 1, y se utilizará para la transferencia segura de ficheros entre el ordenador y el cluster LUSITANIA. Se puede obtener en la siguiente dirección de Internet: http://winscp.net/eng/download.php http://www.gnu.org/copyleft/gpl.html 1 Pag. 9 Manual de Usuario del Supercomputador LUSITANIA Tras realizar la descarga de la última versión disponible del cliente WinSCP se procederá a instalarlo en el equipo ejecutando el fichero anteriormente descargado. También se puede descargar WinSCP en español, pero normalmente será una versión más antigua que la última versión en inglés. Una vez completada la instalación, se tendrá un acceso directo en el escritorio y en el menú inicio del equipo mediante el cual se podrá acceder a la siguiente pantalla de conexión: Fig 7: Pantalla de datos de conexión de WinSCP En la pantalla de conexión que se muestra en la Fig. 7, hay que introducir los siguientes datos para transferir ficheros al cluster LUSITANIA: – Host name: es el nombre de dominio de la máquina del cluster a la que se quiere conectar, ssh.cenits.es – Port number: puerto TCP para el protocolo SCP, normalmente 22 – User name: es el nombre de usuario facilitado por el equipo técnico del supercomputador LUSITANIA – Password: es la contraseña que se obtuvo junto con el nombre de usuario – Protocol: aquí se elegirá entre SCP y SFTP, siendo cualquiera de los dos transparente al usuario, ya que los comandos se ejecutarán en segundo plano, la elección por defecto es SFTP. El cliente WinSCP nos ofrece la posibilidad de almacenar los datos de inicio de sesión en la configuración del cliente, de forma que no haya que repetir los mismos datos cada vez que se quiera establecer una conexión a Pag. 10 Manual de Usuario del Supercomputador LUSITANIA LUSITANIA. Para ello se hará uso del botón Save, y se podrá guardar la sesión. La primera vez que se intente conectar a un servidor, y al igual que hace Putty, el cliente WinSCP mostrará un mensaje de advertencia: Fig 8: Comprobación de seguridad de WinSCP En la Fig. 8, el cliente WinSCP pregunta si se confía en que la conexión a establecer es contra el servidor al que realmente se quiere conectar. Se responderá Yes y el cliente procederá a añadir la clave pública del servidor a la caché de WinSCP y no volverá a preguntarnos; seguidamente, el cliente continuará con los pasos de conexión y, una vez establecida, presentará una ventana como la mostrada en la Fig. 9: Fig 9: Ventana principal de WinSCP con directorios local y remoto Pag. 11 Manual de Usuario del Supercomputador LUSITANIA En la Fig. 9 se puede observar que el panel de la izquierda (área 1) se corresponde con una carpeta local del ordenador del usuario, mientras que el panel de la derecha (área 2) se corresponde con el directorio personal en el cluster de supercomputación LUSITANIA. A partir de esta ventana se podrán transferir, copiar, renombrar o borrar los archivos de trabajo que se necesiten, depositar código de trabajo en los discos del cluster de supercomputación y descargar en el equipo los resultados de los trabajos ejecutados por el supercomputador LUSITANIA. Pag. 12 Manual de Usuario del Supercomputador LUSITANIA 3 Ejecución de trabajos en LUSITANIA A lo largo de esta sección se instruirá en el manejo del software Platform LSF, el gestor de colas instalado en el cluster de supercomputación LUSITANIA. 3.1 El gestor de trabajos LSF Platform LSF es el software que gestiona y optimiza dónde se ejecutarán los proyectos en base a los recursos informáticos de LUSITANIA, permitiendo un eficiente uso de los mismos mediante técnicas de balanceo de carga. Se adapta perfectamente a la arquitectura de memoria compartida de los nodos de cómputo SuperDome y es capaz de sacarles el máximo partido. También permite conocer en todo momento el estado del cluster y elige de forma adecuada dónde se ejecutaran los siguientes trabajos. Mediante la utilización de LSF, y a través de los siguientes apartados, se descubrirá el método de trabajo del gestor de colas y su organización, de forma que se aprenderá a lanzar trabajos al cluster LUSITANIA y a obtener diversa información sobre el estado de los trabajos. 3.2 Las colas de trabajos El software Platform LSF permite trabajar siguiendo el paradigma de colas, donde los trabajos que se lanzan al supercomputador LUSITANIA se alojarán, según su tipo, en una u otra cola y, a su vez, la cola en la que se encuentren determinará sobre cuál de los equipos del cluster LUSITANIA se realizará finalmente la ejecución del trabajo. Esta aproximación permite un máximo aprovechamiento de los recursos de cómputo disponibles, ya que cada máquina del cluster tendrá capacidad de ejecución de trabajos de acuerdo a sus características físicas (número de procesadores, memoria total, espacio de swap y en disco...), así como permitirá el máximo aprovechamiento de los sistemas en términos de tiempo, ya que al finalizar una tarea podrá lanzar la siguiente en la máquina cuyos recursos hayan sido liberados. Con este propósito, el cluster LUSITANIA dispone de varias colas de trabajos diseñadas para ofrecer el máximo rendimiento a tipos distintos de trabajos: – short: es la cola de compilación, pues está preparada para recibir trabajos que tardarán poco tiempo y no consumirán demasiados recursos de CPU. – priority: es la cola de pruebas, y es el lugar al que se tendrán que enviar todos esos trabajos que se lanzan en los primeros usos del cluster LUSITANIA o cuando se quieran recoger pequeños resultados parciales de los proyectos. Pag. 13 Manual de Usuario del Supercomputador LUSITANIA – normal: es la cola de trabajo, es decir, por defecto en la que entran los trabajos para ejecutarlos en el cluster LUSITANIA. Ddesde esta cola se lanzan normalmente trabajos a los nodos de cómputo. – idle: es la cola de baja actividad, que recibe trabajos poco urgentes y/o de poca carga de CPU, que se ejecutarán sólo cuando haya recursos suficientes para atender a las peticiones del resto de las colas. Si se profundiza un poco más en el sistema veremos que hay algunas otras colas de tipos especiales de reserva, para trabajos nocturnos, para los administradores de las máquinas, etc., pero en principio sólo se debe prestar atención a las expuestas anteriormente. 3.3 Lanzar un trabajo A la hora de ejecutar los trabajos en el cluster de supercomputación LUSITANIA, se debe tener en cuenta que se ha de utilizar el gestor de colas de LSF, con lo que habrá que enviar los trabajos a la cola de ejecución utilizando el comando bsub. Si el proyecto está programado utilizando las librerías MPI, se tendrán que lanzar los proyectos con el comando mpirun, combinado con el uso obligatorio de bsub. A continuación se detallan los parámetros más habituales de bsub y de mpirun, y después se muestran una serie de ejemplos: $ bsub -I -n <NCPU> -q <cola de ejecución> -P <nombre proyecto> -J <nombre trabajo> -o <fichero de salida> -e <fichero de error> <comandos a ejecutar> Parámetro Descripción -I Activa el modo interactivo, mostrando la salida del trabajo a medida que se va ejecutando. -n <NCPU> Especifica el número de procesadores a utilizar para ejecutar el trabajo. -q <cola de ejecución> Indica la cola de ejecución a utilizar. -P <nombre proyecto> Especifica un nombre para el proyecto. -J <nombre trabajo> Especifica un nombre para el trabajo. -o <fichero de salida> Especifica un fichero de salida para la salida estándar del trabajo. -e <fichero de error> Especifica un fichero de error para la salida de error del trabajo. Pag. 14 Manual de Usuario del Supercomputador LUSITANIA <comandos a ejecutar> Listado de comandos y parámetros del trabajo a ejecutar. $ mpirun -np <NCPU> <programa en MPI> Parámetro Descripción -np <NCPU> Especifica el número de procesos de MPI que se lanzarán en paralelo para ejecutar el trabajo. Hay que señalar la importancia de especificar correctamente el número de procesos paralelos que se requieren para la ejecución del proyecto, tanto en el comando bsub (parámetro -n), como en mpirun (parámetro -np), ya que si no se especifican correctamente, el gestor de colas LSF no contabilizará el trabajo de forma correcta, y se pueden dar situaciones de aprovechamiento incorrecto de los recursos del cluster LUSITANIA. A continuación se presentan algunos ejemplos de trabajos enviados a las colas de ejecución de LSF: $ bsub bzImage -I -n 8 -q short -P linux_kernel -J build_kernel make El comando anterior envía a la cola short de LSF un trabajo llamado build_kernel del proyecto linux_kernel para que se ejecute de modo interactivo en 8 procesadores el comando make bzImage que realiza una compilación a un archivo comprimido del núcleo de Linux. $ bsub -n 128 -q normal -o fsalida.%J -e ferror.%J mpirun -np 128 ./matmul_mpi -n 10000 Este comando encola un trabajo MPI en la cola normal y solicita utilizar 128 procesadores, redirigiendo su salida al fichero fsalida.%J y su salida de error al fichero ferror.%J, donde %J es el número de trabajo que le asigna el gestor LSF, y ejecutando el programa MPI matmul_mpi con 128 procesos de ejecución y el valor del parámetro n, propio del programa establecido a 10000. $ bsub -n 2 -q priority -J test_modelo mpirun -np 2 ./test1 Finalmente, el comando anterior envía a la cola priority un trabajo llamado test_modelo para que se ejecute en 2 procesos y 2 procesadores, como Pag. 15 Manual de Usuario del Supercomputador LUSITANIA test para un modelo más amplio que posteriormente se ejecutaría en la cola normal. 3.4 Estado de un trabajo Una vez que se ha lanzado un trabajo, LSF permite conocer su progreso, la salida que está produciendo o el tiempo que lleva en ejecución, para ello se pueden utilizar los siguientes comandos: – bjobs: permite conocer qué trabajos se están ejecutando, dónde, por quién y cuánto tiempo llevan en ejecución. Se pueden utilizar los parámetros -a para mostrar todos los trabajos, -u para especificar qué usuario (con all para todos los usuarios del sistema) y -w para mostrar la salida ampliada. – bpeek: muestra la salida del último trabajo que se esté ejecutando, o si se especifica un ID de trabajo, la salida del trabajo correspondiente a ese ID. Puede especificarse el parámetro -f para que se muestre la salida continua. – bhist: con este comando se pueden listar los trabajos en ejecución, o con el parámetro -a todos los que se hayan ejecutado con el nombre de usuario en el cluster. 3.5 Operaciones sobre trabajos Tras lanzar un trabajo a la cola, todavía se pueden realizar una serie de operaciones sobre él, tales como anular su ejecución, suspender y reanudarlo o cambiar el orden de ejecución que ocupa en la cola con los siguiente comandos: – bkill: permite eliminar un proceso que se esté ejecutando o esperando en la cola de procesos; sólo se tiene que pasar como parámetro el ID del proceso cuya ejecución se quiera abortar. – bstop: se utilizará cuando se quiera suspender la ejecución de un trabajo temporalmente sin finalizarlo, y recibe como parámetro el identificador del trabajo a detener. – bresume: complementa al comando anterior y permite reanudar un trabajo que haya sido suspendido con bstop con tan sólo proporcionar el ID del trabajo a reanudar como parámetro. – btop: posiciona en primer lugar de la cola de ejecución de un usuario el trabajo cuyo ID se ha pasado como parámetro. – bbot: establece el trabajo cuyo ID le pasamos por parámetro como el último en la cola de ejecución del usuario. – Pag. 16 Manual de Usuario del Supercomputador LUSITANIA 3.6 Tabla de estados de un trabajo Los estados en los que se puede encontrar un trabajo que se han lanzado a la cola LSF con el comando bsub pueden observarse si se consulta el estado de un trabajo con bjobs -a, y pueden ser los siguientes: Estado Descripción PEND Pendiente de ejecución, planificado en una cola y preparado para ser ejecutado. RUN Enviado a un host y ejecutándose. DONE Finalizado correctamente, con un valor de salida 0. EXIT Finalizado incorrectamente, el proceso ha devuelto un valor de salida distinto de 0. PSUSP Proceso suspendido por su propietario o un administrador de LSF mientras se encontraba en estado PEND. USUSP Proceso suspendido por su propietario o un administrador de LSF mientras se estaba ejecutando (RUN). SSUSP Proceso suspendido por el sistema LSF (el comando bjobs muestra la razón por la que el sistema ha suspendido la ejecución del proceso). Nota: si quiere enviarnos cualquier sugerencia puede hacerlo a través de la dirección de correo electrónico [email protected] Pag. 17