Scala すばやいよ Scala 。
多数の言語処理系で同じ内容のプログラムを実行し、その実行速度を比べるComputer Language Benchmarks Game (shootout benchmark) で使われている測定マシン環境が新しくなったことに気付いた。

これまでは Pentium4 と Sempron が用いられていたが、今回は Core2Quad Q6600 が加わった。 32 bit OS だけでなく 64 bit OS での測定結果も示されている。 さらにクアッドコアマシンであることを活かし(?)、レギュレーション的にシングルコアとクアッドコアに分かれている。このため C2Q Q6600での測定条件は {32|64} bits * {1|4} core の4種となっている。

マルチコア環境を活かすのが容易な Erlang では、binary-trees テストの場合、 シングルコアで 35.15秒(言語間の順位は4位)、クアッドコアでは19.21秒(順位は2位)となっている。

まだクアッドコア版の結果に登録されているプログラムはマルチコア対応されているものが少ない。自然とマルチコア対応になる Erlang を除くと、一部テストで Intel C Compiler with OpenMP や Scala with Actor で明示的に対応しているくらいだ。あとは JVM 上で動く処理系 (Java, Scala, Nice, CAL, そしてインタプリタなのでこれらより遅いけれども Groovy も) が、意図的にマルチスレッド化などをしていなくても、マルチコア環境における速度向上が binary-trees テスト等ではみられる。 JVM の並列化 GC の恩恵だろうか。 また、これらとは別に、シングルコアにおいても Java をはじめとするバイトコードにコンパイルするタイプの JVM 向け言語は実はいずれも速いんだなぁ、と改めて思う。

個人的には Scala や Python 、そして ML の類が頑張ると良いな…。
[PR]
by edogawadai_bio | 2008-09-11 04:04 | comp
<< 高知 minus >>