2016-11-26 62 views
0

讓我先來介紹集羣設置:瞭解分佈式TensorFlow的概念基礎

  • 我有兩個節點(每個2個GPU)。我將它們稱爲節點A和節點B
  • 每個節點都有其自己的SSD存儲。
  • OAR是使用的集羣管理器。

我已經通過了分佈式TensorFlow文檔,但有一些功能基礎知識,我無法正確理解,因此這個問題。

考慮以下情況:

  • 我有大約600 GB的數據複製在節點A
  • 我可以用槳特別要求的跨兩個節點4個GPU分配。

如果我想使用分佈式TensorFlow訓練模型:

  1. 如何指定網絡地址tf.train.ClusterSpec?那些網絡地址是什麼?在文檔中有名稱,例如localhost:2222爲集羣管理器的特定節點保留了相同的名稱?
  2. 我的數據被複制到節點A.在訓練期間,TensorFlow本身將負責將此數據作爲輸入發送到節點B上的GPU?
  3. 我需要使用tf.device()爲每個節點上的每個GPU手動創建TensorFlow圖嗎?
  4. 如果我還想使用一些額外的CPU節點,我必須事先獲得它們的名稱並將它們放入代碼中?

回答

1
  • 你的客戶端創建的圖形,並執行在此工人圖表。如果您將howto中的圖間複製與參數服務器一起使用,則您的客戶端和工作者是相同的過程。此過程僅需要使用with tf.device爲當前節點創建圖的一部分。如果您使用單客戶端進行圖內複製,則客戶端需要使用多個with tf.graph部分爲所有節點創建圖。
  • 與單獨的客戶端/工作進程內-圖形複製的最簡單的例子是here

  • 您通常需要通過羣集規格提前配置的時間的所有節點,和他們的名字按順序分配爲/job:worker/task:0,/job:worker/task:1