Tensorflow中散布 - 聚集模式的横向扩展性能限制

时间:2017-02-11 10:56:16

标签: tensorflow

分散 - 收集数据流管道的横向扩展性能有限,我不确定这是否

我使用Tensorflow构建自定义管道(即我编写自己的OpKernel)"令人尴尬的并行"问题("本地和#34;管道之间没有协调)。通常,这些涉及本地管道在我的集群中的所有机器上进行复制,并且具有源和宿队列以分别提供输入和接收输出。

外,各台机器上的管道之间存在协调
  • 从"来源"出发输入队列
  • 将输出排入"接收器"队列

由于我使用的确切代码库仍然是封闭源代码,因此我创建了一个similar example in vanilla Tensorflow。我是通过pip(v0.12.1)安装的。

这个脚本复制了我的" local"通过while循环引起一定延迟的管道。这个while循环的效率除了这一点。关键是当我在机器上扩展时,我看到的加速并不是很好。 Here is the data I collected on a cluster of 10 machines(最多只能达到9,因为托管源/接收队列的机器是"已卸载")。

scale-out performance of nodes

理想时间是平坦的,因为工作负载与节点数呈线性增长(因此无论节点数多少,都应该保持恒定时间)。

我的问题是

  • 这是Tensorflow的已知限制吗?我目前通过使用ZeroMQ协调本地节点(即我使用分布式会话)来避开这种情况,我知道其他人使用MPI或其他非TF系统。
  • 有没有办法通过我目前没有使用的Tensorflow中的某些原语来更快地使这种分散 - 聚集模式更快,或者可能通过构建图形以在执行时需要更少协调的方式来实现?

0 个答案:

没有答案