2つ目のMathカーネル

MathematicaのMathカーネルの二つ目を使うやり方を知ったので試してみた。MathematicaはフロントエンドからMathカーネルにジョブを投げて、結果をフロントエンドに返すという構造になっている。普通に複数のジョブを実行(Shift+Return)すると順番にこなす。CPUが複数あっても駄目。これだと二つ目のCPUがもったいないので少し調べてみた。
とりあえずMac限定*1。やることは非常に簡単。最近のMac OS X、10.3.?くらいから、ログアウトせずに他のユーザに切り替えるファストユーザスイッチが搭載されている。普通にログインしてからMathematicaで計算をさせて、ファストユーザスイッチで他のユーザに移って、そこで計算をさせる。これだけ。これで2つめのMathカーネルが立ち上がるので同時に計算が可能になる*2。CPUがたくさんあればいくつでも計算させられそうな気がするが、Mathematicaのライセンスうんたらの制限により2つまでしかMathカーネルが立ち上がらないらしい…が、自分のiMacには三つ目のCPUが無いので試そうとすらしてない。

*1:Linux,XP,Vistaにも同様の機能があってもおかしくないが、知らない。

*2:同時に計算をさせたいのなら、クラスタマシンにMathematicaを入れておいて、sshで入ってC++Fortranで計算させる計算させる感覚で、自分のPCのフロントエンドからジョブを投げるのが一番良い解決法だとは思う。