[英]Why is my OpenMP implementation slower than a single threaded implementation?
[英]Why is my OpenMP implementation slower than a single threaded implementation? (Followup)
我已經堅持提供的答案,並使用任務而不是pragma來加速代碼。 但是,與順序(相同)程序相比,兩個程序運行速度相同。 我目睹沒有加速。
重新編寫的代碼在這里: http : //pastebin.com/3SFaNEc4
我只是刪除了所有for pragma並將其替換為遞歸過程的任務pragma。
我做錯了嗎? 我應該看到幾乎線性的加速。 你們有什么感想?
謝謝!
首先 - 您仍然應該刪除“#pragma end critical”。 它不會導致問題,但是不正確。 第二 - 正如我在你發布的另一個問題中所說的那樣,你可能不得不考慮如何並行化代碼以查看加速,所以用任務編譯指示替換其他編譯指示可能無法加快速度。 第三 - 您沒有將任務放入並行區域,因此您根本不是並行運行。 而且,您不能僅在任務周圍添加並行區域,或者您將多次執行相同的任務。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.