黒木玄 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 を見て下さい。
2020年09月24日(木)
Mark Kittisopikul ht @markkitti
@l_II_llI #JuliaLang #Slack Come for the scientific programming, stay for the scientists.
posted at 00:05:09
#超算数 よーわからん話になっていますが、
工学畑
だと
ABCDから異なる2文字を並べるなら4×3でいいのに、
7人に5個ずつだと7×5だとダメ
ということになるんですか?(笑)
「私はそう思う」で通せば自分個人が馬鹿扱いされるだけで済むのに、多くの人達を巻き込む話にするのは非常にまずい。 twitter.com/presence_ftva/... pic.twitter.com/fNqH4y80qq
タグ: 超算数
posted at 00:15:40
高校教育から行列計算が消え去ったことによって苦悶するドイツ人学生のために,行列によるアフィン・同時変換を「触れる」アプリを作ったぞい.
codepen.io/JotaroS/pen/LY... pic.twitter.com/OR1xAUb9nx
タグ:
posted at 01:05:01
Dr. Chris Rackauckas @ChrisRackauckas
@datametrician @evalparse @rapidsai I mean, that would work, but then you wouldn't be able to JIT it to other data types. Having very optimized kernels for specific data types is never bad though, so it would be a good addition to the package ecosystem.
タグ:
posted at 01:26:14
@ChrisRackauckas @evalparse @rapidsai We also use jitify github.com/NVIDIA/jitify cuDF as @keithjkraus can explain is a bit complex but designed for flexibility
タグ:
posted at 01:34:10
@4310sy @kazuneet #Julia言語 matplotlib便利ですよね。私もJuliaのライブラリとしてmatplotlibを利用しています。
詳しくは↓
nbviewer.jupyter.org/gist/genkuroki...
1つ目のセル(添付画像1,2)はPython
2つ目のセル(添付画像3,4)はJulia
プロット部分のコードが '~' を "~" に変えただけになっていることに注目! pic.twitter.com/wKjinNQuu7
タグ: Julia言語
posted at 01:38:13
@4310sy @kazuneet #Julia言語 PythonからもJuliaを使えます!
github.com/JuliaPy/pyjulia
例えば、JuliaのDifferentialEquations.jl(←これかなりすごいパッケージ!)はPythonから使えるようになっています。
github.com/SciML/diffeqpy
タグ: Julia言語
posted at 01:46:05
@4310sy @kazuneet #Julia言語 Pythonだけではなく、#R言語 についても同様にJuliaとのあいだの架け橋ができています。
たとえば、Rのggplot2 を Julia でも使えます。
nbviewer.jupyter.org/gist/genkuroki...
逆にRでJuliaを使えるので、DifferentialEquations.jlも使える。
github.com/SciML/diffeqr
posted at 01:49:15
Dr. Chris Rackauckas @ChrisRackauckas
@datametrician @evalparse @rapidsai @keithjkraus Ahh interesting, then you may be able to connect deeply to Cxx.jl and CUDA.jl in a way that JIT compiles for new data types. That would be really useful and cool!
タグ:
posted at 01:51:54
@ChrisRackauckas @datametrician @evalparse @rapidsai The existing pipeline we have for Python is using Numba to JIT compile a Python function into PTX (docs.nvidia.com/cuda/parallel-...) which we then inline into a kernel down at the CUDA/C++ level using Jitify.
Presumably the existing PTX pipeline could be leveraged for Julia.
/1
タグ:
posted at 01:56:57
@ChrisRackauckas @datametrician @evalparse @rapidsai If Julia doesn't have the ability to generate PTX, then we still expose access to the raw pointers of the memory underneath the Columns (nice contiguous buffers), so you could likely execute in a pure Julia context.
タグ:
posted at 01:59:06
#Julia言語 以前も宣伝したが、今回も宣伝!
調べ方、大事です!
Juliaではメソッドが何に使えるかを調べたいことがよくある。
methods(sin)
→sin函数を適用できる型の組み合わせのリスト
methodswith(typeof(1.0))
→1.0の型Float64に適用できる函数のリスト
これらは結構使う。 twitter.com/ppp3141592ppp/...
タグ: Julia言語
posted at 02:16:46
Dr. Chris Rackauckas @ChrisRackauckas
@keithjkraus @datametrician @evalparse @rapidsai The problem is not that Julia can't generate PTX, but that CUDA.jl's PTX generation is much more extensive than Numba since it supports Julia structs, of which there are thousands that people want to use. Example: supporting DateTime in a Julia RapidsAI would be a nice feature
タグ:
posted at 02:17:44
Dr. Chris Rackauckas @ChrisRackauckas
@keithjkraus @datametrician @evalparse @rapidsai Julia code that is JIT compiled to PTX has this kind of support by default, whereas pure C++ kernels would need to JIT in a fancy way when it sees a new Julia type. But Cxx.jl does this for C++, and it sounds like you have a JIT involved already, so in theory this could happen.
タグ:
posted at 02:20:13
Dr. Chris Rackauckas @ChrisRackauckas
@keithjkraus @datametrician @evalparse @rapidsai The most #julialang thing that can happen here would be automatic differentiation of RapidsAI GPU-accelerated data frame operations where the data are unit quaternions from vector magnetometers in an aerospace application, all with generated code composing.
タグ: julialang
posted at 02:22:26
juliaの最適化を眺めていたけど、intrinはasmでぶち込むのではなくllvmcallでllvm-irをベタ書きで、Cのライブラリのffiはccallとか言うので呼ぶのか へぇ
タグ:
posted at 02:22:57
ルールはシンプルな程よいとまでは言わないんだけど、「無駄に複雑なルールってのは、『そういうルールにしておいたほうが都合が良い人』がいる」ってことだと思うんだよねえ。で、内申のルールについては「このルールで『都合が良い人』に、基本的に生徒は入ってへんな?」と思えるんだよねえ。
タグ:
posted at 02:28:24
マナウスではおよそ800人に1人から500人に1人が死亡した計算になる。ちなみにアマゾナス州のマナウス市は人口約200万人。60歳以上人口は約6%。
プレプリントでは再感染の頻度や集団免疫の寿命を決める歩哨になるかもしれないと述べており、この地域は今後も注目かも。
タグ:
posted at 02:29:50
Excited for a possible @rapidsai and #JuliaLang colab. Using Julia's extensive codegen (GPU and C++) magic with RapidsAI's extensive kernels would be really cool and a huge step forward over the python + numba version. twitter.com/ChrisRackaucka...
タグ: JuliaLang
posted at 02:38:34
非公開
タグ:
posted at xx:xx:xx
#Julia言語
Pythonで3次元プロットのために
from mpl_toolkits.mplot3d import axes3d
としてあったら、
using PyPlot
using3D()
しておくと、Julia側でそのまま動く場合がある。
nbviewer.jupyter.org/gist/genkuroki... twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 02:41:05
#Julia言語 Juliaでの型の階層構造を確認したければ
using AbstractTrees
AbstractTrees.children(T::Type) = subtypes(T)
print_tree(AbstractRange) pic.twitter.com/4UVwZDGiNI
タグ: Julia言語
posted at 02:46:08
#Julia言語 1つ前のツイートの内容は、野良パッケージの
github.com/genkuroki/Inte...
をインストールすれば、
using InteractiveUtilsPlus
だけで
print_tree(Number)
とかできるようになる。
タグ: Julia言語
posted at 02:48:47
薄々どころかしっかりわかっております。一部の大人のエゴイズムですね
私は幼少期「物分りのいい」少年だったのでいい成績を頂いておりましたが・・・頭が悪いわけではない友人の点数が低かった理由を恥ずかしながら成人してから知りました。
ちなみに工学(数理・情報)卒です。 twitter.com/sekibunnteisuu...
タグ:
posted at 06:48:31
いわゆる「内申点」は、(特に公立中学では)生徒本人に全然合ってない「宿題」とか、学習効果の疑問な「ノート提出」とか、学術的に誤った出題や採点の「定期試験」にもとづいているのが入試としては致命的だと思う。
タグ:
posted at 07:44:30
中村 良幸 (Nakamura Yosh @nakayoshix
Oh my Julia... (覚えてるかい♪)
2017-03-10 札幌 tech bar 「時系列と人生」にて。
これ、本当に歌ってしまって会場の皆さんに呆れられたんですけど、一部の女性にはウケてましたね。😇 pic.twitter.com/xgMnSm2OcM
タグ:
posted at 08:10:13
#数楽 #Julia言語 数値計算で分子の有理化の例。
Float64において、n=10.0^17のとき、n³より大きい最小の数とn³の差は1.66e35程度で、6n²+2n+1の6.00e34程度より大きいので、n³に6n²+2n+1を足しても値が変わらなくなる。
gist.github.com/genkuroki/cda0... twitter.com/genkuroki/stat... pic.twitter.com/IONO9DayZH
posted at 09:30:32
@benkyouaho @HShinaoka Jupyterと #Julia言語 の並列計算は無関係。
並列計算可能な設定で並列計算するコードを書けばJuliaはどこでも並列計算してくれます。
複数のjuliaを使う分散処理↓
docs.julialang.org/en/v1/manual/d...
スレッド並列↓
docs.julialang.org/en/v1/manual/m...
環境変数JULIA_NUM_THREADSの設定を忘れずに!
タグ: Julia言語
posted at 09:51:17
非公開
タグ:
posted at xx:xx:xx
@benkyouaho @HShinaoka #Julia言語 JuliaのデフォルトのBLASはOpenBLASでMKLも別に利用できるのですが、それらを使った重い計算をするとパソコンが独特のノイズ音を発します。
以前は、OpenBLASとMKLをそのノイズ音で区別できました!(笑)
タグ: Julia言語
posted at 09:55:16
@bicycle1885 @gggtta 物理的な独立性の仮定が成立していない難しい場合ではなく、独立同分布確率変数列の「統計力学」に関する「最も易しい場合」については私による解説が良いです(笑)。
genkuroki.github.io/documents/2016...
Kullback-Leibler 情報量と Sanov の定理
第2,4,6,7節が統計力学の「最も易しい場合」です。
タグ:
posted at 10:23:17
@bicycle1885 @gggtta キャンパスで学生が持っているのをよく見るのは、田崎晴明著『統計力学I,II』です。丁寧な解説が書いてあります。
例えば、系のサイズ→∞における「場合の数」の漸近挙動のみを物理的に仮定すれば一般論を展開できることがクリアに説明されています。
続く
タグ:
posted at 10:28:08
@bicycle1885 @gggtta 独立同分布確率変数列では、物理的には仮定になっていた「場合の数」の漸近挙動を、確率の漸近挙動に置き換えることによって、Kullback-Leibler情報量(これは(相対)エントロピー(密度)の-1倍に対応)のSanovの定理として比較的易しく証明できます。そのおかげで、ものすごく易しい話になるわけです。
タグ:
posted at 10:31:52
#数楽 唐突に見える形で調和級数の話を始めた理由は、漸近挙動に nᵏ だけではなく、log n も出て来る例を見せたかったから。
Stirlingの公式
log n! = n log n - n + (1/2)log n + log√(2π) + 1/(12n) + O(1/n²)
も有名。n!は巨大になるが、対数を取ると「普通の大きさ」になる。 twitter.com/genkuroki/stat...
タグ: 数楽
posted at 10:42:05
この2017年に発行された Julia の論文の引用元を見ると、どういう人が Julia を使っているのかが分かる。
epubs.siam.org/doi/abs/10.113...
タグ:
posted at 10:52:02
#数楽 「沢山微分して沢山不定積分すればもとの函数に戻る」という計算をすれば自然にテイラーの定理が得られる。 twitter.com/genkuroki/stat...
タグ: 数楽
posted at 11:00:42
#Julia言語 Juliaでmatplotlibを普通に使えることは、もしかしてあまり知られていない?
問題:添付画像1,2の片方はPythonでもう一方はJuliaです。どちらがどっちでしょうか? twitter.com/genkuroki/stat... pic.twitter.com/dfPYoHcd9q
タグ: Julia言語
posted at 11:38:19
@HcZfN0CMO9bqdNa @suminotiger @hamukazu 私はそもそもノートや発言数で教科への関心意欲は計れないと考えているので、みているのは提出の有無だけです。
中身がスカスカでもびっちりと書いてあっても評価は同じです。
実験レポートの添削はしっかりしますが、内容の評価は◯△×の3種類だけです。
タグ:
posted at 12:39:00
GeoStats.jl もけっこう楽しそうに開発されてそうでいいかも。まぁどうせいろいろいじらなきゃだから参考程度になっちゃうとは思うけど。#julialang
タグ: julialang
posted at 14:29:15
昨日Rubyの開発者の方々とお話しする機会があり、Juliaのworld age problemの話になったとき僕が「あーそれはワールドエイジプロブレムと言って…」と少し説明に詰まってしまったのだけど、皆さん"world age"という言葉の響きだけで「なんとなくは理解できました」となったので言語開発者だっと思った
タグ:
posted at 16:09:07
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
@RikeinoHanrei そもそも、関心意欲なるものを評価すること自体が内心の自由の侵害であって憲法19条違反っぽいですけどね。関心も意欲もないけどなぜかできてしまう人がいたって自由じゃないですか。
タグ:
posted at 17:12:13
@bicycle1885 @gggtta #Julia言語 統計力学のカノニカル分布の最も簡単な場合。Nが大きいとき、総和がSになる正の実数値を成分とする長さNのベクトルを適切な意味でランダムに生成すると、その成分は期待値S/Nの指数分布で近似される。添付画像はS=Nの場合。続く
ソースコード↓
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/avpmGUhhLG
タグ: Julia言語
posted at 18:07:14
@bicycle1885 @gggtta #Julia言語 ℝ^Nの中の原点を中心とする半径の二乗がNの球面上の一様分布のサンプルをXとすると、Nが大きいとき、Xの成分の分布は標準正規分布で近似される。Maxwell分布!続く pic.twitter.com/2HZPhjsaO1
タグ: Julia言語
posted at 18:10:22
@bicycle1885 @gggtta #Julia言語 総和を固定したり、ノルムの二乗を固定しなくても、Nが大きいと、同じ分布で近似されるようになる。
添付動画はノルムに2乗がN以下になるという条件を保つランダムウォーク。標準正規分布に収束している。
nbviewer.jupyter.org/gist/genkuroki...
に指数分布の場合の動画もあります。 pic.twitter.com/pkTev8y6m7
タグ: Julia言語
posted at 18:13:37
@bicycle1885 @gggtta #Julia言語 こんな感じでコンピュータを使って自分でいじれる例を作ると、統計力学の教科書に書いてある議論を非常に楽に納得できるようになります。
何か疑問があれば質問して下さいください。
タグ: Julia言語
posted at 18:15:31
RubyKaigiの発表の続きの発表の準備をようやく始めた。作成途中のスライドを公開しました docs.google.com/presentation/d...
タグ:
posted at 18:58:48
Juliaを使ってはいるけど、よく考えたらこれ実質的にPythonでは...?となる(笑)
でもやっぱり書くのはかなりラクですね。 pic.twitter.com/ePDutR0mjN
タグ:
posted at 19:06:40
#Julia言語
Juliaは高速グルー言語なので、JuliaでPythonのmatplotlibや外部コマンドのffmpegなどを使ってGIFアニメを作ることもまたJuliaらしい使い方。
ffmpegを呼び出しているところはshell scriptっぽいノリがある。
他にも便利なものがあればどんどんJuliaで貼り合わせて欲しい。 twitter.com/vnb15_19hus/st...
タグ: Julia言語
posted at 19:56:59
Macbook ProにJuliaとcommand-line toolsを入れるところでスタック。というか、Juliaは動いたんだけど、Jupyterがダウンロードできない。これが入らないと困るんだにゃー
タグ:
posted at 20:00:30
ポエム書いたん #julialang /「ゼロからできるMCMC」本をJuliaで書いてみると,Cの代わりにJuliaも良いなという気持ちになりました|たきたき zenn.dev/takilog/articl... #zenn
posted at 20:15:16
最近ユーザが本当に増えてきたのか,いろんなjlライブラリ(というかモジュールというか)があって,勉強になる.あまり難しい書き方は分からないけど,雰囲気カジュアルで使ってる
タグ:
posted at 20:16:24
非公開
タグ:
posted at xx:xx:xx
Rは型ヒントないからJuliaと違ってグローバル引数を参照する方が速そう。
a <- 1
f <- compiler::cmpfun(function(x) x * a)
g <- compiler::cmpfun(function(x, a) x * a)
ggplot2::autoplot(bench::mark(f(1), g(1, 1), check = FALSE)) pic.twitter.com/lTmrnnt65i
タグ:
posted at 22:10:43
Julia new release.
github.com/JuliaLang/juli...
#JuliaLang #NewRelease #DataScience
タグ: DataScience JuliaLang NewRelease
posted at 22:17:56
体験授業。たろうくんはコインを16枚持っていて、くみさんは9枚持っています。たろうくんは、くみさんより何枚多く持っていますか。
「…。」
「ちがいは何枚?だったら分かる?」
「16-9」
質問を変えたのは、答えに辿り着かせるためではなく、キーワードパターンマッチングを疑ったから。
案の定。
タグ:
posted at 22:19:22
@sekibunnteisuu その後は、「ちがい」を求める場合と「どれほど多いか」を求める場合それぞれについて図を描いてもらって、結局同じ図を描いてくれたので、「そういうことだ」と説明した。
“同じ”に見せることが目標のはずでしょう。
タグ:
posted at 22:28:37
#Julia言語 たきたきさんに触発されて、gcc vs. Julia の対決を再度やってみました↓
nbviewer.jupyter.org/gist/genkuroki...
C版のコードは本質的にたきたきさんのものと同じ。ただし、Juliaからライブラリとして利用するための改変をしてあります。
この話、多分初めての人はとても面白いと感じるはず。続く twitter.com/taki__taki__/s...
タグ: Julia言語
posted at 22:39:39
#Julia言語 添付画像1のgcc版と添付画像2のJulia版1は本質的にたきたきさんのコードと同じです。速度比較をすると、
Julia版1はgcc版より3~4倍遅い
です。こうなった理由はrand(2)でメモリ割当が発生していることと、normで平方根を使っていることです。続く pic.twitter.com/c8WdoICHIF
タグ: Julia言語
posted at 22:39:39
#Julia言語 そこで、メモリ割当が発生しまくらないように、Julia版1を書き変えて、さらにnormも使うのをやめてみましょう。
添付画像を見れば分かるように、Julia版2はgcc版と同じ程度の速さです(若干遅い)。
これで「めでたし、めでたし」になると面白くもなんともない!続く pic.twitter.com/wANchOKFdF
タグ: Julia言語
posted at 22:39:40
#Julia言語 「めでたし、めでたし」にならない理由は、現代の普通のパソコンでは10⁶回の単純ループに10 msかからないはずだからです!Julia版2では27 msもかかっている。
そこで、gcc版と同じ素朴なスタイルに書き直してみましょう(Julia版3)。
Julia版3はgcc版の7~8倍速い!
続く pic.twitter.com/UiQEpSnoNh
タグ: Julia言語
posted at 22:39:40
#Julia言語 Juliaで「ふつー」の感じで使える「並列処理」には
* 複数のjuliaプロセスを使う分散処理
* スレッド並列
添付画像は追加4プロセスでの分散処理の場合です。
さらに3倍くらい速くなっています。 pic.twitter.com/RkPmnyHGmL
タグ: Julia言語
posted at 22:45:29
#Julia言語 添付画像は nthreads() = 8 のスレッド並列の結果です。上の分散処理よりもさらに速くなっています。 pic.twitter.com/Fgvcb0NMAd
タグ: Julia言語
posted at 22:46:49
John Myles White @johnmyleswhite
I always find it very satisfying that so many people now look at Swift for Tensorflow and think, "they really should have chosen Julia".
タグ:
posted at 22:47:47
#Julia言語 個人的な意見では、
Juliaの速さは普通
であり、これより遅い環境を他人に使わせることは、人権問題に発展しかねないと思います。
だから、このままではgccを他人に使わせることは人権問題に発展してしまいます!(笑)
続く
全ソースコード↓
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/kJCePJnqSA
タグ: Julia言語
posted at 22:50:13
@johnmyleswhite I still recall reading this and thought the conclusion was not satisfying. Julia and Swift were the final two but I could not flow the logic that ended up choosing swift.
github.com/tensorflow/swi...
タグ:
posted at 22:54:59
#Julia言語 多項式の評価函数は実数函数であればHorner法をべた書きすると速いです。
その手のべた書きを人間がやらなければいけない環境では速度的に大きく劣化するコードを書きがちになるでしょう。
Juliaではべた書きはコンピューターに容易にやってもらえます。
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 23:19:29
@genkuroki C++のstd:randomはさらに遅いですね。難しい問題を解く場合、ここの部分はボトルネックにならないので気にしていませんでしたが。
タグ:
posted at 23:25:28
@HShinaoka うわ、答えを書かれちゃった!(笑) 全然問題ないです。
gccのデフォルトのrand()は質の面でもクズそのものなのですが、速度的にもひどい。
ちなみに、これをメルセンヌツイスターで置き換えてもJuliaに勝てません。
メルセンヌツイスターも時代遅れで、Juliaではその後継のdSFMTを使っています。
タグ:
posted at 23:25:53
#Julia言語 ホーナー法を使っていても、係数を配列に保存して使っていたりすると遅くなるので要注意です。
べた書きしないとコンピューターの計算能力を十分に引き出せない。
もちろん、人間がべた書きするのは馬鹿げているので、コンピューターにまかせるべきです。
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 23:28:30
非公開
タグ:
posted at xx:xx:xx
Stefan Karpinski @StefanKarpinski
@johnmyleswhite Frustrating though. There are so many long uphill struggles involved in using Swift for this (Windows support, bootstrapping a numerical / data ecosystem). It's a really perverse choice. If Google had put the same effort behind Julia's ML ecosystem, imagine where we'd be now 😔
タグ:
posted at 23:51:12
Stefan Karpinski @StefanKarpinski
@johnmyleswhite Don't get me wrong, the Julia ML ecosystem is one of the best around, but it wouldn't hurt to have some Google compiler engineers helping out...
タグ:
posted at 23:53:47