2010-11-08 136 views
2

我可以在一臺帶有單核Erlang程序的計算機上測試四個或更多內核嗎?使用Erlang進行測試。

當不使用任何參數的Erlang SMP假設2起:2這樣的:

Erlang R14A (erts-5.8) [smp: 2:2] [rq: 2] [async-threads: 0]

我使用的是奔騰4,這意味着我有兩個內核?

回答

4

默認情況下一個調度器對每個可用的核心啓動,並且被用於多運行隊列(每個調度器;因爲R13可用)。在您的shell中[smp 2:2]意味着您有兩個調度程序在兩個核心上運行; [rq: 2]表示您正在使用兩個運行隊列。

如果要更改調度的數量,與erl +S 4四個調度例如啓動。

確保如果在單核系統上編譯二郎,你使用--enable-smp-support在配置腳本啓用SMP。否則,您可能無法使用多個調度程序。

+0

我有點困惑。 如果我在單核上運行erlang可以用來模擬其他數量的smp核心嗎? 例如,如果你運行在單核4核上,模擬所花費的時間與直接運行到4核心相同? 你可以做這個測試嗎? – Gmp 2010-11-08 14:35:38

+0

每個調度程序是一個單獨的OS進程,默認情況下每個核心都啓動一個。儘管如此,仍然可以運行多個調度程序,但這當然不會使您的計算機「更快」。 單核心機器是一種特殊情況,因爲如果您在沒有SMP的情況下構建VM,與啓用SMP的機器相比(由於使用較少的鎖定),可能會稍微調整一下。 – Zed 2010-11-08 14:41:30