অন্তর্নির্মিত প্লাগইন সহ এসএলআরএম চলমান একটি ক্লাস্টারে জিপিইউগুলিকে জেনেরিক সংস্থান হিসাবে অনুরোধ করা কেন ব্যর্থ হয়?


10

দাবি অস্বীকার: আমি প্রাসঙ্গিক কনফিগারেশন সম্পর্কিত সমস্ত তথ্য সরবরাহ করার চেষ্টা করেছি বলে এই পোস্টটি বেশ দীর্ঘ।

স্থিতি এবং সমস্যা:

আমি একটি জিপিইউ ক্লাস্টার প্রশাসক এবং আমি চাকরি পরিচালনার জন্য স্লর্ম ব্যবহার করতে চাই। দুর্ভাগ্যক্রমে, আমি স্লরমের সংশ্লিষ্ট জেনেরিক রিসোর্স প্লাগইন ব্যবহার করে জিপিইউগুলিকে অনুরোধ করতে পারি না।

দ্রষ্টব্য: পরীক্ষা.শ হ'ল একটি ছোট স্ক্রিপ্ট যা পরিবেশগত পরিবর্তনশীল CUDA_VISIBLE_DEVICES মুদ্রণ করে।

দিয়ে কাজ চালানো শেষ --gres=gpu:1হয় না

srun -n1 --gres=gpu:1 test.shনিম্নলিখিত ত্রুটিতে চলমান ফলাফল:

srun: error: Unable to allocate resources: Requested node configuration is not available

লগইন করুন:

gres: gpu state for job 83
    gres_cnt:4 node_cnt:0 type:(null)
    _pick_best_nodes: job 83 never runnable
    _slurm_rpc_allocate_resources: Requested node configuration is not available

সাথে কাজ চালানো --gres=gram:500সম্পূর্ণ হয়

আমি যদি ফোন করি srun -n1 --gres=gram:500 test.shতবে চাকরীটি চলে এবং প্রিন্ট করে

CUDA_VISIBLE_DEVICES=NoDevFiles

লগইন করুন:

sched: _slurm_rpc_allocate_resources JobId=76 NodeList=smurf01 usec=193
debug:  Configuration for job 76 complete
debug:  laying out the 1 tasks on 1 hosts smurf01 dist 1
job_complete: JobID=76 State=0x1 NodeCnt=1 WIFEXITED 1 WEXITSTATUS 0
job_complete: JobID=76 State=0x8003 NodeCnt=1 done

এইভাবে স্লর্মটি srunঅনুরোধ করা জেনেরিক রিসোর্সগুলি ব্যবহার করে কাজ চালানোর জন্য সঠিকভাবে কনফিগার করা হয়েছে বলে মনে হয় --gresতবে কোনও কারণে জিপিএসকে স্বীকৃতি দেয় না।

আমার প্রথম ধারণাটি ছিল জিপিইউ জেনেরিক রিসোর্সের জন্য অন্য নামটি ব্যবহার করা যেমন অন্যান্য জেনেরিক সংস্থানগুলি কাজ করে বলে মনে হয় তবে আমি জিপিইউ প্লাগইন ধরে রাখতে চাই।

কনফিগারেশন

এই ক্লাস্টারে দুটিরও বেশি ক্রীতদাস হোস্ট রয়েছে তবে স্বচ্ছতার জন্য আমি দুটি আলাদাভাবে কনফিগার করা দুটি ক্রীতদাস হোস্ট এবং নিয়ামক হোস্টকে আটকে রাখব: প্যাপা (নিয়ামক), স্মুরফ01 এবং স্মুরফ02.´

slurm.conf

স্লর্ম কনফিগারেশনের জেনেরিক-রিসোর্স-প্রাসঙ্গিক অংশগুলি:

