有没有办法使用C中的函数更改pragma omp for
循环中的schedule
类型? 我试图在并行语句之前做setenv("OMP_SCHEDULE", "guided", 1);
,但我不完全确定它是否可行,因为我从代码中得到的时间非常相似。 我想要做的是使用for
循环更改计划类型来比较计时,在setenv
函数中给出dynamic
,auto
等作为字符串。C,OpenMP,更改计划类型,setenv
1
A
回答
2
您可以使用schedule(运行时)并设置OMP_SCHEDULE。
从https://computing.llnl.gov/tutorials/openMP/
RUNTIME 调度决策被推迟到环境变量OMP_SCHEDULE运行。为此子句指定块大小是非法的。
且让我举里斯托·利维,因为他已经在这里说 OpenMP: for schedule
它最好的,因为预编译的代码可以在各种平台上这将是很好,如果最终用户可以控制调度运行。这就是OpenMP提供特殊调度(运行时)子句的原因。使用运行时调度时,类型取自环境变量OMP_SCHEDULE的内容。这允许在不重新编译应用程序的情况下测试不同的调度类型,并允许最终用户为他或她的平台进行微调。
+0
是否日程安排(运行时)保证环境变量将被读取每次循环被调用,或运行时可能会在启动时读取一次变量? – pburka
0
没有标准的方法来执行此操作,但如果您使用的是英特尔的库,则可以使用kmp_set_defaults()
扩展名。这需要一串由|
个字符分隔的选项,并且会覆盖默认的OpenMP行为。在你的例子中,kmp_set_defaults("OMP_SCHEDULE=guided")
应该完成你想要的。
相关问题
- 1. 修改mysql的查询计划类型
- 2. Postgres:“错误:缓存计划不能更改结果类型”
- 3. 计划Powershell更改ObjectType
- 4. Facebook C#SDK更新计划
- 5. OpenMP并行 - 什么是默认计划?
- 6. Openmp编译,但“parallel for”不能按照计划工作C
- 7. C++标准库 - std :: setenv vs setenv
- 8. C++ - 划分的类型?
- 9. 计划在C
- 10. 在运行时更改NSB计划
- 11. 任务计划和DST更改
- 12. 矢量型类(通讯录计划)
- 13. 返回类型在球拍\计划
- 14. 计划中类型的确切术语
- 15. 通过C#更改计划任务的“运行方式”字段:
- 16. 更新iOS开发人员计划类型(公司/组织)
- 17. C#更改DataTable列数据类型
- 18. Objective-C KVC更改属性的类型
- 19. 更改C#文件的编码类型?
- 20. 在DateTimePicker,C#中更改日历类型?
- 21. 如何更改数据类型c
- 22. C++中的类的划分和设计
- 23. 更改日期和重新更改计划
- 24. 更改IAP类型
- 25. 更改类型帧
- 26. 更改DataStore类型
- 27. HASKELL - 更改类型
- 28. C#TypeConverter长枚举类型在更改类型上失败
- 29. 如何更改C++中继承类型的访问类型?
- 30. 计划在C++中
使用schedule(运行时)并设置OMP_SCHEDULE。看到这个答案的最后一段http://stackoverflow.com/questions/10850155/openmp-for-schedule/10852852#10852852 –