This translation is older than the original page and might be outdated. See what has changed.

Servidores de computación GPGPU

Esta é unha revisión antiga do documento!


Servidores de computación GPGPU

Descripción del servicio

Dos servidores con gráficas:

  • ctgpgpu1:
    • Servidor Supermicro X8DTG-D
    • 2 procesadores Intel Xeon E5520
    • 10 GB de memoria RAM (5 DIMM a 1333 MHz)
    • 2 tarjetas Nvidia GF100 [Tesla S2050]
      • Algunas de las tarjetas se encuentra temporalmente en otro servidor para unas pruebas. Por lo tanto, de momento sólo hay una tarjeta disponible.
    • Sistema operativo Ubuntu 10.04
      • CUDA versión 5.0
  • ctgpgpu2:
    • Servidor Dell Precision R5400
    • 2 procesadores Intel Xeon E5440
    • 8 GB de memoria RAM (4 DDR2 FB-DIMM a 667 MHz)
    • 1 tarjeta Nvidia GK104 [Geforce GTX 680]
    • Sistema operativo Ubuntu 14.04
      • Slurm para la gestión de colas de trabajo de uso obligatorio.
      • CUDA versión 8.0
      • OpenBLAS
      • NVIDIA cuDNN v4 Release Candidate for CUDA 7 and later (en /opt/cudnn)
      • NVIDIA DIGITS 3.0.0
      • Lapack 3.5.0
      • Magma 1.7.0 (compilado con OpenBLAS)
      • Caffe git@03a84bf (cercana a 1.0 rc-2, compilado con OpenBLAS y soporte cuDNN, en /opt/caffe)
      • Intel Parallel Studio Professional for C++ 2015 (licencia única, ¡avisa si vas a usarlo!)
  • ctgpgpu3:
    • Servidor PowerEdge R720
    • 1 procesador Intel Xeon E52609
    • 16 GB de memoria RAM (1 DDR3 DIMM a 1600MHz)
    • Conectado a un cajón de gráficas con:
      • Gigabyte GeForce GTX Titan 6GB (2014)
      • Nvidia Titan X Pascal 12GB (2016)
      • Nvidia Titan Xp 12GB (2017)
    • Sistema operativo Ubuntu 14.04
      • Slurm para la gestión de colas de trabajo de uso obligatorio.
      • CUDA versión 8.0
      • NVIDIA cuDNN v5 for CUDA 7.5 (en /opt/cudnn)
      • Cudarray (compilado usando cuDNN, versión de junio de 2016)
      • Magma 1.4.1 beta
      • Intel Parallel Studio Professional for C++ 2015 (licencia única, ¡avisa si vas a usarlo!)
  • ctgpgpu4:
    • Servidor PowerEdge R730
    • 2 procesadores Intel Xeon E52623v4
    • 128 GB de memoria RAM (4 DDR4 DIMM a 2400MHz)
    • 2 tarxeta Nvidia GP102GL [Tesla P40]
    • Sistema operativo Centos 7.4
      • docker 17.09 y nvidia-docker 1.0.1
      • OpenCV 2.4.5
      • Dliv, Caffe, Caffe2 y pycaffe
      • Python 3.4: cython, easydict, sonnet
      • TensorFlow
  • ctgpgpu5:
    • Servidor PowerEdge R730
    • 2 procesadores Intel Xeon E52623v4
    • 128 GB de memoria RAM (4 DDR4 DIMM a 2400MHz)
    • 2 tarxeta Nvidia GP102GL [Tesla P40]
    • Sistema operativo Ubuntu 16.04
      • Slurm para a xestión de colas de traballo de uso obrigatorio.
      • Modules para la gestión de versiones de bibliotecas.
      • CUDA versión 9.0
      • OpenCV 2.4 y 3.4
      • Atlas 3.10.3
      • MAGMA
      • TensorFlow
      • Caffee

Alta en el servicio

Todos los usuarios del CiTIUS pueden acceder a este servicio, pero para eso deben solicitarlo previamente a través del formulario de incidentes. Mientras no lo hagan, recibirán un mensaje de contraseña incorrecta.

Manual de usuario

Conexión con los servidores

Para conectarse a los servidores, debes hacerlo a través de SSH. El nombre y las direcciones IP de los servidores son las siguientes:

  • ctgpgpu1.inv.usc.es - 172.16.242.91:1301
  • ctgpgpu2.inv.usc.es - 172.16.242.92:1301
  • ctgpgpu3.inv.usc.es - 172.16.242.93:1301
  • ctgpgpu4.inv.usc.es - 172.16.242.201:22
  • ctgpgpu5.inv.usc.es - 172.16.242.201:22

La conexión solo está disponible desde la red del centro. Para conectarse desde otras localizaciones o desde la red de la RAI es necesario hacer uso de la VPN o de la parasela SSH.

Apagado/encendido de los equipos

Los servidores se apagan para ahorrar energía al no detectar actividad alguna durante una hora. Para encenderlos de nuevo, puedes hacer uso de la herramienta de encendido remoto.

Los servidores entienden como actividad:

  • cualquier sesión SSH abierta,
  • cualquier sesión de screen sin rematar

Gestión de los trabajos con SLURM

En ctgpgpu2, en ctgpgpu3 y en ctgpgpu5 hay un gestor de colas instalado para enviar trabajos y así evitar conflictos entre procesos, ya que no se deben ejecutar dos trabajos al mismo tiempo.

Para enviar un trabajo a la cola se utiliza el comando srun:

srun programa_cuda argumentos_programa_cuda

El proceso srun espera a que el trabajo se ejecute para devolver el control al usuario. Si no se quiere esperar, se pueden utilizar gestores de sesiones de consola como screen (hay disponible una guía en vídeo muy sencilla de seguir), y así poder dejar el trabajo a la espera y desconectar la sesión sin preocuparse y recuperar la salida de consola más adelante.

Alternativamente, se puede utilizar nohup y pasar el trabajo a segundo plano con &. En este caso la salida se guarda en el archivo nohup.out:

nohup srun programa_cuda argumentos_programa_cuda &

Para ver el estado de la cola se utiliza el comando squeue. El comando muestra una salida similar a esta:

JOBID PARTITION     NAME     USER  ST       TIME  NODES NODELIST(REASON)
9  servidore ca_water pablo.qu    PD       0:00      1 (Resources)
10 servidore ca_water pablo.qu    PD       0:00      1 (Priority)
11 servidore ca_water pablo.qu    PD       0:00      1 (Priority)
12 servidore ca_water pablo.qu    PD       0:00      1 (Priority)
13 servidore ca_water pablo.qu    PD       0:00      1 (Priority)
14 servidore ca_water pablo.qu    PD       0:00      1 (Priority)
 8 servidore ca_water pablo.qu     R       0:11      1 ctgpgpu2

También se puede obtener una vista interactiva, actualizada cada segundo, con el comando smap:

smap -i 1