MATLABからの物理コアの数を照会するにはどうすればよいですか?
-
25-10-2019 - |
質問
MATLABから物理コアの数を照会する方法を知っている人はいますか?私は特に、論理的なコアではなく物理的な数を取得したいと思います(これは、ハイパースレッドが有効になっている場合に異なる場合があります)。
クロスプラットフォーム(WindowsとLinux、Macを気にしない)にする方法が必要ですが、2つの別々の方法を使用して喜んでいます。 switch
の出力に基づくステートメント computer
.
これまでに試しました:
java.lang.Runtime.getRuntime().availableProcessors
System.Environment.ProcessorCount
!wmic cpu get NumberOfCores
と!wmic cpu get NumberOfLogicalProcessors
.
1はクロスプラットフォームですが、物理プロセッサではなく論理的な数を返します。
2はWindowsのみであり、物理プロセッサではなく論理的なものを返します。
3物理的および論理的なプロセッサの両方を提供しますが、Windowsのみであり、DOSコマンドウィンドウから正常に使用することはできますが、何らかの理由でMatlabから実行すると永遠にぶら下がっているようです。
解決
文書化されていないコマンドを使用する必要があります
feature('numcores')
ここで説明したように: http://undocumentedmatlab.com/blog/undocumented-feature-function/
他のヒント
これは機能します
getenv('NUMBER_OF_PROCESSORS')
関数を使用できます maxNumCompThreads
. 。しかし、それは非推奨です。それでも、Matlab 2011aで動作します。
maxNumCompThreads
Warning: maxNumCompThreads will be removed in a future release. Please remove any
instances of this function from your code.
> In maxNumCompThreads at 27
ans =
4
所属していません StackOverflow