黒木玄 Gen Kuroki
- いいね数 389,756/311,170
- フォロー 995 フォロワー 14,556 ツイート 293,980
- 現在地 (^-^)/
- Web https://genkuroki.github.io/documents/
- 自己紹介 私については https://twilog.org/genkuroki と https://genkuroki.github.io と https://github.com/genkuroki と https://github.com/genkuroki/public を見て下さい。
2018年02月02日(金)

「精度保証付き演算 Julia」で検索してでてきた記事でワロタ。どこの国にもJuliaおじさんがいるのかな?
> メキシコから来た某juliaおじさんのjulia押しが強力で割と印象に残りました。
verifiedby.me/adiary/0100
タグ:
posted at 00:03:40

Juliaで精度保証付き数値計算のライブラリ(ValidatedNumerics.jl)作ってる人がメキシコの大学の人やってんけどこの人かな?
github.com/JuliaIntervals...
sistemas.fciencias.unam.mx/~dsanders/
タグ:
posted at 00:16:47

PyOpenCLでPEZY-SC2叩いてみてるけど、Python部分が遅すぎて死(´・_・`)PythonでGPGPUとかやってる人、これで満足してんの…(´・_・`)
タグ:
posted at 00:32:38

@tanakh @FmtWeisszwerg ということでGoな人たちがいろいろ力技で載せ替えようとしていたりJuliaな人達が出てきたりしてるんだがRustはどうなん?
タグ:
posted at 01:13:08

Python が使われてるのは REPL が使いやすい上に IPython Notebook とかがあって試行錯誤がやりやすいからだから、 Julia は有望だけど、一気にコード書いて動かすRustやGoとは競合しないかと。
ファイル操作に ls とか rsync 叩くのにシェル使ってるの、わざわざ Go や Rust に置き換えないのと同じく twitter.com/Kumappus/statu...
タグ:
posted at 01:27:18



twitter.com/hiding_koukyo/...
#Julia言語 は函数f(x)をf(2)とかf(2.0)のように初めて実行するときに引数の2, 2.0の型に合わせてネイティブコードへのコンパイルを実行します。初回の函数実行にはその分のオーバーヘッドが生じます。
前もってコンパイルする試みもありますがまだ普通には使えない。
タグ: Julia言語
posted at 07:53:50




juliaが目指しているのはここで、(多分)。C言語だと、SSE2命令を持ってるか持てないのかを一々気にしてコードを書かないと駄目だけれどもその部分をllvmに任せて、llvmがCPUに向けて最適化してやれば良いという思想。
タグ:
posted at 08:56:52

julia言語側で気にするのは、整数型なのか、浮動少数点なのか程度で本来これすらも無しにはしたかったのだけれどもそうは行かないので、動的に多重ディスパッチという仕組みで対応してる訳やね。
コード書く人が気にするべきは、そのアルゴリズムで早いのかだけで良いようにしたいって事なんだ。
タグ:
posted at 08:59:44





#Julia言語 とgccの速度比較をした経験から、gccの側でOpenMPなんかを使ったりしない場合に限れば、gccとJuliaによる単純計算の実行速度はそう変わらないと思います。2倍もの大きな違いはない。大体4秒と2.85秒のような違い。
nbviewer.jupyter.org/gist/genkuroki...
nbviewer.jupyter.org/gist/genkuroki...
タグ: Julia言語
posted at 14:49:54


@genkuroki ありがとうございます。確かJulia側の資料でCとは2倍程度か2倍以内といったような記述があったと思います。ちょっとソースが見つけられないですが。
タグ:
posted at 14:57:24


@genkuroki Julia側の資料というのは私の記憶違いかもしれません。Juliaの日本語版wikipediaには「完全に最適化したC言語に比べて2倍速ほどしか計算パフォーマンスが悪化しないことが知られている。」とありましたが、ソースを見ると2012年の資料でした。あとCではなくC++のようです。
julialang.org/images/julia-d...
タグ:
posted at 15:35:44


