定义集群规范
要创建集群,首先要定义集群规范。集群规范通常包含两个作业:ps
用于创建参数服务器任务,worker
用于创建工作任务。 worker
和ps
作业包含运行各自任务的物理节点列表。举个例子:
clusterSpec = tf.train.ClusterSpec({
'ps': [
'master0.neurasights.com:2222', # /job:ps/task:0
'master1.neurasights.com:2222' # /job:ps/task:1
]
'worker': [
'worker0.neurasights.com:2222', # /job:worker/task:0
'worker1.neurasights.com:2222', # /job:worker/task:1
'worker0.neurasights.com:2223', # /job:worker/task:2
'worker1.neurasights.com:2223' # /job:worker/task:3
]
})
该规范创建了两个作业,作业ps
中的两个任务分布在两个物理节点上,作业worker
中的四个任务分布在两个物理节点上。
在我们的示例代码中,我们在不同端口上的 localhost 上创建所有任务:
ps = [
'localhost:9001', # /job:ps/task:0
]
workers = [
'localhost:9002', # /job:worker/task:0
'localhost:9003', # /job:worker/task:1
'localhost:9004', # /job:worker/task:2
]
clusterSpec = tf.train.ClusterSpec({'ps': ps, 'worker': workers})
正如您在代码中的注释中所看到的,任务通过/job:<job name>/task:<task index>
标识。