如何并行执行多个使用2个GPU的Python脚本,并避免cuda内存不足?[已关闭]

epggiuax  于 2023-03-11  发布在  Python
关注(0)|答案(1)|浏览(162)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
这篇文章是昨天编辑并提交审查的。
Improve this question
我有一个bash文件(generateData.sh),其中包含数百个python脚本,例如:

python create_video.py input output --param1 --param2 --param3

每个python脚本处理不同的输入视频,并在处理过程中使用我的机器上两个可用GPU中的一个(用于一些计算机视觉任务)。
我尝试使用GNU parallel(或xargs或&)并行化bash文件:

cat generateData.sh | parallel

这允许我并行48个python脚本。然而,由于GPU上的空间有限,只有10个脚本正确地完成了一个好的输出视频。其他的输入视频根本没有处理,可能是因为遇到了一些cuda内存不足的错误。
我希望GPU并行等待一些作业完成,以便在GPU上有一些可用空间。否则,GPU并行将只能正确处理我的bash文件的子部分。
谢谢你的回答!

xriantvc

xriantvc1#

大概是这样的

cat python-lines.sh |
  parallel -j48 CUDA_VISIBLE_DEVICES='$(({%} % 2))' {=uq=}

在2台CUDA设备上每个GPU运行24个作业。

相关问题