@genkuroki よく見るJulia側の資料だと具体的なコメントはありませんが、結果を見ると「遅くともCの2倍以内で、むしろCより速い時もある」といった感じでしょうか。
julialang.org/benchmarks/
タグ:
posted at 15:45:37

「JuliaがCより2倍遅くなる」説の出どころと検証が望まれる。一応日本語版wikipediaには「完全に最適化したC言語に比べて2倍速ほどしか計算パフォーマンスが悪化しないことが知られている」という記述があるが、ソースは2012年で、図はC++との比較になってる。
julialang.org/images/julia-d...
タグ:
posted at 16:08:32

@bicycle1885 julialang.org/benchmarks/ 見ると recursion_quicksort が C との比で 0.94 なのでちょっとだけ速いみたいです。 recursion_fibonacci は逆に 1.96 ですが。
タグ:
posted at 16:21:11





#Julia言語 最大公約数のStein法(binary法)による計算では、gccとJulia(とRust)のあいだに計算速度に実質的な違いはないです。
nbviewer.jupyter.org/gist/genkuroki...
の後半にその証拠があります。
現在のJuliaのgcdは私のmygcdに置き換えるべきかも。
タグ: Julia言語
posted at 17:47:01

#Julia言語 julialang.org/benchmarks/
でrecursion_fibonacciではCより倍遅くなっていますが、tail call optimizationをわざと入れていないJuliaにとっては不利なテストになってしまってしまっている可能性があります。(そもそもフィボナッチ数列はベンチマークテストに向いていない題材だと思う)
タグ: Julia言語
posted at 17:47:01

#Julia言語 における tail call optimization 事情については以下を参照:
github.com/JuliaLang/juli...
この手の話題はBezansonさんの発言をひろって読めば十分だと思う。
タグ: Julia言語
posted at 17:47:02

@goropikari_ どうもありがとうございます。
しかし、その方法は個人的に他人にすすめたくないです。公開のJupyter notebookには~/.juliarc.jlでの特殊な設定を書いておいてもらいたいです。その理由は同じJupyter notebookで異なる画像ファイルが得られてしまうから。
juliaboxユーザーのことも気にしています。
タグ:
posted at 17:49:52

twitter.com/cometscome_phy...
#Julia言語 とCythonとなまPythonの比較部分を引用 pic.twitter.com/gblGn7xqL6
タグ: Julia言語
posted at 17:57:08



非公開
タグ:
posted at xx:xx:xx


ベイズ推論による機械学習のリポジトリにあるJulia codeを理解したいんだけど、juliaを学習するのは何が手っ取り早いですかね…とりあえずDistributionパッケージをいじって勉強してるとこなのですが。 github.com/sammy-suyama/B...
タグ:
posted at 18:12:01

非公開
タグ:
posted at xx:xx:xx

#Julia言語 はtail call optimizationはいらないという立場。
github.com/JuliaLang/juli...
Bezansonさんの発言をひろって読めば十分。
数値計算を高速にしたい人はrecursive callを基本的に使わないと思うので、そういう人達には関係ない話。
タグ: Julia言語
posted at 18:41:02

非公開
タグ:
posted at xx:xx:xx

@genkuroki Juliaに不要かは別問題として、再帰呼び出ししなくてもTCOが関係することはあります。関数定義の最後の関数呼び出しを単なるjumpに置き換えるのがTCOですから、前処理を行った後で下請け関数に丸投げするスタイル、つまり、ラッパ関数を多用していると、TCOのご利益があることもあります。
タグ:
posted at 18:49:59


Juliaのイラストはうにさんが描かれてますね。LLVMも期待してます。ロゴが中二っぽい。
en.m.wikipedia.org/wiki/File:LLVM... twitter.com/wnk_datasci/st...
タグ:
posted at 20:22:20

@bicycle1885 それは助かります。どうもありがとうございます。あと、私が書いたコードは信用できないかもしれないので(一応私なりにテストはしてみた)、チェックを入れて頂けると助かります。
タグ:
posted at 20:28:57

