|
|
|
堀之内 武・川那辺 直樹・塩谷 雅人 |
|
(京大宙空電波研究センター), |
|
後藤 謙太郎, |
|
神代 剛(富士通FIP), |
|
電脳Rubyワーキンググループ |
|
|
|
|
Rubyを地球・惑星流体データの解析、可視化、さらにシミュレーションに用いるための基礎的なライブラリー群を開発する |
|
|
|
|
現在多くの研究者が行なっている可視化やデータ解析の方法はあまり時間効率が良くない |
|
データの大規模化・多様化 |
|
データのネットワーク分散 |
|
|
|
|
型なし、スクリプト言語(インタープリター) |
|
⇒ 素早くプログラムが開発できる |
|
対話的に利用可能 |
|
後付けでないオブジェクト指向言語 |
|
移植性・拡張性が高い |
|
増え続けるライブラリー(ネットワーク関連 / GUI / データベース等々) |
|
文字処理が容易 |
|
GC、例外処理等の支援機能あり |
|
|
|
|
|
一例: データ構造・媒体を隠蔽した統一的な扱い、 |
|
抽象度の高い命令 ⇒ プログラミングが楽、汎用性 |
|
|
|
|
流体の場合、計算量を増やすのは主にデータサイズ(グリッド数) |
|
|
|
⇒ |
|
Cのべた並びポインターを構造体にくるんだ多次元数値配列クラスNArrayを利用 |
|
C等で書かれた(既存)数値計算ライブラリーをラッピング |
|
|
|
|
|
Gtk, DCLによるNetCDFビューワー(by西澤、実験段階) |
|
数値シミュレーション用MVCフレームワーク(by高橋(前講演)、実験段階) |
|
|
|
|
オブジェクト指向スクリプト言語Rubyを地球・惑星流体データの解析、可視化、シミュレーションに用いるための基礎的なライブラリー群を開発している |
|
これまでの開発・利用例を通じてその有用性が示されてきたが、今後さらに精力的な開発を行なう必要がある |
|
|
|
|
現在未完成・未サポートライブラリーの作成 |
|
利用者獲得 ⇒ 改良・機能増強 |
|
分散データベースへの対応(Pandra, DODS) |
|
気象学等の細分野用アプリケーション作成 ⇒ コミュニティーでの資源共有 |
|
|
|
|
|
自己記述的データオブジェクトのクラス:NetCDF型データモデル |
|
(今のところ)NetCDFファイル中のデータ、実行時にメモリー上に存在するデータに対応 |
|
メモリーに乗り切らない大規模ファイルの処理を行なうための、自動分割イテレーターをサポート |
|
|
|
|
|
|
|
|
|
|
「配列指向」 |
|
複数の変数=多次元配列(スカラーを含む)を納める |
|
変数、ファイルは名前と値の組による「属性」を持てる |
|
|
|
|
|
メモリー上に一度に読み込むには大きすぎるデータの処理用に、詳細を隠蔽した形で自動分割、繰り返し処理を行うイテレーターを作成。(参照によるサブセット切り出しを利用) |
|
使用例: |
|
bigdata.each_subset_set{|sub| |
|
x = - sub * (sub - 1.0 ) |
|
x[ x.lt 0 ] = 0 |
|
x |
|
} |
|
|
|
|
|