目录

Cluster、Job、Task 概念

Job是Task的集合. Cluster是Job的集合

Task

Task就是主机上的一个进程,在大多数情况下,一个机器上只运行一个Task.

Job

在分布式深度学习框架中,我们一般把Job划分为Parameter和Worker。

  • Parameter Job是管理参数的存储和更新工作.
  • Worker Job是来运行ops.如果参数的数量太大,一台机器处理不了,这就要需要多个Tasks.

Cluster

Cluster 是 Jobs 的集合: Cluster(集群),就是我们用的集群系统了

代码

Task代码

tf.train.ClusterSpec({
    "worker": [
        "worker_task0.example.com:2222",# /job:worker/task:0 运行的主机
        "worker_task1.example.com:2222",# /job:worker/task:1 运行的主机
        "worker_task2.example.com:2222"# /job:worker/task:3 运行的主机
    ],
    "ps": [
        "ps_task0.example.com:2222",  # /job:ps/task:0 运行的主机
        "ps_task1.example.com:2222"   # /job:ps/task:0 运行的主机
    ]})

In-graph 和 Between-graph

同步更新、异步更新

参考

  • https://blog.csdn.net/u012436149/article/details/53140869
  • 分布式原理理解
  • https://blog.csdn.net/tiangcs/article/details/85952007