2
我可以在一臺帶有單核Erlang程序的計算機上測試四個或更多內核嗎?使用Erlang進行測試。
當不使用任何參數的Erlang SMP假設2起:2這樣的:
Erlang R14A (erts-5.8) [smp: 2:2] [rq: 2] [async-threads: 0]
我使用的是奔騰4,這意味着我有兩個內核?
我可以在一臺帶有單核Erlang程序的計算機上測試四個或更多內核嗎?使用Erlang進行測試。
當不使用任何參數的Erlang SMP假設2起:2這樣的:
Erlang R14A (erts-5.8) [smp: 2:2] [rq: 2] [async-threads: 0]
我使用的是奔騰4,這意味着我有兩個內核?
默認情況下一個調度器對每個可用的核心啓動,並且被用於多運行隊列(每個調度器;因爲R13可用)。在您的shell中[smp 2:2]
意味着您有兩個調度程序在兩個核心上運行; [rq: 2]
表示您正在使用兩個運行隊列。
如果要更改調度的數量,與erl +S 4
四個調度例如啓動。
確保如果在單核系統上編譯二郎,你使用--enable-smp-support
在配置腳本啓用SMP。否則,您可能無法使用多個調度程序。
我有點困惑。 如果我在單核上運行erlang可以用來模擬其他數量的smp核心嗎? 例如,如果你運行在單核4核上,模擬所花費的時間與直接運行到4核心相同? 你可以做這個測試嗎? – Gmp 2010-11-08 14:35:38
每個調度程序是一個單獨的OS進程,默認情況下每個核心都啓動一個。儘管如此,仍然可以運行多個調度程序,但這當然不會使您的計算機「更快」。 單核心機器是一種特殊情況,因爲如果您在沒有SMP的情況下構建VM,與啓用SMP的機器相比(由於使用較少的鎖定),可能會稍微調整一下。 – Zed 2010-11-08 14:41:30