我有200,000個並行運行的任務可以提高速度。我正在使用ParallelEnumerable.Range(0, 200000).Sum(a => /*do_something*/)
。ParallelQuery核心平衡
當任務計數器從0變到200,000時,所需的迭代次數減少。具有a=0
的任務需要大量的迭代,而具有a>100,000
的任務完成一次或不進行迭代。
由於這個原因,我的四核機器在任務進行時未達到最大cpu利用率峯值。看起來,工作負載在開始時分配給所有4個內核,並且一些內核先前處於空閒狀態,因爲它們的部分主要是高度爲a
s的任務。 CPU利用率從100%開始,但逐漸下降到75〜50〜25%。我怎樣才能達到完整的CPU利用率?
您是否嘗試過記錄執行順序以查看究竟是什麼問題? – svick