ござるのブログ

覚え書きいろいろ

MDArrayを試してみました

はじめに

NArrayっぽいやつをいろいろ試しました - ござるのブログ」に続いて、JRubyのMDArrayも試してみました。

実行環境は以下の通りです。

MDArray 0.6.1.2

MDArray は、JRuby用の多次元配列です。NumPy旧NArray にinspireされたものだそうです。

require 'mdarray'
require 'benchmark'

SIZE = 16384

Benchmark.bmbm do |x|
  x.report do
    r = Random.new
    a = MDArray.fromfunction('double', [SIZE, SIZE]) { r.rand }
    b = MDArray.fromfunction('double', [SIZE, SIZE]) { r.rand }
    c = a * b
  end
end

実行結果

 Error: Your application used more memory than the safety cap of 500M.

メモリが足りないと言われました。-J-Xmx12Gというオプションを付けて再実行します。

       user     system      total        real
  71.180000   3.840000  75.020000 ( 73.881698)

おわりに

やはり乱数を生成してセットするところが遅いようです。