ฉันอัปเกรดจาก IBM LSF Suite for Enterprise 10.2.0.10 เป็นเวอร์ชัน 10.2.0.12 และตอนนี้บนเซิร์ฟเวอร์คลัสเตอร์ GPU เพียงเซิร์ฟเวอร์เดียวเท่านั้น (1 ใน 8) ฉันไม่สามารถรับบริการ LIM ให้ทำงานต่อไปได้ มันหยุดทำงานด้วยความผิดพลาดในการแบ่งส่วน:
lim[42062]: segfault ที่ 0 ip 00007f63476c07f7 sp 00007f6345218958 ข้อผิดพลาด 4 ใน libc-2.27.so[7f6347607000+1e7000]
ข้อผิดพลาดของกระบวนการ seg โดยทั่วไปหลังจากส่งงานไปยังเซิร์ฟเวอร์หรือเสร็จสิ้นที่นั่น หากมีงานที่กำลังรันบนเซิร์ฟเวอร์ LIM และกระบวนการย่อยจะล้มเหลวหลังจากเริ่มต้นประมาณหนึ่งนาที
เนื่องจากเรากำลังใช้ IBM "Academic Initiative" ในเก้าอี้มหาวิทยาลัยด้านชีวสารสนเทศ เราจึงไม่สามารถเข้าถึงการสนับสนุนหรือ Fix Packs ได้ นอกจากรุ่นหลัก
nvidia-smi
แสดงสิ่งต่อไปนี้ในปัจจุบัน:
+--------------------------------------------- ----------------------------+
| เวอร์ชันไดรเวอร์ NVIDIA-SMI 470.82.01: 470.82.01 เวอร์ชัน CUDA: 11.4 |
|---------------------------------------++---------------- ----------------------------+
| ชื่อ GPU ความคงทน-M| Bus-Id Disp.A | ผันผวน Uncorr ECC |
| Fan Temp Perf Pwr:การใช้งาน/ความจุ| การใช้งานหน่วยความจำ | GPU-Util Compute M. |
| | | MIG M. |
|==============================+================== =====+======================|
| 0 Quadro RTX 8000 เปิด | 00000000:1A:00.0 ปิด | ปิด |
| 33% 40C P8 25W / 260W | 3968MiB / 48601MiB | 0% E. กระบวนการ |
| | | ไม่มี |
+--------------------------------------+-------- ----------------------------+
| 1 Quadro RTX 8000 เปิด | 00000000:3E:00.0 ปิด | ปิด |
| 33% 25C P8 12W / 260W | 1MiB / 48601MiB | ค่าเริ่มต้น 0% |
| | | ไม่มี |
+--------------------------------------+-------- ----------------------------+
| 2 Quadro RTX 8000 เปิด | 00000000:89:00.0 ปิด | ปิด |
| 33% 24C P8 21W / 260W | 1MiB / 48601MiB | ค่าเริ่มต้น 0% |
| | | ไม่มี |
+--------------------------------------+-------- ----------------------------+
| 3 Quadro RTX 8000 เปิด | 00000000:B1:00.0 ปิด | ปิด |
| 33% 24C P8 15W / 260W | 1MiB / 48601MiB | ค่าเริ่มต้น 0% |
| | | ไม่มี |
+--------------------------------------+-------- ----------------------------+
ฉันจัดการเพื่อรับการถ่ายโอนข้อมูลหลักของข้อผิดพลาดในการแบ่งส่วนและดำเนินการผ่าน จีดีบี
. นี่คือการย้อนรอยการตรวจสอบเพิ่มเติม:
(gdb) บต
#0 __strcat_sse2_unaligned () ที่ ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:298
#1 0x00000000004efa5c ใน getNvidiaGpu (ดัชนี=-1408930708, dev=0x7f7dac056810, allDevices=0xbdd9, errorGPU=0x0, errorCount=0, warningGPU=0x7f7dac011730, warningCnt=2) ที่ lim.gpu.c:580
#2 0x00000000004f074b ใน getGpuReportFullThreadFunc () ที่ lim.gpu.c:858
#3 0x00000000004f11ad ใน CollectGpuInfoThread (arg=0x7f7dac056c6d) ที่ lim.gpu.c:949
#4 0x00007f7db92756db ใน start_thread (arg=0x7f7db5ec8700) ที่ pthread_create.c:463
#5 0x00007f7db83d771f ในโคลน () ที่ ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
นี่คือชุดประกอบที่ล้มเหลว:
=> 0x00007f7db836f7f7 <+1255>: movdqu (%rsi),%xmm1
และที่นี่เราเห็นว่าที่อยู่หน่วยความจำของ rsi คือ 0 หรือตัวชี้ NULL
อาร์เอส 0x0 0
#0 __strcat_sse2_unaligned () ที่ ../sysdeps/x86_64/multiarch/strcpy-sse2-unaligned.S:298
ไม่มีชาวบ้าน
#1 0x00000000004efa5c ใน getNvidiaGpu (ดัชนี=-1408930708, dev=0x7f7dac056810, allDevices=0xbdd9, errorGPU=0x0, errorCount=0, warningGPU=0x7f7dac011730, warningCnt=2) ที่ lim.gpu.c:580
fname = 0x7d6878 "getNvidiaGpu"
modelname = "QuadroRTX8000", '\000' <ซ้ำ 242 ครั้ง>
อุปกรณ์ = 0x7f7db79b3e58
หน่วยความจำ = {total = 50962169856, ฟรี = 42197254144, ใช้ = 8764915712}
pState = NVML_PSTATE_2
การใช้งาน = {gpu = 100, หน่วยความจำ = 49}
โหมดคำนวณ = NVML_COMPUTEMODE_DEFAULT
อุณหภูมิ = 83
vsbecc = 0
vdbecc = 0
กำลังไฟ = 249652
ฉัน = 0
เจ = 0
#2 0x00000000004f074b ใน getGpuReportFullThreadFunc () ที่ lim.gpu.c:858
dev = 0x7f7dac056810
fname = "getGpuReportFullThreadFunc"
dGlobal = 0x7f7dac001c70
ข้อผิดพลาด GPU = 0x0
คำเตือน GPU = 0x7f7dac011730
อุปกรณ์ทั้งหมด = 0x7f7dac00a850
เรท = 2886036588
ret1 = 2886036588
ver = {major = 2885721120, minor = 32637, patch = 4294967168, build = 0x11 <ข้อผิดพลาด: ไม่สามารถเข้าถึงหน่วยความจำที่อยู่ 0x11>}
rsmi_cnt = 0
nvml_cnt = 4
majorTmp = "11\000\000\000\000\000"
compMajorV = <ปรับให้เหมาะสม>
compMinorV = <ปรับให้เหมาะสม>
majorVer = <ปรับให้เหมาะสม>
เมเจอร์V = 470
รองV = 57
errorCount = 0
คำเตือน Cnt = 2
ฉัน = 0
gpu_lib = -1408931824
nvmlOpened = 1
#3 0x00000000004f11ad ใน CollectGpuInfoThread (arg=0x7f7dac056c6d) ที่ lim.gpu.c:949
fname = "collectGpuInfoThread"
gpuinfo = 0x7f7dac001c70
gpuinfoError = 0
ช่วงตัวอย่าง = 5
#4 0x00007f7db92756db ใน start_thread (arg=0x7f7db5ec8700) ที่ pthread_create.c:463
pd = 0x7f7db5ec8700
ตอนนี้ = <ปรับให้เหมาะสม>
unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140177899816704, -4327163297919163674, 140177899814848, 0, 0, 10252544, 4398249031032873702, 4398224247775797990}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
not_first_call = <เพิ่มประสิทธิภาพ>
#5 0x00007f7db83d771f ในโคลน () ที่ ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
จากทั้งหมดที่กล่าวมา เรามีเซิร์ฟเวอร์อื่นที่มีคุณสมบัติเหมือนกันทุกประการซึ่งไม่มีปัญหานี้ เวอร์ชันของ NVIDIA CUDA และไดรเวอร์ก็เหมือนกัน โดยใช้งาน Ubuntu เวอร์ชันเดียวกัน เวอร์ชัน 18.04.06 LTS
การติดตั้ง LSF กำลังใช้การกำหนดค่าที่ใช้ร่วมกันผ่าน NFS - หมายความว่าแต่ละเซิร์ฟเวอร์กำลังเข้าถึงไฟล์การกำหนดค่าและสคริปต์เดียวกัน
ข้อแตกต่างเดียวที่ฉันเห็นระหว่างเซิร์ฟเวอร์อื่นๆ และเซิร์ฟเวอร์ที่มีปัญหาคือในตัวเลือกคำสั่งที่ใช้เพื่อเริ่ม LIM:
บนเซิร์ฟเวอร์อื่นๆ ทั้งหมด:
ราก 53635 1.8 0.0 277728 18844 ? ส<sl ก.พ. 07 472:40 /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/lim -d /opt/ibm/lsfsuite/lsf/conf/ego/rost_lsf_cluster_1/kernel
ราก 53639 0.0 0.0 18652 5976 ? ส<s ก.พ. 07 0:11 \_ /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/melim
ราก 53645 0.0 0.0 4681288 14400 ? ส<l Feb07 6:26 | \_ /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/lsfbeat -c /opt/ibm/lsfsuite/lsf/conf/lsfbeats/lsfbeat.yml
ราก 53640 0.0 0.0 21268 9136 ? S ก.พ. 07:56 \_ /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/pim -d /opt/ibm/lsfsuite/lsf/conf/ego/rost_lsf_cluster_1/kernel
ราก 53641 0.0 0.0 39576 9604 ? Sl ก.พ. 07 0:42 \_ /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/pem
ในอันที่มีข้อผิดพลาดในการแบ่งส่วน:
ราก 44902 1.8 0.0 272472 16680 ? D<sl 12:17 0:00 /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/lim
ราก 44919 4.4 0.0 18656 6500 ? ส<s 12:17 0:00 \_ /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/melim
ราก 44924 2.2 0.0 468764 11280 ? ส<l 12:17 0:00 | \_ /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/lsfbeat -c /opt/ibm/lsfsuite/lsf/conf/lsfbeats/lsfbeat.yml
ราก 44920 5.6 0.0 19276 7364 ? S 12:17 0:00 \_ /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/pim
ราก 44921 4.6 0.0 39576 10288 ? ส 12:17 0:00 \_ /opt/ibm/lsfsuite/lsf/10.1/linux2.6-glibc2.3-x86_64/etc/pem
ฉันลองเริ่มบริการใหม่โดยใช้ bctrld
ทั้งบนมาสเตอร์และเซิร์ฟเวอร์ นอกเหนือจากการใช้ lsfd.service
หน่วย...แม้เริ่มต้นการ ลิม
บริการด้วยตนเองโดยใช้ -d /opt/ibm/lsfsuite/lsf/conf/ego/rost_lsf_cluster_1/kernel
ตัวเลือก. ทั้งหมดทำให้เกิดความผิดพลาดในการแบ่งส่วน
ไม่มีใครมีความคิดว่าปัญหาคืออะไรหรือจะแก้ไขได้อย่างไร? ฉันจะบ้าที่นี่
ขอบคุณมากที่สละเวลาอ่านและแสดงความคิดเห็นของคุณ!