回答
首先將您的代碼恢復爲原始的非並行版本。你確實有版本控制下的這個問題嗎?
非常仔細地檢查您的串行程序不會導致任何分段錯誤。特別要注意this document from Intel中提出的問題。即使您未使用英特爾Fortran編譯器,也請閱讀本文。採取它所建議的糾正措施。
現在,平行你的第一個構造。如果可以的話,選擇一個簡單的,非嵌套的循環。重新測試你的程序。想想你已經做了什麼,並確保你明白髮生了什麼。選擇另一個簡單的構造來平行。當你完成了簡單的步驟後,就可以進入更復雜的步驟,隨時隨地進行測試,並隨時學習。
因此,要回答你的問題:解決這些問題的最佳方法是不要讓他們擺在首位。你報告你總是會出現分段錯誤,這表明你在走路之前就試圖跑步。
並回答另一個問題:不,沒有簡單的方法來解決它們。
謝謝你的回答! – Ling0k
正如HPM建議的那樣,只有在使用OpenMP進行編譯時,或者在沒有OpenMP的情況下編譯時纔會出現分段錯誤?
我建議使用編譯器提供的所有調試選項進行編譯。您的編譯器可能能夠識別出一些問題,並將其作爲Fortran問題報告給您,而不是作爲內存訪問問題報告給您。例如,運行時間下標檢查將識別可導致分段錯誤的非法下標。其他編譯器選項可以執行良好的編碼實踐,從而減少錯誤的發生。你使用什麼編譯器?
+1表示調試選項。 – dreamcrash
- 1. 最佳解決方案解決文件無法訪問錯誤
- 2. 解決URI錯誤的最佳做法
- 3. 解決分段錯誤
- 4. 定位錯誤<IE8 - 爲什麼?最佳解決方法?
- 5. 解決僵局的最佳方法
- 6. 最佳的解決方案
- 7. SplitViewController presentedWithGesture解決方法 - 最佳解決方案?
- 8. BitSet,no containsAll,最佳解決方法?
- 9. 最佳解決方案
- 10. 最佳解決方案
- 11. 最佳SQL解決方案?
- 12. SQL7008錯誤 - 解決方法?
- 13. 班級延伸 - 最佳做法/最佳解決方案
- 14. 使用OpenMp和SSE的分段錯誤
- 15. openmp分段錯誤 - 奇怪的行爲
- 16. 段錯誤openmp錯誤
- 17. 非重疊最大評分序列的最佳解決方案
- 18. 解決這些Plesk錯誤消息的最佳方法是什麼?
- 19. 試圖解決分段錯誤
- 20. 如何解決「分段故障」錯誤?
- 21. 如何解決分段錯誤?
- 22. 使用openmp和分段錯誤的並行K最近鄰居
- 23. HMAC解決方案中密鑰的使用(最佳/最佳做法)是什麼?
- 24. OpenMP專用陣列 - 分段錯誤:11
- 25. 報告Xcode錯誤的最佳方法?
- 26. 最佳的NoSQL緩存解決方案
- 27. 解決方案的SharePoint最佳實踐
- 28. 「Array chaining」的最佳解決方案
- 29. 最佳的asp.net crud解決方案?
- 30. 尋找最佳的解決方案
除非你真的搞砸了,最可能的原因是私有靜態數組的堆棧空間不足。與串行情況不同,只要OpenMP處於活動狀態,自動堆數組就會被禁用,並且所有未保存的本地數組都會成爲堆棧數組。請參閱[此答案](http://stackoverflow.com/a/13266595/1374437)以獲取更多信息。 –