2016-11-22 137 views
0

全部,tensorflow的可擴展性

我最近在我們的集羣上安裝了tensorflow,並且已經運行了MNIST示例代碼來測試安裝。我感興趣的是看看張量流量的增加會影響張量流的性能。爲此,我使用不同數量的內核運行相同的示例代碼,但似乎並不像tensorflow在縮放方面做得很好。 我從另一個stackoverflow問題中發現tensorflow會自動使用所有可用的CPU,並假定它在運行作業時爲true。

從下面找到核心數量與時間的關係圖。這是5次試驗的平均值,核數從1到28. enter image description here 關於爲什麼縮放非常糟糕的任何解釋?據我瞭解,我並沒有期望隨着核心數量的增加而不斷增加,因此需要考慮通信雙核心。但是我期待看到這個特殊代碼具有最佳內核數量的'U形'曲線。

感謝任何幫助,我可以得到這一點。

回答

0

你如何運行不同數量的內核?默認情況下,Tensorflow使用兩個線程池,每個線程池都有多個與機器內核總數相關的線程,因此您所看到的可能存在噪聲和張量流總是以相同數量的線程運行(查看其CPU使用情況確認)。

如果要限制tensorflow使用的核心數,可以通過config proto來完成。