SciRuby/daru

Use of broadcasting data strucutures for daru internals.

Open

#328 opened on 2017年3月31日

GitHub で見る
 (6 comments) (0 reactions) (0 assignees)Ruby (140 forks)github user discovery
difficulty: expertenhancementhelp wantedperformancequestion

Repository metrics

Stars
 (1,060 stars)
PR merge metrics
 (PR metrics pending)

説明

Currently, daru uses Arrays for storing data inside Vectors, which are collectively stored inside a dataframe.

However, this approach reduces the speed of most mathematical operations due to everything being a Ruby object and all the looping operations happening in Ruby.

I would like to explore alternatives to re-implementing daru's internal data structures in something like NMatrix or Numo::NArray for more efficient storage of data. @genya0407 's sake gem does this to some extent but it is still not as widespread as that of pandas.

This will most probably make use of broadcasting data structures. In the interest of speed, do you all think it would be alright to sacrifice compatibility with JRuby? Since NMatrix has a Java backend, how about implementing broadcasting in NMatrix and rewriting daru's internals using NMatrix?

Please pitch in your ideas into this thread.

CC: @mrkn @zverok @genya0407 @gnilrets @lokeshh @kozo2

コントリビューターガイド