LTspiceの計算時間

published_with_changes 更新日: event_note 公開日:

labelLTspice Tips

 LTspiceを良く使います。

私は電気/電子工学的な基礎がないのに、電子工作に興味を持ちました。作ることが好きな自分にとって、電子工作は比較的安価に色々試して遊ぶことができるので楽しめます。それにネットの情報が豊富なので、知識がなくてもみよう見まねで何とかなります。その時、事前検討や結果検証にLTspiceを使います。

シミュレーションの中には、初期値を探し回っていたり、計算を始めても0.1%づつしか進まなかったりするケースがあります。前者は初期条件の与え方なので、方策を学んで解決していくことになります。後者はオペアンプ数個でこのようになるケースがあり、良くわかりません。力業で行くには速いCPUを使うことです。

メインに使っているPCはノートで、Core(TM) i5-6300U CPU @ 2.40GHzなのですが、CPU性能が高いゲーム機PC Xeon E5-1680 v2 25M キャッシュ @ 3.00 GHzを使えば直ぐ計算できるに違いないと思い、やってみました。

2コア4スレッドが8コア16スレッドになるので、それだけでも4倍仕事をしてくれるはずですし、グラボはGTX1080Tiだから、浮動小数点演算も得意だろうと思っていました。

結果は、
計算時間を測定して比較した訳ではありませんが、体感上、そんなに早くはない。せいぜい2倍くらいかなぁというレベルです。

そこで、タスクマネージャでCPUの働き具合を見てみました。

Core(TM) i5-6300Uが100%のフル稼働をしているのに比べ、Xeon E5-1680は30%しかCPUが働いていません。各コア/スレッドも休み休みに働いている状況です。エクセルを同時に開くと、エクセルには何もさせてませんが、CPUは50%まで仕事をしています。

LTspiceのconrol panelのengineにはCPUのスレッドを指定する項目がありました。図はノートPCの例ですが、Xeonではこれが16でした。
でも、フル稼働はしないようです。

LTspiceの海外フォーラムに下記のようなやり取りがありました。

大胆に要約すれば
  • シミュレーションする回路によって、LTspiceが最適なスレッド数で計算する。簡単な回路を数多くのCPUコア/スレッドで分けて計算することはない。
スレッド数やコア数で速さを稼いでいるCPUより、一つのコアが速いCPUが計算時間を短縮できるという落ちのようです。
何かの設定をいじるとかシミュレーションモデルの工夫で、全コアで計算するようにできる訳ではありません。

From Help by searching for threads:
 The actual number used in any given simulation depends on the nature of the circuit. While LTspice introduces stochastically cooled threads to define the state of the art of multi-threaded SPICE simulation, there are some circuits that cannot benefit from multiple threads. 
特定のシミュレーションで使用される実際の数は、回路の性質によって異なります。LTspiceは確率的に冷却されたスレッドを導入してマルチスレッドSPICEシミュレーションの最先端を定義しますが、複数のスレッドの恩恵を受けられない回路もあります。

If you run an LTspice simulation of a simple circuit that cannot be divided up into N simultaneous processes, then it won't.  It may need to run as only a single thread.  (Or two threads, or three or whatever.)  When a circuit is simple, you can't divide it up into smaller pieces to run simultaneously.  You must do the calculations sequentially.

N個の同時プロセスに分割できない単純な回路のLTspiceシミュレーションを実行する場合、実行されません。単一のスレッドとしてのみ実行する必要がある場合があります。(または2つのスレッド、または3つなど。)回路が単純な場合、それを小さな部分に分割して同時に実行することはできません。計算は順番に行う必要があります。

Multi-core CPUs do help LTspice, but not EVERY circuit.  If you run a single simulation of a complex circuit, LTspice probably can divide the job up into six, or eight, or 20 threads, and finish N times faster than if it had only one CPU core.  The maximum number is limited by the larger of what's in the CPU, and the setting in LTspice's Control Panel.  But the actual number depends on the circuit.

マルチコアCPUはLTspiceに役立ちますが、すべての回路に役立つわけではありません。複雑な回路の単一のシミュレーションを実行する場合、LTspiceはおそらくジョブを6、8、または20スレッドに分割し、CPUコアが1つしかない場合よりもN倍速く終了する可能性があります。最大数は、CPUにあるものの大きい方と、LTspiceのコントロールパネルの設定によって制限されます。ただし、実際の数は回路によって異なります。

Powered by Blogger | Designed by QooQ

keyboard_double_arrow_down

keyboard_double_arrow_down