...
TaskPlugin=task/cgroup
...
GresTypes=gpu,ram,gram,scratch
...
NodeName=smurf01 NodeAddr=192.168.1.101 Feature="intel,fermi" Boards=1 SocketsPerBoard=2 CoresPerSocket=6 ThreadsPerCore=2 Gres=gpu:tesla:8,ram:48,gram:no_consume:6000,scratch:1300
NodeName=smurf02 NodeAddr=192.168.1.102 Feature="intel,fermi" Boards=1 SocketsPerBoard=2 CoresPerSocket=6 ThreadsPerCore=1 Gres=gpu:tesla:8,ram:48,gram:no_consume:6000,scratch:1300
...

দ্রষ্টব্য: র‌্যাম জিবিতে, গ্রাম এমবিতে এবং আবার জিবিতে স্ক্র্যাচ।

আউটপুট scontrol show node

NodeName=smurf01 Arch=x86_64 CoresPerSocket=6
   CPUAlloc=0 CPUErr=0 CPUTot=24 CPULoad=0.01 Features=intel,fermi
   Gres=gpu:tesla:8,ram:48,gram:no_consume:6000,scratch:1300
   NodeAddr=192.168.1.101 NodeHostName=smurf01 Version=14.11
   OS=Linux RealMemory=1 AllocMem=0 Sockets=2 Boards=1
   State=IDLE ThreadsPerCore=2 TmpDisk=0 Weight=1
   BootTime=2015-04-23T13:58:15 SlurmdStartTime=2015-04-24T10:30:46
   CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s

NodeName=smurf02 Arch=x86_64 CoresPerSocket=6
   CPUAlloc=0 CPUErr=0 CPUTot=12 CPULoad=0.01 Features=intel,fermi
   Gres=gpu:tesla:8,ram:48,gram:no_consume:6000,scratch:1300
   NodeAddr=192.168.1.102 NodeHostName=smurf02 Version=14.11
   OS=Linux RealMemory=1 AllocMem=0 Sockets=2 Boards=1
   State=IDLE ThreadsPerCore=1 TmpDisk=0 Weight=1
   BootTime=2015-04-23T13:57:56 SlurmdStartTime=2015-04-24T10:24:12
   CurrentWatts=0 LowestJoules=0 ConsumedJoules=0
   ExtSensorsJoules=n/s ExtSensorsWatts=0 ExtSensorsTemp=n/s

smurf01 কনফিগারেশন

জিপিইউ

 > ls /dev | grep nvidia
nvidia0
... 
nvidia7
 > nvidia-smi | grep Tesla
|   0  Tesla M2090         On   | 0000:08:00.0     Off |                    0 |
... 
|   7  Tesla M2090         On   | 0000:1B:00.0     Off |                    0 |
...

gres.conf

Name=gpu Type=tesla File=/dev/nvidia0 CPUs=0
Name=gpu Type=tesla File=/dev/nvidia1 CPUs=1
Name=gpu Type=tesla File=/dev/nvidia2 CPUs=2
Name=gpu Type=tesla File=/dev/nvidia3 CPUs=3
Name=gpu Type=tesla File=/dev/nvidia4 CPUs=4
Name=gpu Type=tesla File=/dev/nvidia5 CPUs=5
Name=gpu Type=tesla File=/dev/nvidia6 CPUs=6
Name=gpu Type=tesla File=/dev/nvidia7 CPUs=7
Name=ram Count=48
Name=gram Count=6000
Name=scratch Count=1300

smurf02 কনফিগারেশন

জিপিইউ

স্মুরফ01 হিসাবে একই কনফিগারেশন / আউটপুট।

স্মারফ02 এ gres.conf

Name=gpu Count=8 Type=tesla File=/dev/nvidia[0-7]
Name=ram Count=48
Name=gram Count=6000
Name=scratch Count=1300

দ্রষ্টব্য: ডিমনগুলি পুনরায় চালু করা হয়েছে, মেশিনগুলি পুনরায় বুট করা হয়েছে। স্লর্ম এবং জব জমা দেওয়ার ব্যবহারকারীর স্লেভ এবং কন্ট্রোলার নোডগুলিতে একই আইডি / গ্রুপ রয়েছে এবং মুং প্রমাণীকরণ সঠিকভাবে কাজ করছে।

