![](/img/trans.png)
[英]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.