Как мы можем настроить крутящий момент с несколькими узлами для рабочей станции?

У меня есть рабочая станция с 48-ядерным процессором + 4 графических процессора NVIDIA. Я собираюсь сделать эту машину небольшим кластером, который содержит:

4 узла 12 ядра +1 ЦП / узел

Я установил Torque на этой машине с помощью команды:

./configure --without-tcl --enable-nvidia-gpus --prefix=/soft/torque-5.1.1 --with-nvml-include=/usr/local/cuda/gpukit/usr/include/nvidia/gdk --with-nvml-lib=/usr/local/cuda/lib64

Тогда я установил /etc/hosts как:

127.0.0.1       localhost cudaC
127.0.0.1       localhost cudaC1
127.0.0.1       localhost cudaC2
127.0.0.1       localhost cudaC3
xxx.xxx.xxx.x   torqueserver

после этого я добавил следующее /var/spool/torque/server_priv/nodes:

cudaC np=12 gpus=4
cudaC1 np=12 gpus=1
cudaC2 np=12 gpus=1
cudaC3 np=12 gpus=1

Затем запустите pbsserver:

#cd /soft/torque-5.1.1/sbin
#./pbs_sever
#./pbs_sched
#./ pbs_mom

проверьте статус с помощью команды pbsnodes:

cudaC                                                                                                                                                         
     state = free                                                                                                                                             
     power_state = Running                                                                                                                                    
     np = 12                                                                                                                                                  
     ntype = cluster                                                                                                                                          
     status = rectime=1435734456,cpuclock=Fixed,varattr=,jobs=,state=free,netload=136578103,gres=,loadave=0.00,ncpus=48,physmem=65982324kb,availmem=86084596kb,totmem=86954864kb,idletime=72,nusers=2,nsessions=5,sessions=1519 2350 6570 6781 11017,uname=Linux cudaC 3.16.7-21-desktop #1 SMP PREEMPT Tue Apr 14 07:11:37 UTC 2015 (93c1539) x86_64,opsys=linux                                                                                                                         
     mom_service_port = 15002                                                                                                                                 
     mom_manager_port = 15003                                                                                                                                 
     gpus = 4                                                                                                                                                 
     gpu_status = gpu[3]=gpu_id=0000:83:00.0;gpu_pci_device_id=398594270;gpu_pci_location_id=0000:83:00.0;gpu_product_name=Graphics Device;gpu_display=Enabled;gpu_fan_speed=22%;gpu_memory_total=12287 MB;gpu_memory_used=23 MB;gpu_mode=Default;gpu_state=Unallocated;gpu_utilization=0%;gpu_memory_utilization=0%;gpu_temperature=43 C,gpu[2]=gpu_id=0000:82:00.0;gpu_pci_device_id=398594270;gpu_pci_location_id=0000:82:00.0;gpu_product_name=Graphics Device;gpu_display=Enabled;gpu_fan_speed=22%;gpu_memory_total=12287 MB;gpu_memory_used=23 MB;gpu_mode=Default;gpu_state=Unallocated;gpu_utilization=0%;gpu_memory_utilization=0%;gpu_temperature=43 C,gpu[1]=gpu_id=0000:03:00.0;gpu_pci_device_id=398594270;gpu_pci_location_id=0000:03:00.0;gpu_product_name=Graphics Device;gpu_display=Enabled;gpu_fan_speed=22%;gpu_memory_total=12287 MB;gpu_memory_used=23 MB;gpu_mode=Default;gpu_state=Unallocated;gpu_utilization=0%;gpu_memory_utilization=0%;gpu_temperature=45 C,gpu[0]=gpu_id=0000:02:00.0;gpu_pci_device_id=398594270;gpu_pci_location_id=0000:02:00.0;gpu_product_name=Graphics Device;gpu_display=Enabled;gpu_fan_speed=22%;gpu_memory_total=12287 MB;gpu_memory_used=45 MB;gpu_mode=Default;gpu_state=Unallocated;gpu_utilization=0%;gpu_memory_utilization=1%;gpu_temperature=39 C,driver_ver=346.46,timestamp=Wed Jul  1 09:07:36 2015                                                                                                        

cudaC1                                                                                                                                                        
     state = down                                                                                                                                             
     power_state = Running
     np = 12
     ntype = cluster
     mom_service_port = 15002
     mom_manager_port = 15003
     gpus = 1

cudaC2
     state = down
     power_state = Running
     np = 12
     ntype = cluster
     mom_service_port = 15002
     mom_manager_port = 15003
     gpus = 1

cudaC3
     state = down
     power_state = Running
     np = 12
     ntype = cluster
     mom_service_port = 15002
     mom_manager_port = 15003
     gpus = 1

Кажется, что только один узел работает найти и все 4 графических процессора были распределены на этот узел.

Мне просто интересно, как мы можем решить эту проблему?

1 ответ

Мой ответ, возможно, не касается вашего вопроса напрямую, но я прошел всю эту тему пару лет назад, и я предлагаю вам использовать slurm вместо крутящего момента. Насколько я помню, крутящий момент не использует переменные среды CUDA_VISIBLE_DEVICES для планирования процессов без каких-либо дополнительных исправлений, но именно так и задумывалось NVIDIA (поэтому большинство приложений ищут CUDA_VISIBLE_DEVICES).

Вместо этого Slurm поставляется со встроенной поддержкой gpu через общие ресурсы. В смешанной среде вы даже можете определить несколько типов карт и указать, что следует использовать для вашей работы.

Помимо наших 20 карт, я видел пару больших GPU-кластеров, и все они использовали slurm.

Другие вопросы по тегам