一个队列服务,用于快速开发有效使用所有gpu的脚本

fastgpu提供单个命令,fastgpu_poll,它轮询一个目录以检查要运行的脚本,然后在第一个可用的GPU上运行它们。如果没有可用的gpu,它会等待,直到有一个可用。如果有一个以上的GPU可用,多个脚本并行运行,每个GPU一个。

还提供了一个API,用于以编程方式轮询,它是可扩展的,可将其他资源分配给gpu之外的进程。有关API的详细信息,请参阅核心

安装

pip安装fastgpu

如何使用

——帮助提供命令帮助:

$ fastgpu_poll——帮助用法:fastgpu_poll [-h][——path path][——exit exit]为使用“ResourcePoolGPU”的脚本轮询“路径”。poll_scripts的可选参数:-h,—帮助显示此帮助消息和退出—路径路径包含' to_run '目录—退出退出时' to_run '为空

路径默认为当前目录。该路径应该包含一个子目录to_run包含您希望运行的可执行脚本。它不应该包含任何其他文件,尽管它可以包含子目录(被忽略)。

fastgpu_poll会运行每个脚本吗to_run在排序顺序。每个脚本将被分配给一个GPU。的CUDA_VISIBLE_DEVICES环境变量将被设置为该脚本子进程中该GPU的ID。此外,FASTGPU_ID环境变量也将设置为此ID。

选择要运行的脚本后,将其移动到一个名为运行。一旦它完成了,它就被移入完整的失败是合适的。stdout和stderr被捕获到与脚本同名的文件中stdoutstderr附加。

如果退出1(这是默认的),那么一旦所有脚本运行,fastgpu_poll将退出。如果它是0然后fastgpu_poll将继续运行,直到它被杀死;它将继续轮询添加到的任何新脚本to_run

为了限制可用于fastgpu的gpu,设置CUDA_VISIBLE_DEVICES在投票之前,例如:

CUDA_VISIBLE_DEVICES = 2、3 fastgpu_poll script_dir