2017-01-12 11 views
3

のためのコアi7の中のすべての8つのコアを使用することはできませんすべてが正常に動作しますが、私はエラーがすぐに発生しは、MathWorks社のMATLAB

matlabpool open 8; 

を実行しようとします。私はハイパースレッディングについて読んで、8コアのうち4コアが仮想であることを知っています。効率的な方法で8つのコアをすべて使用することができないという意味ですか?

Matlab?

たとえば、8つの同様の独立したタスクがあります。

8コアをすべてPythonまたはC#/ C++で8倍高速で使用できますか?

+0

で使用するコンピュートスレッドの最大数を設定することができますか?それを見せてください – user3528438

+0

私は正確に覚えていませんが、 'matlabpool open 8;'を4コアマシンで実行するとエラーのようです。主な質問は「Matlabで8コア(4 + 4仮想)をすべて効率的に使用できますか」 – Qwer

+0

覚えていないが、このようなmaebyエラー matlabpoolを使用しているエラー(行148) 並列プールを開始できませんでした。 ( エラーの原因となる情報に加えて、Cluster Profile Managerのプロファイル 'local'を検証してください) 原因: parallel.internal.pool.InteractiveClient/start(行326)を使用中にエラーが発生しました プールを開始できませんでした。 parallel.Job/submit(line 304)を使用しているエラー 最低8人のワーカーを要求しましたが、クラスタ "local"に NumWorkersプロパティがあり、最大4人の作業者を許可しています。 – Qwer

答えて

2

デフォルトでは、ハイパースレッドが最終的に同じ物理CPUリソースを共有するため、MATLABはマシン上のハイパースレッドコアの数ではなく、物理コアの数を使用します。 /あなたは8人の労働者を使用する場合は、あなたがあなたの'local'設定のNumWorkersプロパティを変更したいと思うMATLAB Answers

に、この記事ではハイパースレッドを使用する利点があってもなくてもよい具体的な例についての詳細情報があります

cluster = parcluster('local'); 
cluster.NumWorkers = 8; 
saveProfile(cluster); 

代わりに、あなたは何maxNumCompThreadsエラー

maxNumCompThreads(8) 
+0

ありがとうございますが、このような手順は独立した同様のプロセスを加速しますか?残念ながら、私はコアi7を今は持っていませんが、コアi5でコードを使用して12人のワーカー(4コアしか持たない!)を取得すると、加速することはできません。あなたのコードは、4倍の加速ではなく、実際の8倍の加速を得ますか? – Qwer

+0

@Qwerリンクされた答えに記載されているように、問題に非常に依存しますが、集中的なタスクでは、ハイパースレッドを使用しても改善が見られません。 – Suever

+0

@Qwerこれはあなたのために働いた場合、解決策としてそれをマークすることを検討 – Suever

関連する問題