如何在多个节点上运行TensorFlow,每个节点具有多个CPU

我想在非常大的数据集上使用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?

先感谢您.

最佳答案 据我所知,最好的办法是将同一节点上的所有CPU作为单个工作者一起使用,以便充分利用共享内存.因此,例如在上面的情况中,必须手动指定仅9个工作者并确保它们中的每一个对应于使用所有36个CPU的一个节点.执行此操作的命令取决于所使用的特定群集.

点赞