如何在每个都有多个CPU的多个节点上运行TensorFlow

时间:2018-08-07 11:39:42

标签: tensorflow distributed-computing

我想在非常大的数据集上使用TensorFlow运行线性回归。我有一个包含9个节点和每个36个CPU的集群。在所有可用资源之间分配计算的最佳方法是什么?

根据本课程https://www.coursera.org/learn/intro-tensorflow,在分布式设置上使用TensorFlow的最佳方法是使用Estimators。因此,我按照那里的建议编写了代码,并按照https://www.tensorflow.org/deploy/distributed上的说明进行了并行化。然后,我尝试在节点2和3上运行脚本my_code.py(在具有1.2亿个数据点和2个特征列以测试代码的“小型”数据集上),如下所示:

python my_code.py \ 
--ps_hosts=node1:2222 \
--worker_hosts=node2:2222,node3:2222
--job_name=worker
--task_index="i-2"

其中i是节点号(2或3);而在节点1上,我使用--job_name=ps--task_index=0做同样的事情。但是,这种方式似乎每个节点仅使用一个CPU。我需要单独指定每个CPU吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

据我了解,最好的做法是将同一节点上的所有CPU用作单个工作线程,以充分利用共享内存。因此,例如在上述情况下,必须手动指定9个工作程序,并确保每个工作程序都对应于一个节点,该节点使用了全部36个CPU。执行此操作的命令取决于所使用的特定群集。