我有3次嵌套循環,而兩個外循環只循環很少幾次,而不是最內循環。事情是這樣的:parallel_for - 哪個循環要並行化?
for (int i = 0; i < I; i++) {
for (int j = 0; j < J; j++) {
for (int k = 0; k < K; k++) {
//Do stuff
}
}
}
I〜= j的< < K,即我大致等於Ĵ,但K是非常大(的幾千倍)
由於所有的數據都是獨立的彼此,我想使用parallel_for ppl.h庫並行化它們。現在問題出現了,我並行化哪個循環?我傾向於最內層的循環,因爲它是最大的循環,但我認爲每當外層循環循環時,整個線程開銷就會重新開始。那麼更高效的是什麼?
嘗試所有3種方式,基準(跨越各種數據),然後挑選出任何令人驚訝的結果。 「爲什麼......」的問題通常比「哪些是...」的問題更有趣。 – user2864740