我有一個問題在Microsoft HPC上運行一個簡單的代碼(Hello World)。代碼有一個斷點。在調試模式下編譯代碼後,當我通過IScheduler將可執行文件提交給節點(我正在使用的那個節點)時,它不會觸發斷點,但是如果我直接在節點上調試代碼(同一節點I ),它達到了斷點。爲什麼我通過HPC IScheduler提交時沒有觸及?當我使用HPC IScheduler時,它說:「斷點不會被打中,沒有符號被加載到這個文件中。」C#Microsoft HPC IScheduler - 調試問題
回答
如果我理解正確,您正在以兩種方式運行應用程序進行測試。沒有使用HPC羣集(您的環境所在的位置與此無關),然後再使用HPC羣集。當您在本地運行它時,您可以在打斷點時進行調試,但是當您通過HPC羣集運行它時,無法達到斷點。
問題是因爲當您通過表示HPC羣集的IScheduler(是通過代理或命令行或MPI作業運行的SOA作業)運行某些內容時,它會在不同的進程下運行。應用程序開始在HPC工作進程下運行。如果您想在通過節點上的HPC羣集運行時調試應用程序,則需要附加到分配給它的進程(對於在該節點上運行的每個任務,將有1個HPC工作進程),就像如果您試圖調試WebService項目,WCF項目或Windows服務,則會出現這種情況。假設您只運行一項任務工作,您應該能夠保持任務管理器處於打開狀態,以查看此流程何時啓動以獲取其PID。除非你在表示應用程序任務的代碼的第一行中放置了25秒的停頓,否則我不認爲你能夠快速地附加到進程以達到斷點。
如果您正在運行HPC 2008 R2和Visual Studio 2010,則可以在此處安裝Microsoft提供的調試工具; http://www.microsoft.com/en-us/download/details.aspx?id=21705請注意,這些工具將無法在Visual Studio 2012中運行,它們也不會在HPC Pack 2012中運行,因爲我沒有對這些版本進行測試,所以我無法擔保任何版本預約版本2008 R2。
在原始HPC Pack 2012測試版期間,Microsoft提到目前的2008 R2工具不能在HPC Pack 2012中運行,但這些工具的新版本可能會隨HPC Pack 2012的第一個Service Pack版本發佈;但是我還沒有看到有關它的任何時間表上的任何信息。
- 1. 測試使用Microsoft HPC SOA API編寫的HPC服務
- 2. 其中用於Microsoft HPC
- 3. Microsoft HPC作業依賴
- 4. SSIS並行 - Microsoft HPC羣集?
- 5. Microsoft HPC 2012代碼示例
- 6. visual C++ 2010調試問題
- 7. Monodevelop C++調試問題
- 8. 的Visual C++調試問題
- 9. C - 調試內存問題
- 10. Turbo C++調試問題
- 11. 調試問題痣
- 12. 調試問題
- 13. 調試問題:(
- 14. 關於HPC上SLURM的問題
- 15. 調試問題
- 16. 調試問題
- 17. 在.NET標準庫中訪問調度程序IScheduler
- 18. Silverlight調試問題
- 19. 問題調試c字符串?
- 20. 巨大的C文件調試問題
- 21. 問題與調試 - 步入 - C#
- 22. Qt C++ QException問題:調試錯誤
- 23. gdb問題中的C程序調試
- 24. 調試底層C++ DLL中的問題
- 25. c#一個簡單的調試問題
- 26. 調試Visual C++內存分配問題
- 27. C++調試問題 - pdb文件
- 28. FORTRAN調試問題
- 29. Microsoft Access問題
- 30. Microsoft Dynamics問題
非常感謝。我想知道是否可以將HPC pack 2012與調試工具一起使用,但您也已經爲其編寫了答案。看起來,我需要設置HPC 2008 R2或等待hpc 2012 Service Pack。另外,我對「附加到過程」技術不太熟悉,我會對其進行一些搜索。再次感謝。 – user2371160
它應該是「我需要設置HPC包2008」 – user2371160
請注意,您必須使用VS 2008或2010與調試工具。他們對錶示項目的csproj文件進行了改造,使其成爲一個不同的項目類型,因此,在您的項目可能已經被賦予類庫的ID之前,它將被更新爲項目在HPC中進行調試所需的ID。此項目文件與VS 2012不兼容。 – Kaiser12