Mathematica 10への期待(とその後)


昨年ついに無料になったMathematicaですが、思ったほど盛り上がってはいないようです。盛る上がらない原因の一つに、性能の悪さがあるのは間違いないでしょう。特にGUIはかなり重く、Manipulateなどでインタラクティブに遊ぶのは無理です。(無料のMathematicaが動くのは、700MHzのCPU、最大でも512MBしか主記憶のないRaspberry Pi上。)

実際にベンチマークを取ってみると、Windows上のMathematica 9.01(CPUはCore i7 4700MQ、主記憶は16GB)で10秒で終わるMathematicaMark9が、Raspberry Pi上では約3300秒かかりました(800MHzにオーバークロックして約3000秒)。Core i7で動かすエミュレータ上でもおそらく同じ程度でしょう。

しかし不思議なことに、Raspberry Pi上のMathematicaのほうが早く解ける問題があります。

たとえば、A^2 + B^2 == 1かつP^2 + Q^2 == 1という条件で、以下のsの最小値を単純にMinValueで「解析的に」求めようとすると、上述のWindowsマシンではなんと約20000秒かかるのに対して、Raspberry Piでは約2200秒で終わります。追記:Raspberry Pi 2では約800秒です。

s = 1/24 (3 Sqrt[3] Abs[A P] + Sqrt[3] Abs[A P + 2 Sqrt[2] Q] + 
     Abs[Sqrt[3] A P - 3 Sqrt[2] B P - Sqrt[6] Q] + 
     Abs[Sqrt[3] A P + 3 Sqrt[2] B P - Sqrt[6] Q]);

MinValue[{s, And[A^2 + B^2 == 1, P^2 + Q^2 == 1]}, {A, B, P, Q}]

(これは比較のために作った問題ではなく、実際に私が遭遇した問題です。実は、単純にMinValueを使うというのが間違っているのですが、本来Mathematicaはそういうことを気にせず使うソフトウェアのはずです。)

Raspberry Piの方が速い原因は、Windows版Mathematicaのバージョンが9.01なのに対して、Raspberry Pi版Mathematicaのバージョンが10であり、バージョン9.01と10の間で、このあたりのアルゴリズムが改良されたためだと思われます。

非力なRaspberry Piでの話なので、比較的速いCPUがあれば、エミュレートされたRaspberry Piでも同程度の時間でできるでしょうし(Windowsの場合Ubuntuの場合)、ユーザーモードエミュレーションならこの半分くらいの時間でできるでしょう(ライセンス違反なので想像しているだけです)。

というわけで、Windows版Mathematica 10のリリースを待っています。

追記:Windows版Mathematica 10がリリースされたので試したところ54秒でした(CPUはCore i7 4700MQ、主記憶は16GB)。Raspberry Piは約2200秒なので、遅すぎです

Mathematica 10への期待(とその後)” への7件のコメント

  1. このコードは先生の論文にあった88年の東大第2問だと思いますが,ベンチマーク的な話は別として,その後,この問題に対する処理そのものの改善は試みられましたでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です