我有一個for循環大約需要16毫秒執行,並有條件地執行另一個for循環500次。並行只有內部的循環
產品序列號的格式是這樣的:
//Outer for loop
for(i=0;i<500;i++){
//read some entity
//some conditions
// some function calls
// some nested function calls
// inner for loop
for (j=0;some condition;j++){
// work on the entity read in outer for loop
}
}
我想並行內的循環。是否可以通過使用OpenMP將內部for循環執行所需的時間縮短40%,從而縮短運行串行代碼所需的總時間?
我希望總體時間減少來執行代碼。在我的情況下,並行外部for循環是不可能的,因爲代碼被編寫爲一次只能讀取一個實體,以便在內部循環中使用 。
請幫忙。
謝謝!
16毫秒似乎並不是很多工作要並行化。 – Mysticial 2012-03-07 18:55:15
是的,絕對正確。但是,內循環會執行很多次。我想減少程序執行所需的總時間。 – user1252852 2012-03-07 18:56:36
我試圖在H.264編解碼器中並行化幀內和幀間預測。有關於此的任何建議? – user1252852 2012-03-07 18:58:23