#Julia言語 あと、
julialang.org/benchmarks/
を見ると、JuliaはCよりもmatrix-statisticsで1.79倍遅くなっていますが、ツイッターではしつこく強調したように、擬似乱数の質は科学研究では極めて重要です。擬似乱数の質も同時に比較しなければ意味のないベンチマークだと思う。
タグ: Julia言語
posted at 20:37:17



#Julia言語 小ネタ
v0.5.2とv0.6.2の速度比較をしてみました。円周率のモンテカルロ計算。v0.5.2では a ? b : c (if a; b; else c; endと同じ)をifelse函数に書き直さないと速くならなかったのですが、v0.6.2では a ? b : c のままで速い。
nbviewer.jupyter.org/gist/genkuroki...
タグ: Julia言語
posted at 21:14:39




#Julia言語 まず、以前やってみたKdVの数値解です。初期条件はsinでsinがたくさんのソリトンをばらまく。
例によってソースコードは
nbviewer.jupyter.org/gist/genkuroki...
で全公開してあります。自由に複製改変して配布して構いません。私に無断で売っても構いません(無料のものを買う人がいるなら😝)。 pic.twitter.com/ctc0lNb7c1
タグ: Julia言語
posted at 22:53:18


@wkbme 素で間違いました、ありがとうございます笑 ありますよ〜、PyPlotを使えば、matplotlibが同じように使えます。twitter.com/ceptree/status...
タグ:
posted at 22:55:33

#Julia言語 同じ sin の初期条件で a²=0.15 のSmith方程式の数値解。
Smith方程式の数値計算の方がKdVより格段に大変で空間方向のメッシュを倍に時間方向は4倍に細かくしてあります。
ソースファイルは上と同じ。 pic.twitter.com/vraHkBG3Sy
タグ: Julia言語
posted at 22:55:45

Juliaで学ぶタイトバインディング模型とトポロジカル物質、第四回はジグザググラフェン。やっと端状態の出る模型になった。グラフェンの計算もJuliaなら楽々。
nbviewer.jupyter.org/github/cometsc...
github.com/cometscome/Tig...
タグ:
posted at 22:57:11

#Julia言語 a² = 0.15のSmith方程式で初期条件をKdVの2ソリトンにした場合。Smith方程式はa→0の極限でKdVになるのですが、KdVとは違うので色々面白いことになっている。 pic.twitter.com/wJznUpdYEL
タグ: Julia言語
posted at 22:58:12

#Julia言語 以上で紹介した動画はすべて次のリンク先にもあります。リンク先にはソースコードも含まれている。
nbviewer.jupyter.org/gist/genkuroki...
FFTを用いた熱方程式やKdV方程式などを数値解法の in-place 版
熱方程式やシュレーディンガー方程式も数値的に解いています。
タグ: Julia言語
posted at 23:00:40








#Julia言語 ポテンシャル V(x) = -100exp(-x^2/100) のシュレーディンガー方程式の初期値問題の数値解。ポテンシャルの井戸の中で振動している。実部が青で虚部が橙破線。
この動画も結構お気に入り。 pic.twitter.com/4crSIgPgAE
タグ: Julia言語
posted at 23:27:19

斉藤 淳 『アメリカの大学生が学んでいる @junsaito0529
自分のGrammar in Use 使用法は至って単純。左側ページの解説を英語のまま読み、右側ページの問題を解く。外れた問題だけ解き直す、の繰り返し。意外かもしれないけど、英文法の説明は英語でそのまま理解した方が正確だし、速い。 #マーフィーinJapan pic.twitter.com/ny1kTdxZZG
タグ: マーフィーinJapan
posted at 23:39:25

Chapman, "Evaluating ζ(2)":
www.uam.es/personal_pdi/c...
のproof 9 に前半のヒントを付けた感じかな twitter.com/tactn001/statu...
タグ:
posted at 23:43:58