লগ আউটপুট

আমি DebugFlags=Gresslurm.conf ফাইলে যুক্ত করেছি এবং GPU গুলি প্লাগইন দ্বারা স্বীকৃত বলে মনে হচ্ছে:

নিয়ামক লগ

gres / gpu: state for smurf01
   gres_cnt found : 8 configured : 8 avail : 8 alloc : 0
   gres_bit_alloc :
   gres_used : (null)
   topo_cpus_bitmap[0] : 0
   topo_gres_bitmap[0] : 0
   topo_gres_cnt_alloc[0] : 0
   topo_gres_cnt_avail[0] : 1
   type[0] : tesla
   topo_cpus_bitmap[1] : 1
   topo_gres_bitmap[1] : 1
   topo_gres_cnt_alloc[1] : 0
   topo_gres_cnt_avail[1] : 1
   type[1] : tesla
   topo_cpus_bitmap[2] : 2
   topo_gres_bitmap[2] : 2
   topo_gres_cnt_alloc[2] : 0
   topo_gres_cnt_avail[2] : 1
   type[2] : tesla
   topo_cpus_bitmap[3] : 3
   topo_gres_bitmap[3] : 3
   topo_gres_cnt_alloc[3] : 0
   topo_gres_cnt_avail[3] : 1
   type[3] : tesla
   topo_cpus_bitmap[4] : 4
   topo_gres_bitmap[4] : 4
   topo_gres_cnt_alloc[4] : 0
   topo_gres_cnt_avail[4] : 1
   type[4] : tesla
   topo_cpus_bitmap[5] : 5
   topo_gres_bitmap[5] : 5
   topo_gres_cnt_alloc[5] : 0
   topo_gres_cnt_avail[5] : 1
   type[5] : tesla
   topo_cpus_bitmap[6] : 6
   topo_gres_bitmap[6] : 6
   topo_gres_cnt_alloc[6] : 0
   topo_gres_cnt_avail[6] : 1
   type[6] : tesla
   topo_cpus_bitmap[7] : 7
   topo_gres_bitmap[7] : 7
   topo_gres_cnt_alloc[7] : 0
   topo_gres_cnt_avail[7] : 1
   type[7] : tesla
   type_cnt_alloc[0] : 0
   type_cnt_avail[0] : 8
   type[0] : tesla
...
gres/gpu: state for smurf02
   gres_cnt found:TBD configured:8 avail:8 alloc:0
   gres_bit_alloc:
   gres_used:(null)
   type_cnt_alloc[0]:0
   type_cnt_avail[0]:8
   type[0]:tesla

স্লেভ লগ

Gres Name = gpu Type = tesla Count = 8 ID = 7696487 File = / dev / nvidia[0 - 7]
...
gpu 0 is device number 0
gpu 1 is device number 1
gpu 2 is device number 2
gpu 3 is device number 3
gpu 4 is device number 4
gpu 5 is device number 5
gpu 6 is device number 6
gpu 7 is device number 7

অনুরোধ করলে কী হয় --gres=gpu:tesla:1?
এনএন উইজার্ড

@ এনএমউইজার্ড একটি নির্দিষ্ট প্রকারের মতোই।
পিক্সেম

উত্তর:


1

ইনস্টল সংস্করণ (মধ্যে Slurm 14.11.5) সরানোর যেহেতু জিপিইউ নির্ধারিত ধরনের সমস্যা রয়েছে বলে মনে হয় Type=...থেকে gres.confএবং (থেকে তদনুসারে নোড কনফিগারেশন লাইন পরিবর্তন Gres=gpu:N,ram:...) মাধ্যমে GPUs প্রয়োজন কাজ সফল সঞ্চালনের ফলাফল --gres=gpu:N

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.