hirax.net::Keywords::「表計算プログラムでシミュレーション」のブログ



2009-05-30[n年前へ]

エクセルのマルチスレッド機能 

 Microsoft Excel 2007 を使っていると、前のバージョンとは違い、マルチスレッドの設定ができることに気がついたのです。そこで、試しに、以前遊んだ「エクセルでシミュレーション」シリーズのワークシートを使い、CPU数=1にした時とCPU数=2にした時の速度比較を行ってみました。「10×10ほどの小さな空間分割でポワソン方程式を差分法で解く」というワークシートで比較をしてみたのですが、計算時間にはまったく違いがみられませんでした。

 考えてみると、このワークシートの場合、セル間が循環参照されていて、単純に「独立に複数スレッドで(領域分割して)計算をする」というようなことはできそうにありません。これでは、マルチスレッド計算の効果が表れないのも、当然といえば当然です。

 そこで、次に、先ほどのワークシートを独立した2つの「10×10の空間」の電界計算をするものに変えてみました。といっても、つまりは、コピー&ペーストして、2つの領域を作ってみただけです。今度は(マルチスレッド機能のCPU使用数の違いで)計算時間に差が出るかと思いきや、・・・CPUの数によらず、やはりどちらも35秒ほどで、マルチスレッドの効果は現れませんでした。

 「エクセルに深入りしたらおしまい」「エクセルは時間泥棒」と常々思っているのですが、「エクセルのマルチスレッド処理の動きがどのようになっているか」を調べたくてたまらないのです。もちろん、そんなことを始めたりしたら「時間がなくなる一方」になってしまうわけですが・・・。

エクセルのマルチスレッド機能








■Powered by yagm.net