7.2 用于启动分布式训练/推理的工具

DGL 提供了一个启动脚本 launch.py,位于 dgl/tools 下,用于在集群中启动分布式 训练任务。该脚本做了以下假设:

  • 分区数据和训练脚本已配置到集群或所有工作机器可访问的共享存储(例如,NFS)。

  • 调用launch.py的机器对所有其他机器具有无密码ssh访问权限。启动机器必须是工作机器之一。

下面展示了在集群中启动分布式训练作业的示例。

python3 tools/launch.py               \
  --workspace /my/workspace/          \
  --num_trainers 2                    \
  --num_samplers 4                    \
  --num_servers 1                     \
  --part_config data/mygraph.json     \
  --ip_config ip_config.txt           \
  "python3 my_train_script.py"

参数指定了工作区路径,用于查找分区元数据JSON和机器IP配置,以及每台机器上要启动的训练器、采样器和服务器进程的数量。最后一个参数是要启动的命令,通常是模型训练/评估脚本。

ip_config.txt 的每一行都是集群中一台机器的IP地址。 可选地,IP地址后面可以跟一个网络端口(默认是 30050)。 一个典型的例子如下:

172.31.19.1
172.31.23.205
172.31.29.175
172.31.16.98

启动脚本中指定的工作空间是机器中的工作目录,其中包含训练脚本、IP配置文件、分区配置文件以及图分区。所有文件的路径都应指定为相对于工作空间的相对路径。

启动脚本在每台机器上创建指定数量的训练任务 (--num_trainers)。此外,用户需要为每个训练器指定 采样器进程的数量 (--num_samplers)。