Servidores de computación GPGPU

Esta é unha revisión antiga do documento!


Servidores de computación GPGPU

Descrición do servizo

Seis 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 18.04
      • Slurm (de uso obrigatorio para a xestión de traballos)
      • CUDA 9.2 (repositorio oficial de Nvidia)
      • Docker-ce 18.06 (repositorio oficial de Docker)
      • Nvidia-docker 2.0.3 (repositorio oficial de Nvidia)
      • Nvidia cuDNN v7.2.1 for CUDA 9.2
      • 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)
  • Sistema operativo Ubuntu 18.04
    • Slurm (de uso obrigatorio para a xestión de traballos)
    • CUDA 9.2 (repositorio oficial de Nvidia)
    • Docker-ce 18.06 (repositorio oficial de Docker)
    • Nvidia-docker 2.0.3 (repositorio oficial de Nvidia)
    • Nvidia cuDNN v7.2.1 for CUDA 9.2
    • Intel Parallel Studio Professional for C++ 2015 (licenza única, avisa se vas usalo!)
    • ROS Melodic Morenia (repositorio oficial de ROS)
  • 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
  • ctgpgpu6:
    • Servidor SIE LADON 4214
    • 2 procesadores Intel Xeon Silver 4214
    • 192 GB de memoria RAM (12 DDR4 DIMM a 2933MHz)
    • Nvidia Quadro P6000 24GB (2018)
    • Sistema operativo Centos 7.7

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:22
  • ctgpgpu3.inv.usc.es - 172.16.242.93:22
  • ctgpgpu4.inv.usc.es - 172.16.242.201:22
  • ctgpgpu5.inv.usc.es - 172.16.242.202: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