2013-05-20 36 views
0

我有一個問題在Microsoft HPC上運行一個簡單的代碼(Hello World)。代碼有一個斷點。在調試模式下編譯代碼後,當我通過IScheduler將可執行文件提交給節點(我正在使用的那個節點)時,它不會觸發斷點,但是如果我直接在節點上調試代碼(同一節點I ),它達到了斷點。爲什麼我通過HPC IScheduler提交時沒有觸及?當我使用HPC IScheduler時,它說:「斷點不會被打中,沒有符號被加載到這個文件中。」C#Microsoft HPC IScheduler - 調試問題

回答

1

如果我理解正確,您正在以兩種方式運行應用程序進行測試。沒有使用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版本發佈;但是我還沒有看到有關它的任何時間表上的任何信息。

+0

非常感謝。我想知道是否可以將HPC pack 2012與調試工具一起使用,但您也已經爲其編寫了答案。看起來,我需要設置HPC 2008 R2或等待hpc 2012 Service Pack。另外,我對「附加到過程」技術不太熟悉,我會對其進行一些搜索。再次感謝。 – user2371160

+0

它應該是「我需要設置HPC包2008」 – user2371160

+0

請注意,您必須使用VS 2008或2010與調試工具。他們對錶示項目的csproj文件進行了改造,使其成爲一個不同的項目類型,因此,在您的項目可能已經被賦予類庫的ID之前,它將被更新爲項目在HPC中進行調試所需的ID。此項目文件與VS 2012不兼容。 – Kaiser12