如果並行執行多行代碼,如果它們不相互依賴,最好的方法是什麼? (我使用OpenMP)並行化一系列獨立的代碼行
僞代碼:
database->connect()
openfile("stuff.txt")
ping("stackoverflow.com")
x = 2;
y = a + b;
我能想出的唯一辦法是:
#pragma omp parallel for
for(i = 0; i < 5; i++)
switch (i) {
case 0: database->connect(); break;
...
我還沒有嘗試過,但我還記得你不應該break
,而使用OpenMP
分別這些單個線的如此緩慢,他們需要並行?從「線程」的角度思考這個問題;你是否想要在每個線上作爲一個函數啓動每一行?這樣做有很大的開銷。 – chrisaycock 2011-04-27 15:43:06
我同意chrisaycock。對於你正在做的少量工作來說,開銷會非常高。如果您真的想嘗試一下,請查看OpenMP部分指令。 – ejd 2011-04-27 16:51:07
更多的假設性問題。 – Mikhail 2011-04-27 18:35:20