2011-07-07 64 views
0

考慮在處理器核心上完成任務的時間是平均值爲m和標準差爲s的分佈。如果在n內核上運行相同的任務,完成任務所需時間的平均值和標準差是多少? (任務完成時,其中一個核心完成任務)用於多核心上隨機任務的統計

回答

1

這是一個統計問題,而不是其他任何事情。如果沒有關於時間分配函數t需要完成的任務的信息,我只能給你一個提示:你需要計算你的任務的最小t對於n的分佈函數,如看到here。然後使用它可以計算平均值和標準偏差。

PS:這功課嗎?

編輯:

無論是 - 和多少 - 這是值得使用多個內核,取決於幾個因素:

  • 你需要做什麼。如果你的以不同的輸入運行相同的程序,啓動多個實例使有意義。它可能不會將總體時間減少到1/n,每個實驗仍然需要至少與以前一樣多的時間,但是整個系列所需的時間將明顯減少。

    另一方面,如果您希望運行相同的任務,例如,一個不同的種子,並保持收斂速度最快的種子,你可能會獲得更少,正如我的答案的第一部分所估計的那樣。

  • 你平行完成任務的能力如何。完全獨立的任務是理想的場景。 n具有多個同步點的線程等是而不是將接近效率。

  • 您的硬件可以處理多個任務的能力如何。例如,如果這些任務中的每一個都需要大量內存,則使用單個內核的速度可能會比使用交換空間/頁面文件/系統使用交換空間/頁面文件/操作系統一次運行多個實例所調用的操作速度快。

+0

不做作業,我想看看在並行運行這種任務中我能獲得多少改進 – titus

+0

1秒。你要並行運行*相同的*隨機任務嗎?如在例如在所有內核上運行相同的基因算法,並保持收斂速度最快?或者在每個核心中運行不同輸入的單獨流程來並行化您的任務? – thkala

+0

爲每個核心使用不同種子的數值函數最小化 – titus