主な結果(個人的な感想も含む)は以下のとおり。
- 一番早いのはC++とFortran。ほかのもっと使いやすい言語がこれらの古い言語と肩を並べられるくらい速くなったと考えている人がいるがそれは迷信である。
- また、C++とFortranでもコンパイラとOSの組み合わせでスピードはかなり違ってくるようだ。GCC系はもちろんLinux(およびMac)と相性がよく、IntelコンパイラはWindowsと相性がよい。個人的には、FortranはC++より1バージョン分遅いと聞いたことがある。
- RやMathematicaはお話にならないくらい遅い。但し、Rは統計関連のパッケージが群を抜いて充実しているので、それらが、たとえば、Juliaに移植されるまでは、有用なプログラミング言語であり続けるだろう。
- MatlabやPythonもコンパイラ(Matlabの場合Mex、Pythonの場合Numba)を使わなければお話にならないくらい遅い。OctaveなどのMatlab cloneはさらにお話にならない。
- JuliaはJust-in-timeコンパイラのおかげで、コンパイラを使ったMatlabやPython(ちょっとめんどくさい)と同じくらい速い(でもC++やFortranよりは遅い)。JuliaはMexやNumbaのように特別なことをしなくてもコンパイルされるし、Open Sourceでもあるし、CやFortranのサブルーチンを特別なことをせずに呼べるので、将来的には有望。
- 個人的に、MatlabはMatrix operationを使えば速いという人がいて、そんなことないと思っていたが、実際に、それは大体のケースで間違い。かなり小規模な(マクロのモデルで使うようなモデルの規模よりぜんぜん小さい)問題でしか成り立たない。
0 comments:
Post a Comment