Daily Julia #7

JuliaCon 続き。

Simon Byrne — Distributions.jl

  • 統計における分散を扱うパッケージ
  • 例:カーネル密度推定が簡単に実装できるよ!
  • Rmath をぶっとばせ
  • ポアソン密度関数を例に。式変形をうまくしないとオーバフローが起きたり桁落ち誤差が起きたり収束も遅かったり
  • log を直接求めるのは安定しないのでテイラー展開➡わかる
  • テイラー展開は正負の項が交互に現れるので桁落ち誤差が起こる➡わかる
  • r = x / (x + 2) と置けばすべて正の項になるので桁落ちがなくなる➡???
  • 桁落ちがなくなるのは分かるが r をどうやって思いついたのか見当がつかない
  • 数学能力が低過ぎて悲しい
  • 解析の勉強真面目にやり直さな…うう…
  • ちなみに Rmath は Horner 法で展開しているらしい➡IFPH でやったことあるやつだ!
  • 他にも様々なトピックがあるが曖昧な理解なのであまり触れるのやめておこう…

Dan Wlasiuk — A Brief History of TimeSeries

  • 時系列分析パッケージの基本的な使い方
  • パッケージのコードが少なめ。ミニマムな設計
  • Apply 系の関数は早いが Merge 系の関数が遅い。プルリク歓迎とのこと
  • 存在しないデータをどうするか。DataFrames と同様の問題に直面している
  • TimeSeries は存在しない値をなかったことにしている(NaNすら使わず単にテーブルが存在しない)
  • TimeSeries を利用しているいくつかのライブラリはこの対応に満足していない。Pandas のように NaN を詰めている(e.g. Quandl
  • R (quantmod) や Python (Pandas) との違いなど

Reid Atcheson — Rapidly Iterating from Prototype to Near-C Performance in Julia: A Finite Element Method Case Study

  • 有限要素法 (FEM) を実装したよ!
  • FEM の詳細には立ち入らずいかにして高速化したか
  • 一時変数をなくし ccall に切り替え devectorize した
  • naive な Julia コードに比べて 5 倍の高速化

Avik Sengupta — Moving Julia into Production

仕事で使ったという話かな。話を聞かないと分からないタイプのスライドだと思う。

Arch Robison — Practical Vectorization in Julia

Intel の並列計算の人らしい。ひえー。

内容は SIMD 並列化の話。まだシンプルな例に対してしか動かない、@inbound が必須、Float32 が最適、など種々の制限を抱えているが高速化はうまくいっているとのこと。

グラフィックスとマルチメディア

以下のセッションはマルチメディア・可視化関係なので感想だけ。

breakout session — package ecosystem (led by Iain Dunning)

パッケージ周りの状況。GitHub を中心にエコシステムが回ってるんですなー。pkg.julia.org はソーシャル圧力なのか…

Yuri Vishnevsky — Generative Art with Julia

Stackoverflow で見つけた visualization ネタを Julia に移植した的な。これは見ないと分からないが奇麗。

Daniel C. Jones — Gadfly: native Julia plotting and visualization

Gadfly は Julia では有名どころのプロットライブラリ。D3.js ベース。いい感じの作例が多い。

Spencer Russell — Realtime Audio in Julia with AudioIO.jl

オーディオライブラリあるんですか。無茶しやがって…感が強い。

これでいまのところ公開されている資料はひとさらいした。残りは Julia Core 関連のセッションなのだがこれはまだ来ていない。Bezanson による Julia Internal 解説や Leah Hanson による TypeCheck, Keno Fischer による Debugger の実装など重要度が高いセッションばかりなので早く見たいのだがこればかりは待つしかない。