簡體   English   中英

為什么我的OpenMP實現比單線程實現慢? (跟進)

[英]Why is my OpenMP implementation slower than a single threaded implementation? (Followup)

這是為什么我的OpenMP實現比單線程實現慢?

我已經堅持提供的答案,並使用任務而不是pragma來加速代碼。 但是,與順序(相同)程序相比,兩個程序運行速度相同。 我目睹沒有加速。

重新編寫的代碼在這里: http//pastebin.com/3SFaNEc4

我只是刪除了所有for pragma並將其替換為遞歸過程的任務pragma。

我做錯了嗎? 我應該看到幾乎線性的加速。 你們有什么感想?

謝謝!

首先 - 您仍然應該刪除“#pragma end critical”。 它不會導致問題,但是不正確。 第二 - 正如我在你發布的另一個問題中所說的那樣,你可能不得不考慮如何並行化代碼以查看加速,所以用任務編譯指示替換其他編譯指示可能無法加快速度。 第三 - 您沒有將任務放入並行區域,因此您根本不是並行運行。 而且,您不能僅在任務周圍添加並行區域,或者您將多次執行相同的任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM