2017-07-26 24 views
0

關於在Azure批處理中並行運行任務,我有幾個問題。根據官方文檔,「Azure Batch允許您將每個節點的最大任務設置爲節點內核數量的四倍(4倍)。」在批處理中運行並行任務

  1. 是否有設置不是創建一個水池,需要做(的代碼),以能夠與一批平行運行任務時,每個節點指定的最大任務等?所以如果我正確地理解了這一點,如果我有一臺具有1個內核的Standard_D1_v2機器,我最多可以並行運行4個並行任務。是對的嗎?如果是的話,我跑了一些測試,我很不確定我得到的行爲。在設置爲每個節點運行1個任務的D1_v2機器池中,我的作業執行時間大約爲16分鐘。然後,使用相同的應用程序和相同的參數,唯一的變化是具有相同設置的新池,也是D1_v2,除了每個節點運行4個任務之外,我仍然可以獲得大約15分鐘的作業執行時間。並行運行任務的作業執行時間沒有任何改進。會發生什麼?我在這裏錯過了什麼?

  2. 我用一個D3_v2機器池(4核心)運行測試,每個核心運行2個任務,每個節點總共執行8個任務,另一個測試用一個池(與前一個機器數量相同)具有2個內核的D2_v2機器,設置爲每個內核運行2個任務,每個節點總共執行4個並行任務。這兩個測試的運行時間/作業執行時間都是相同的。考慮到第一次測試中每個節點運行8個任務,而第二個測試中每個節點執行4個任務,是不是應該有改進?如果是,那麼爲什麼我沒有得到這種改進呢?

回答

0
  1. 號雖然你可能想看看進入task scheduling policy, compute node fill type來控制你的任務是如何分佈在池中的節點。
  2. 工作中有多少任務?你的任務是計算綁定的嗎?如果是這樣,你不會看到任何改進(甚至可能是端到端的性能下降)。
  3. 批僅在節點上同時調度任務。如果您正在運行的命令/進程利用了計算機上的所有內核並且受到計算限制,則不會看到改進。您應該仔細檢查作業中的任務開始和結束時間以及節點執行信息,以確定它們是否實際上在同一節點上併發調度。
+0

謝謝! 2.我正在運行1000個任務,而我的任務只包括將節點下載到一個blob。 –

+0

你下載的是同一個blob嗎?請從#3確認詳細信息。 – fpark

+0

不,不同的斑點。每個任務都有一個與之相關的不同的blob。而對於#3,我實際上並沒有收集任務運行在哪個節點的信息。我應該。我需要再做一次測試。 –

相關問題