2010-08-19 49 views
0

我試圖在OS運行在GHC 6.10.4(從MacPorts的)並行代碼X 10.5平行哈斯克爾(GHC 6.10.4)不接受-N比-N1

我建立更大與-threaded,在我的makefile:

 
GHC=ghc -prof -auto-all -O -threaded 

glicko: glicko.hs Lib.hs 
     $(GHC) --make -main-is Glicko glicko.hs lib.hs 

當我調用./glicko +RTS -N./glicko +RTS -N1代碼運行,但似乎只使用一個CPU。如果我以./glicko +RTS -N2的身份調用,那麼我將得到運行時幫助消息,它記錄命令行參數;但文件表明這應該運行程序。

爲什麼-N2不能正常工作?

這裏有更多的時間信息。

 
$ ./glicko +RTS --info 
[("GHC RTS", "YES") 
,("GHC version", "6.10.4") 
,("RTS way", "rts_thr_p") 
,("Host platform", "i386-apple-darwin") 
,("Host architecture", "i386") 
,("Host OS", "darwin") 
,("Host vendor", "apple") 
,("Build platform", "i386-apple-darwin") 
,("Build architecture", "i386") 
,("Build OS", "darwin") 
,("Build vendor", "apple") 
,("Target platform", "i386-apple-darwin") 
,("Target architecture", "i386") 
,("Target OS", "darwin") 
,("Target vendor", "apple") 
,("Word size", "32") 
,("Compiler unregisterised", "NO") 
,("Tables next to code", "YES") 
] 
+0

有什麼理由不使用GHC 6.12.3 Mac的二​​進制安裝包(最新的Haskell的平臺?)並行性能顯著更好。 – 2010-08-19 18:57:08

+0

只有一個已經安裝在我的筆記本電腦上,另一個不是。 你知道任何暗示會影響這個嗎? (而不是「它的破碎,嘗試一個不同的版本」?) – 2010-08-19 20:31:52

回答

5

RTS方式」, 「rts_thr_p」

你既剖析線程編譯探查器只適用於多核模式與1 cpu(在運行時的配置文件數據結構還沒有線程安全)

編譯你的程序時不需要分析,你可以使用多於-N1。

ticket #886