有沒有辦法使用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 –