2011-03-03 49 views
0

我的問題是
我的python二進制文件在我的amd64(Opteron 8214,4 CPU)服務器上沒有作爲64位程序運行。
機器是雙核的,所以taskmgr中有8個核心。 它在taskmgr中沒有顯示「* 32」(因此它可能已經處於64位模式),但只使用一個內核。
我將相同的代碼(項目)編譯並在Intel Xeon機器上執行,它將使用所有處理器內核。我的python構建二進制文件在AMD Win2003r2x64機器中並不真正運行爲64位程序

那麼我該如何解決這個問題?任何人有其他想法?我需要使它運行64位以使用多核以儘快完成任務。它是一個數據解析器,它將大部分運行時分解爲數據記錄(通過正則表達式),然後插入到mssql數據庫中。
歡迎任何評論。我已經在這幾個星期工作了。

官方&我在此處列出的第三方軟件包。
蟒-2.7.1.amd64.msi
pywin32-214.win-AMD64的py2.7.exe
pyodbc-2.1.8.win-AMD64的py2.7.exe
py2exe-0.6.9 .win64-py2.7.amd64.exe
wxPython2.8-Win64上支持unicode的2.8.11.0-py27.exe
通過GUI2exe-0.5.0.zip

編譯的二進制在Windows Server 2003 x64標準版SP2 我曾經在Intel Xeon CPU機器上建立了完全相同的代碼(項目)(當然是win2003x64), 而且它有效(工作方式沒有「* 32」拖尾taskmgr的進程名稱,a nd也使用每個CPU /核心)。

p.s.由於它是一個大型項目,我無法提供完整的源代碼。

+0

你必須提供比這更多的東西。你的問題是,這個過程應該使用多個核心,而不是?標題確實這樣說,但身體似乎。 – 2011-03-03 11:07:03

+0

我的程序每次啓動都需要運行以儘快結束,所以使用多個內核會非常有幫助。該程序是一個數據解析器,將解析一些大的數據二進制文件,例如,將一個4GB文件加載到mssql中,這將耗時40秒,但Xeon機器僅需要18秒,並且您可以看到每個核心都忙於taskmgr與此同時,Xeon機器只有4個核心和cpu頻率。也沒有比這款AMD機器快得多,但代碼完全相同,所以我認爲問題僅僅是因爲它只使用了一個內核。那種方法。謝謝。 – 2011-03-03 11:28:33

回答

0

您可能想查看標準Python庫附帶的關於多核問題的subprocessthreading模塊。至於64位的問題,你確定你需要額外的內存空間嗎?我從來沒有與32位Python的任何問題。

相關問題