Servidores de computación GPGPU

Esta é unha revisión antiga do documento!


Servidores de computación GPGPU

Descrición do servizo

Cinco 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 tarxetas Nvidia GF100 [Tesla S2050]
      • Unhas das tarxetas atópase temporalmente noutro servidor para unhas probas. Polo tanto, polo de agora só hai unha tarxeta dispoñible.
    • 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 tarxeta Nvidia GK104 [Geforce GTX 680]
    • Sistema operativo Ubuntu 14.04
      • Slurm para a xestión de colas de traballo de uso obrigatorio.
      • 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 e soporte cuDNN, en /opt/caffe)
      • Intel Parallel Studio Professional for C++ 2015 (licenza única, avisa se vas usalo!)
  • ctgpgpu3:
    • Servidor PowerEdge R720
    • 1 procesador Intel Xeon E52609
    • 16 GB de memoria RAM (1 DDR3 DIMM a 1600MHz)
    • Conectado a un caixó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 a xestión de colas de traballo de uso obrigatorio.
      • 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 (licenza única, avisa se vas usalo!)
  • ctgpgpu4:
    • Servidor PowerEdge R730
    • 2 procesadores Intel Xeon E52623v4
    • 128 GB de memoria RAM (4 DDR4 DIMM a 2400MHz)
    • 2 tarxeta Nvidia GP102GL 24GB [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 24GB [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 no servizo

Todos os usuarios do CITIUS poden acceder a este servizo, pero para iso deben solicitalo previamente a través do formulario de incidencias. Mentres non o fagan, recibirán unha mensaxe de contrasinal incorrecto.

Manual de usuario

Conexión cos servidores

Para conectarse ós servidores, debes facelo a través de SSH. O nome e as direccións IP dos servidores son as seguintes:

  • 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

A conexión só está dispoñible dende a rede do centro. Para conectarse dende outras localizacións ou dende a rede da RAI é preciso facer uso da VPN ou da parasela SSH.

Apagado/acendido dos equipos

Os servidores apáganse para aforrar enerxía ó non detectar actividade algunha durante unha hora. Para acendelos de novo, podes facer uso da ferramenta de acendido remoto.

Os servidores entenden como actividade:

  • calquera sesión SSH aberta,
  • calquera sesión de screen sen rematar

Xestión dos traballos con SLURM

En ctgpgpu2,en ctgpgpu3 e en ctgpgpu5 hai un xestor de colas instalado para enviar traballos e así evitar conflitos entre procesos, xa que non se deben executar dous traballos ó mesmo tempo.

Para enviar un traballo á cola utilízase o comando srun:

srun programa_cuda argumentos_programa_cuda

O proceso srun agarda a que o traballo se execute para devolver o control ó usuario. Se non se quere agardar, pódense utilizar xestores de sesións de consola coma screen (hai dispoñible unha guía en vídeo moi sinxela de seguir), e así poder deixar o traballo á espera e desconectar a sesión sen preocuparse e recuperar a saída de consola máis adiante.

Alternativamente, pódese utilizar nohup e pasar o traballo a segundo plano con &. Neste caso a saída gárdase no arquivo nohup.out:

nohup srun programa_cuda argumentos_programa_cuda &

Para ver o estado da cola utilízase o comando squeue. O comando mostra unha saída 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

Tamén pode obterse unha vista interactiva, actualizada cada segundo, co comando smap:

smap -i 1