CPU 效能:時脈速度或核心數運行 JMP 時,是在較低頻率下擁有更多核心更好還是反之亦然? 我認為很少有平台是線程化的,所以這會讓我相信時鐘速度更重要。但我不確定這是否仍然正確。我知道我正在談論一般情況,而準確地談論它幾乎是不可能的。不管怎麼說,還是要謝謝你。
回覆:CPU 效能:時脈速度或核心數JMP 使用可用處理器的效果取決於正在運行的分析平台和正在處理的資料。 以下是 JMP 在文字解析階段運行文字資源管理器,處理長文檔,行數 > 處理器數。 (其他平台的行為會有所不同,有些平台將無法利用線程。 文字資源管理器的解析是我最近使用的。)
100% busy100% busy100%忙碌
Text Explorer 的演算法並不總是能夠使機器保持 100% 忙碌。 有些工作取決於首先完成的其他工作,而有些執行緒化工作會以讓執行緒等待的方式競爭資源(例如記憶體存取)。
dt = New Table( "bigtext",
Add Rows( 1000 ),
New Column( "text", Character, "Nominal", formula( Repeat( "aaa bbb ccc ", 1e5 ) ) )
);
dt << Text Explorer(
Text Columns( :text )
);
增加更多CPU是有限制的;這裡所有 32/64 CPU 看起來都很忙,但工作的進行速度大致相同:
100% busy but not making progress much faster100% busy but not making progress much faster100%忙碌,但進展並沒有更快
我懷疑這些 CPU 互相妨礙。 在記憶體中移動的 1 GB 文件有很多機會攪動 CPU 中的快取。 大多數 JMP 是在具有 4 到 12 個 CPU 的機器上開發的,這很可能是演算法調整的目的。 例如,在 Text Explorer 完成解析步驟後,它會使用一半的處理器組合解析結果,因為我們確定這比在 8 CPU 電腦上使用所有處理器更快。
所以,是的,4-12 個 CPU、更快的 CPU 以及足夠的記憶體以避免分頁。 如果您沒有足夠的記憶體來保存資料而不分頁到磁碟,那麼其他方法都無濟於事。
回覆:CPU 效能:時脈速度或核心數@vince_faller :為了回答您最初的問題,我個人建議優化 JMP 的一份副本(在 Windows 上)是盡可能使用最快的 4 或 6 個處理器。
@tx尼爾森:我應該更清楚,JMP 通常使用所有核心的一小部分,但它並沒有充分利用它們。這讓我相信 JMP 運行時實際「工作」線程少於 8 或 12 個,並且處理由作業系統從一個核心轉移到另一個核心。
JMP 的這項特性令我困擾,因此我花了一些時間來測試我的理論,即 JMP 僅使用總核心的一小部分。 以下是在各自的 JMP 實例中同時執行以下腳本的 1、2、3 或 4 個副本時的結果。
一個實例
19-21秒

兩個實例
26-28秒

三個實例
34-39秒

四個實例
43-47秒

一次運行兩個副本的時間肯定少於運行一個副本兩次的時間:

Names default to here( 1);
dt = Open( "$Sample_data/probe.jmp", Private );
Random reset(1);
valcol = dt << New Column( "Validation",
Numeric, "Nominal", Set formula( Random Category( 0.75, 0, 0.25, 1, 2 ) ),
Value Labels( {0 = "Training", 1 = "Validation", 2 = "Test"} ), Use Value Labels( 1 )
);
dt << Run Formulas; valcol << Delete Formula;
timeboot = Function( {},
start = Today();
xvars = Substitute(Char((dt << Get Column Names)[8::394]), "{", "", "}", "");
Eval( Parse(
"rf = dt << Bootstrap Forest(
Y( :Process ),
X( " || xvars || " ),
Validation Portion( :Validation ),
Method( \!"Bootstrap Forest\!" ),
Portion Bootstrap( 1 ),
Number Terms( 30 ),
Number Trees( 2000 ),
Early Stopping( 0 ),
Go
);"
));
rf << Close Window;
end = Today();
return(end - start);
);
win = New window("Time Bootstrap",
V List Box(
r = text box( "", << Set Width( 100 ) ),
H List Box(
Button Box( "Start", r << Set Text( Char( timeboot() ) || " seconds" ) ),
Button Box( "Close", dt << Close Window; win << Close Window; )
)
)
);回覆:CPU 效能:時脈速度或核心數我的發現有所不同,這可能是由於我測試的平台所致。當我執行 Random Forrest 時,我可以輕鬆地在 Windows 7 和 Windows 10 上的所有 cpu 上運行。平均而言,佔用總 cpu 能力的 35% 以上。我只有 8 個進程……不是你所說的 12 個進程,但所有 8 個進程都在解決這個問題。
回覆:CPU 效能:時脈速度或核心數我還沒有見過任何一個 JMP 實例在 Windows 7 桌面上使用 12 個核心中的 6 個以上。 通常,處理器使用率達到 25% 時就會出現卡頓現象。回覆:CPU 效能:時脈速度或核心數文斯,
大多數分析平台都是多執行緒的,而JSL大多是單執行緒的。所以這是一個混合情況。我的建議是打開任務管理器,然後打開其中的效能標籤。然後,如果您運行典型的作業流程,您將清楚地看到應用程式何時在多核心上運行以及何時在單核心上運行。從那裡,您可以做出決定。