2016-06-24 42 views
2

是否可以在本地机器上启动分布式TensorFlow,方式是每个工人都有该模型的副本?分布式单台机器上的多个工作人员TensorFlow

如果是,是否可以分配每个代理只使用一个CPU内核?

+0

这个限制使用1核心的答案:http://stackoverflow.com/a/37864489/419116 –

回答

0

对于你的第一个问题,答案是肯定的。更多细节在这里:https://www.tensorflow.org/versions/r0.9/how_tos/distributed/index.html

对于第二个问题,我不确定Tensorflow在核心级别是否具有这种细粒度控制级别;但总的来说,操作系统将在多个内核上平衡线程负载。

请注意,如果您有多个CPU/GPU,Tensorflow确实能够在处理器级别指定设备。

2

是有可能推出distributed Tensorflow locally

每个任务通常在不同的机器上运行,但你可以在同一台机器上运行多个任务(例如控制不同的GPU设备)。

,并以这样的方式,每个工人有same graph

如果您正在使用一个以上的图形在同一进程(与tf.Graph()创建的),你将不得不为每个图形使用不同的会话,但每个图形可用于多个会话。

正如您的意见提及,有一个如何尝试和实现分布式TF的执行到single core这涉及分发到不同的CPU,然后限制线程池到单个线程的建议。

当前没有允许将TF图分布式执行到特定内核的功能。

+1

尽管TensorFlow没有一个功能来将执行绑定到特定的核心,但由于您使用不同的进程在分布式运行时,您可以使用[标准Linux处理器关联机制](http://www.glennklockwood.com/hpc-howtos/process-affinity.html)来实现相同的结果。请注意,您可能还需要限制启动会话时创建的线程数(“tf.ConfigProto.inter_op_parallelism_threads”和“tf.ConfigProto.intra_op_parallelism_threads”是相关的配置选项)。 – mrry