Hello各位大神,问题如标题所述
问题现象
Runner 存在一个最后一个gpu假死(等待simEngine complete.flag)
原因:不同服务器cpu数不一样 例如:112/16=7(number_of_cpus_allocated_per_simulation)参数
对但是gpus=8
导致最后一个gpu任务会无法获得无cpu分配的flag卡死
探讨解决办法:
1.加入assert gpus==cpus/number_of_cpus_allocated_per_simulation 手动对齐
2.使用的gpus任务数=cpus/number_of_cpus_allocated_per_simulation
两者保持一致
或者从整个工程系统上更好的解决办法
😓由于被公司墙,用手机提问排版可能存在问题,各位谅解,也希望各位大神多多指教
时间线推演
T0: 提交8个任务(split_0到split_7)
→ Ray开始调度:
1. split_0: 分配CPU=16, 剩余CPU=96
2. split_1: 分配CPU=16, 剩余CPU=80
3. split_2: 分配CPU=16, 剩余CPU=64
4. split_3: 分配CPU=16, 剩余CPU=48
5. split_4: 分配CPU=16, 剩余CPU=32
6. split_5: 分配CPU=16, 剩余CPU=16
7. split_6: 分配CPU=16, 剩余CPU=0
8. split_7: 需要CPU=16, 可用CPU=0 >该ray任务结束
split_7会被ray 跳掉 最后无法生成split_7对应的.flag完成标志文件
对应spilt_7的ALGENGINE 会一直等待到设定的max时间上限,但最后的评估统计也存在无法读取最后gpu仿真结果导致的崩溃问题
Hello各位大神,问题如标题所述
问题现象
Runner 存在一个最后一个gpu假死(等待simEngine complete.flag)
原因:不同服务器cpu数不一样 例如:112/16=7(number_of_cpus_allocated_per_simulation)参数
对但是gpus=8
导致最后一个gpu任务会无法获得无cpu分配的flag卡死
探讨解决办法:
1.加入assert gpus==cpus/number_of_cpus_allocated_per_simulation 手动对齐
2.使用的gpus任务数=cpus/number_of_cpus_allocated_per_simulation
两者保持一致
或者从整个工程系统上更好的解决办法
😓由于被公司墙,用手机提问排版可能存在问题,各位谅解,也希望各位大神多多指教
时间线推演
T0: 提交8个任务(split_0到split_7)
→ Ray开始调度:
1. split_0: 分配CPU=16, 剩余CPU=96
2. split_1: 分配CPU=16, 剩余CPU=80
3. split_2: 分配CPU=16, 剩余CPU=64
4. split_3: 分配CPU=16, 剩余CPU=48
5. split_4: 分配CPU=16, 剩余CPU=32
6. split_5: 分配CPU=16, 剩余CPU=16
7. split_6: 分配CPU=16, 剩余CPU=0
8. split_7: 需要CPU=16, 可用CPU=0 >该ray任务结束
split_7会被ray 跳掉 最后无法生成split_7对应的.flag完成标志文件
对应spilt_7的ALGENGINE 会一直等待到设定的max时间上限,但最后的评估统计也存在无法读取最后gpu仿真结果导致的崩溃问题