黒木玄 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年10月03日(土)
1次元シュレーディンガー方程式を有限要素法で解いてみる in Julia qiita.com/cometscome_phy... #Qiita
タグ: Qiita
posted at 23:35:50
#Julia言語 添付画像1はPython版で2はJulia版。おそらくJulia初心者にはJulia版への変換が難しい例。
しかし、fig = ~の行以降は本質的に '~' を "~" に置き換えただけ。その部分はぱっと見には区別できない(笑)
Julia版でmeshgridをどのように実現しているかにも注目!
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/k3r5O2JEbT
タグ: Julia言語
posted at 23:33:40
@NOKKO42554780 その通りです。
彼ら「順序守れ派」は、2年生の授業のあいだだけの秩序や行儀だけを考えていて、子ども達が最終的に何を身に着けるかはこれっぽっちも考えていないのです。#掛算
タグ: 掛算
posted at 23:31:08
Johannes Boehm @johannesmboehm
@quantenvogel @JuliaLanguage Linear Regressions with FixedEffectModels.jl; nonlinear regressions typically hand-coded with JuMP.jl (unless there are canned estimators for my problem). JuMP+Knitro for optimization.
タグ:
posted at 23:16:38
#Julia言語 以下のリンク先の件について、ごちゃごちゃ不快で余計なことを言わずに黙って解決策の「コードとコンパイル法の完全な情報」を公開している人がいたら教えて下さい。
大事な点はC++側でAをやったら、Julia側でもAをやった場合にどうなるかも確認が必要なことに言及すること。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 23:15:32
Volker K. @quantenvo @quantenvogel
@johannesmboehm @JuliaLanguage Hi Johannes, which libraries are you using for your optimization & regression?
タグ:
posted at 23:02:57
#Julia言語 PyCallについては私がツイッターで紹介してGitHub Gistに投稿したものが検索でヒットすれば助かる人は結構多いと思う。
beutifulsoup4の使用例
nbviewer.jupyter.org/gist/genkuroki...
PandasからJuliaのデータフレームへの変換
nbviewer.jupyter.org/gist/genkuroki...
PyPlot(添付画像)
nbviewer.jupyter.org/gist/genkuroki... twitter.com/nosuz/status/1... pic.twitter.com/ESzHYMqhAn
タグ: Julia言語
posted at 23:02:53
python4は是非ともjulia見習ってjitして欲しいしtypingをちゃんと読み取って高速化して欲しい(cythonは書くのがめんどいしC++連携の学習コストが高いのでね
タグ:
posted at 22:55:53
@ishogaki #Julia言語 #Python テストで使ったプログラムのソースコードはどこで確認できますか? twitter.com/ishogaki/statu...
posted at 22:50:15
非公開
タグ:
posted at xx:xx:xx
@NOKKO42554780 こういう話があります。
togetter.com/li/68853
( あと「国語の問題と考えると」というのを付けるのは評判わるいです。
国語であろうがなかろうが、2×3 でも 3×2 でも良いのです。 )#掛算
タグ:
posted at 21:45:50
Johannes Boehm @johannesmboehm
I'm a big fan of Julia for numerical work in Economics. Faster than R and Python, and a pleasure to program in. Great support for optimization problems, and really fast regression packages. Try it out! twitter.com/JuliaLanguage/...
タグ:
posted at 21:44:21
Juliaのデータ同化のコードが遅いかどうか確かめるためにPythonで書き直した。とりあえずLorenz96の計算だけしてみた。Julia 0.7s,Python 3.1s。Pythonはpipで入れたnumpyで計算した。Pythonのほうはnumba使うとか,Anacondaのnumpy使うとかでもっと早くなるとおもう。
タグ:
posted at 21:21:37
juliaのPyCall便利。確かにpythonのライブラリーを使えた。
importしたら後は普通に使えるとは言え、もちょっとサンプルが落ちていてもいいのに。
from なんとか import かんとか as hoge
をどう書くのかかなり悩んだ。
hoge =pyimport (なんとか.かんとか)
だった。
タグ:
posted at 21:19:08
今年の数値計算 Advent Calendarは、「有限要素法で、ヘリウム原子に対するHartree-Fock方程式を解いてみる(JUliaでやってみた)」にしよう。
タグ:
posted at 20:55:52
非公開
タグ:
posted at xx:xx:xx
斉藤 淳 『アメリカの大学生が学んでいる @junsaito0529
本当に怒っているとき、適切な言葉が探せないことがある。復興増税は、政策として最悪だった。
タグ:
posted at 20:31:30
@koideforest @dc1394 #Julia言語 例えば0始まりのインデックスを持つ言語の配列の成分 X[k] は、Juliaの任意始まりのインデックスを持つ(もちろん1始まりでもよい)配列では X[begin+k] に翻訳される、と覚えておけば考えなければいけないことの量が大幅に減ります。
0始まりのX[k] → 任意始まりのX[begin+k]
タグ: Julia言語
posted at 20:15:08
@koideforest @dc1394 #Julia言語 配列の始まりを「1」とか「0」とか考えるようになると、任意の始まりのインデックスを持つ配列に耐えられなくなるのが怖いので、
A[begin+k] ←最初よりkだけ後の成分
とか、
u[begin+2:end] + u[begin:end-2] - 2u[begin+1:end-1]
のような書き方を意識するようになりました。続く
タグ: Julia言語
posted at 20:10:19
@koideforest @dc1394 #Julia言語 Juliaのリポジトリを検索すると、テストにOffsetArrays.jl (Fortranスタイルの任意始まりの配列のパッケージ)が頻繁に使用されいて、言語仕様にも任意始まりの配列のための函数が入っています。
github.com/JuliaArrays/Of...
docs.julialang.org/en/v1/devdocs/...
続く
タグ: Julia言語
posted at 20:04:41
C++のコンパイルの異常な遅さには、特にデバッグの際に毎回イラつく(EigenやBoostを使うとコンパイル時間が更に伸びる)。この点からもJuliaに移行すべき。
タグ:
posted at 19:03:39
@miura1729 ただJuliaにしろRustにしろZigにしろやっぱりllvmをコンパイラのbackendに使ってるってことは、やっぱりあれと同程度のコンパイラ基盤を自前で作るのがめちゃくちゃ大変ってことなんですかね。alternativeがあるのか分からないですけど、辛いは辛いけど、それ以外の選択肢がない状態、なんですかね。
タグ:
posted at 18:48:04
#Julialang #Gnuplot でのグラフ描画も成功。複素数+特殊関数+可視化までいけた。あとは回帰分析系のpackageと組み合わせがうまくいけばいいが。。LsqFit.jlか
posted at 18:34:04
Windowsだとそのせいで劇遅になってしまう点が非常に残念なところ。 #Julia言語 twitter.com/mkashi/status/...
タグ: Julia言語
posted at 18:32:17
#Julia言語 関連
Juliaは
julialang.org/downloads/
からインストーラをダウンロードすればすぐに使えるようになります。非常に簡単。
julia起動後のプロンプトの julia> 状態で ] を押すとプロンプトが pkg> のパッケージマネージャーモードになって、簡単に必要なパッケージを入れられます。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 18:27:15
アトリエpuchuco 7/22.23博 @puchuco709
ハエトリグモのからくり人形を作りました。
サイズは実物大、素材は銀で、9ヶ所可動します。
いやぁ、正直難しかった…。
#ハエトリグモ pic.twitter.com/JzzxOs98dL
タグ: ハエトリグモ
posted at 18:26:24
#Julia言語 初心者向けの使用するパッケージのインストールの手順も含めて書き切れる点がすごい!(笑)
Juliaの公式バイナリを
julialang.org/downloads/
からインストールして、juliaを起動すれば「独立同分布な2つの確率変数X,Yに関するX+Yと2Xの分布の違い」を即視覚化できる! twitter.com/kado_judo0312/... pic.twitter.com/He0ksH90h4
タグ: Julia言語
posted at 18:22:16
#Julia言語 ①の色々詰め込んだノートの配布の実例は
github.com/genkuroki/Calc...
にあります。添付画像はChromeでPDF化したものの1つ
genkuroki.github.io/documents/Calc...
のスクショ。Milnorの多重三角函数のグラフです。数学畑の人であっても見たことがある人は少ないでしょう。
他のリポジトリも参照。 pic.twitter.com/KfTn1lGN65
タグ: Julia言語
posted at 17:14:31
Thread Reader App @threadreaderapp
@bourbakii Halo! please find the unroll here: @genkuroki: #Julia言語 Julia内部から、 文字列のCのコードをgccにstdinから食わせてコンパイルして、ライブラリを作って、そのライブラリ内部の函数をJuliaから呼び出して使う方法の例↓… threadreaderapp.com/thread/1312289... Have a good day. 🤖
タグ: Julia言語
posted at 17:07:32
#Julia言語 さらに、すでにGitHubを使用している人であれば、自作パッケージをGitHub上で公開して野良パッケージ化することも非常に易しいです。
野良パッケージが増えて、公式登録されたパッケージに昇格するものが増えるとよいと思います。
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 16:39:04
#Jupyter #Julia言語 1つのノートブックだけではなく、複数のノートブックで繰り返し使用するツールは、パッケージ化しておくべき。
私はその辺をサボりまくってしまい、非常に後悔しています。Juliaでは、公開されていない自作パッケージは瞬時にかつ気楽に作れます。
twitter.com/genkuroki/stat...
posted at 16:37:18
#Jupyter #Julia言語 Jupyter notebookはdiffがまともに機能しないことで有名です。しかし、それへの決まり切った対処法がある。Jupytextを使えば、自動的にJupyter notebookファイルに紐づけられた、mdファイルやjlファイルを自動生成するようにできます。
github.com/mwouts/jupytext
posted at 16:32:07
#Julia言語 既出の
gist.github.com/genkuroki/9d43...
では、Juliaの文字列のCのコードを gcc -O0 と gcc -O3 でコンパイルしたときの、アセンブラの出力をJuliaで表示して比較するというようなことをしています。
さらに、Juliaがどのようにコンパイルするかも表示させて、全部を比較できるようにしている。
タグ: Julia言語
posted at 16:21:51
今日の発表の資料です #kanmath07
ルービックキューブと群論 speakerdeck.com/usamik26/rubik...
タグ: kanmath07
posted at 16:12:05
#Julia言語
Julia内部から、
文字列のCのコードをgccにstdinから食わせてコンパイルして、ライブラリを作って、そのライブラリ内部の函数をJuliaから呼び出して使う方法の例↓
gist.github.com/genkuroki/9d43...
さらに、文字列のCのコードをJupyter上で色付けして表示する方法。 twitter.com/genkuroki/stat... pic.twitter.com/vHqdlqV1GS
タグ: Julia言語
posted at 16:11:38
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
ForwardDiff.jlにinterval入れて計算させるのは特に問題なく動いてそう。ForwardDiff.jlを書いた人はintervalなんておかしな数は知らないだろうから、これが普通に動くのは優秀。こういう直交性が大切というか、これがないと自分は何も書けない。これでKrawczyk法が書けるはず。
タグ:
posted at 16:06:14
ごまふあざらし(GomahuAzaras @MathSorcerer
ノートブック上でコンパイルした結果見せられる、共有するって自分でするにはこんなもんかって思っちゃってたけれど、他の人がやったのを見せられると実はすごいことでは?って思ってる。
#Julia言語 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 16:01:19
@hayabusa_0613 おお!おめでとうございます。
【訂正版】
gcc -S main.c -o main.s
gcc -O0 -S main.c -o main-O0.s
gcc -O1 -S main.c -o main-O1.s
gcc -O2 -S main.c -o main-O2.s
gcc -O3 -S main.c -o main-O3.s
を比較すると違いがわかります。
タグ:
posted at 15:59:45
@miura1729 僕の理解してる限りだとループのunrollはllvmがやってる(なので「llvmに任せ」てる)はずです。
llvm辛いってのはJuliaの開発者の人がよく口にしてる気がするんですけど、脱llvmを真剣に話してるところは見たことないですね。
タグ:
posted at 15:55:14
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
なおガチガチにチューンしたあとの速度差の議論って、実用コードでそこまでチューン出来る人はそれが仕事の計算科学の人位だし、その比較って一般人に意味あるの?という感じがする。物理屋位の数値計算勢の労力での速度差の比較は面白いと思う
タグ:
posted at 15:44:31
プログラミング言語の速度の差というのは、ガチガチにチューンした場合ほとんど変わらないし、ガチガチにチューンするということをやらない人がふんわり速度差を議論してる印象。ORH(同じ労力でどの位速くできるか)とかOCH(同じ知識レベルでどの位速くできるか)みたいな比較をしたいところ
タグ:
posted at 15:40:45
非公開
タグ:
posted at xx:xx:xx
@hayabusa_0613 #Julia言語 gccはgcc -Sでネイティブコードへのコンパイル結果のアセンブラ表示を、Juliaは @ code_llvm でLLVMのコードを、@ code_native でネイティブコードのアセンブラ表示を出力します。
これはコンパイラが何をやっているかを理解するために非常に役に立つのでどんどん使うと良いと思います。
タグ: Julia言語
posted at 15:39:17
@hayabusa_0613 #Julia言語 普通のコンパイラはN回のループで1を足し上げてNを得るコードを書くと、ループを回さずに答えのNを使うネイティブコードにコンパイルしてくれます。
CをJulia内部から使ってのその実演↓
gist.github.com/genkuroki/9d43...
gccもJuliaもループを回さずに答えのみを使っています。 pic.twitter.com/D84nA0eh6Y
タグ: Julia言語
posted at 15:36:44
データのハンドリングはstataとかRとかのほうがスムーズだけどこれは自分が慣れてないだけかも。stataは有料なのとバージョンの互換性が弱い以外はシンプルで使いやすいし覚えてことも少なくて良い。UIも最近は割と使いやすくなってきたし。RはTidyverseが便利。まだまだ勉強中ですが。
タグ:
posted at 15:09:00
CRlibmはwindowsではmake出来ないので、windowsではMPFRに落ちるようだ。しかし、終わったプロジェクトに命を預けるのは精度保証のライブラリとして如何なものか、という気もしないでもない。
タグ:
posted at 15:06:27
Juliaはコードもシンプルだし、数学とか統計での直観通りに動くのが気に入ってるけど、困ったときに頼れるリソースが少ないのがウィークポイント。PythonとかRに比べると自力で解決しないといけないことが多い気がする
タグ:
posted at 15:05:26
CRlibmはかつて lipforge.ens-lyon.fr/www/crlibm/ にあったプロジェクトで、初等関数について(IEEE754でsqrtがそうであるように)完全精度かつ丸めの向きの変更も可能なものを作ろうという意欲的なもの。しかし、何らかの理由でプロジェクトは消滅してしまった。その最終版のtar.gzを使ってるみたい。
タグ:
posted at 15:04:09
Juliaのintervalの初等関数、github.com/JuliaIntervals... によると、"The functions for Interval{Float64} internally use routines from the correctly-rounded CRlibm library where possible"とのことだが、.julia以下にlibcrlibm.soをmakeした痕跡があるのでCRlibmが使われていそう。
タグ:
posted at 14:59:15
日本中の人が今、JuliaとC/Fortranの速度比較をしているようだ。
PythonをCythonでサイボーグにしていた時は、速くはなったんだけど、Python-likeな処理を消しきれなくて、Julia移植版の速度には及ばなかった。自分の技量に問題があるんだけど、だからこそ凡人でも最適化しやすい言語ってのは助かる。
タグ:
posted at 14:53:10
日本で年間約2800名が亡くなるがんを、17歳までのHPVワクチンなら8~9割防げるって、すごいニュースだと思うんだけど、全国紙とNHK(ウェブ版)、検索したけど未だどこも報じていないっぽい。新型コロナウイルスワクチンの話題はすごい数でヒットするんだけど。 twitter.com/ymori117/statu...
タグ:
posted at 14:50:25
このコードも、今Juliaで書き直している。完成したら、C++と速度比較を行ってみたい。C++のソースコードはこちら。
github.com/dc1394/hydroge... twitter.com/dc1394/status/...
タグ:
posted at 14:40:03
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
CNNでライフゲームの予測を行うことで、宝くじ仮説を検証した研究。ライフゲームの状態は隣接セルの状態から決まるが、CNNでこの法則を学習する場合過剰なパラメーターが必要となる。また、ノイズやデータセットの分布に敏感であることを発見。これらは宝くじ仮説の予測と適合する。 twitter.com/hardmaru/statu...
タグ:
posted at 14:34:10
沢山ある特殊函数についてそういう手作業を繰り返すのは、不適切に誤差を増やしてしまったり、無駄に多く足し上げて計算速度を落としたりすることの原因になります。
現在みんなが使っている特殊函数のライブラリはそうやって作られたものであるという認識は重要だと思う。
タグ:
posted at 14:33:05
非公開
タグ:
posted at xx:xx:xx
例えば倍精度(Float64)で○○函数の値を領域KにおいてTaylor展開で近似計算するとしましょう。十分な精度が出る最低次の展開が欲しいのですが、多分、多くの場合にその次数は「手で決めて」います。
タグ:
posted at 14:31:10
非公開
タグ:
posted at xx:xx:xx
特殊函数の実装は
①定義域を分割する。
②分割の各部分ごとに十分な精度が得られる近似公式を使って函数の値を計算する。
③定義域を分割するときには、オーバーフローやアンダーフローの可能性には細心の注意を払う。
のような手続きになります。何らかの(半)自動化の仕組みを作らないと苦しい。
タグ:
posted at 14:27:22
github.com/JuliaStats/Rma...
を見れば、特に統計処理で多用される基本特殊函数のライブラリについてやるべき仕事が残っていることに気付いていても、そう簡単に手を出せないという気持ちになりそうなことをよく理解できます。
タグ:
posted at 14:22:37
あと、種々の基本特殊函数のコードを見ると、「これをそのままもっと最適化しろと言われるのは地獄だな」と感じられるものが少なくありません。
今まで見た中で一番酷かったのはベータ分布に関する計算で必須の不完全ベータ函数のコード。これ↓
github.com/JuliaStats/Rma...
2000行以上ある。
タグ:
posted at 14:20:55
昔から使われているCやFortranで書かれた基本特殊函数のライブラリが十分に最適化されていないという事実はあまり知られていないと思う。
現代的なプログラミング言語を装備した若い勇者達にとってはチャンスが転がっていると思います。
タグ:
posted at 14:14:36
分岐にリンク
普及しているCやFortanで書かれた基本特殊函数のライブラリは、どうも十分に最適化されていないっぽいんですね。
現代的なプログラミング言語環境を使って、十分に最適化された広く使える基本特殊函数のライブラリを作って、配布することは価値ある仕事だと思います。 twitter.com/rithmety/statu...
タグ:
posted at 14:10:18
@genkuroki Rust のマクロを定義する方法は複数あります。
一つは AST を引数に取り AST を返す関数を定義してそれがマクロとして使えるように属性をつけることです。
「マクロ用の関数だからこの機能は使えない」という機能は(少なくとも私が知る限りでは)ないはずです。
タグ:
posted at 13:58:42
#Julia言語 Juliaから利用できる数式処理系で多項式を作って、それをJuliaのコードに自動変換することによって、特殊函数の効率的な計算を可能にした例に、MITのある宿題の答えがあります。
現在のJuliaでも動くようにしたものが
nbviewer.jupyter.org/gist/genkuroki...
のIn[2]にある。 pic.twitter.com/Mt5rF2PQPz
タグ: Julia言語
posted at 13:53:31
#Julia言語 のマクロはJulia言語の機能を全て使用可能なので、例えば、特殊函数の計算で必要な多項式をJuliaで利用できる数式処理系で作り、その多項式をJuliaのコードに変換して実行できる。
こういう機能は数値計算の効率化に必要不可欠。
Rustの「マクロ」でも同じことをできるのでしょうか?続く twitter.com/rithmety/statu...
タグ: Julia言語
posted at 13:50:21
「数学が苦手な教師が多いから、算数でヘンな指導をしてしまう事例が度々出てくるのはしかたない」というようなことではなくて、学校教育が全体におかしくなっているのだと思われる。
算数教育の専門の先生と言われている人たちが率先して #超算数 をやっているわけだし。 twitter.com/sunchanuiguru/...
タグ: 超算数
posted at 13:49:35
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
ごまふあざらし(GomahuAzaras @MathSorcerer
キュキュキュ(Twitterの文字数に制約の中で高級なことが説明できるプログラミング #Julia言語 があると聞いて) twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 13:33:58
そもそもコンパイル言語はコンパイラが最適化してくれるので可読性を優先しやすいと思うのだが…
ところで TypeScript は JavaScript の上方互換として開発されている都合でコンパイル後に最適化も動かないしマクロもなくて地味に苦痛を感じることがある。
タグ:
posted at 13:33:51
やはり #超算数 ごときでおどろいていてはいけないのだ。
こんどは超音楽が出現した。
教育の荒廃。 twitter.com/issaku_m/statu...
タグ: 超算数
posted at 13:33:44
超算数と似たような話に見える
音楽科の方々はどう思うのだろう
音楽の先生って音楽科卒の人がやってると思うんですが、もしそうだとしたら何故バツにしたのでしょう🙄?
それとも、殆ど使われない用語なのだろうか?
タグ:
posted at 13:29:48
#Julia言語 自作パッケージを公開したい人には
nbviewer.jupyter.org/gist/genkuroki...
が参考になると思います。これは私が Ising2D.jl パッケージを公式登録するまでの流れのメモ+αの内容になっています。十分理解して書いたものではないので注意!
理解している人が初心者向けの解説を書くべきだと思う。
タグ: Julia言語
posted at 13:15:53
OokuboTact 大久保中二病中年 @OokuboTact
#超算数
序文を紹介
掛け順の固定指導と「数学的な見方・考え方」は両立するらしい pic.twitter.com/gCVRRCV1Fi
タグ: 超算数
posted at 13:01:05
#Julia言語 printf, sprintf 函数の野良パッケージへの適切なリンク先は
github.com/genkuroki/Prin...
だった。上ではソースコードにリンクしていた。 pic.twitter.com/r2ahbptobu
タグ: Julia言語
posted at 12:44:39
OokuboTact 大久保中二病中年 @OokuboTact
#超算数
先月出たばかりのカリスマ算数教師の掛け算の実践授業テクニック本。
「数学的な見方」と「数学的な考え方」を重視しているそうだ pic.twitter.com/ZVsxThCJwv
タグ: 超算数
posted at 12:41:58
#Julia言語 分岐
可能な範囲内で明瞭な証拠(第三者が確認可能な情報、実行可能なコードを含むものが望ましい)を出さずに色々言うのはよくないと思う。
たとえ不完全だったり、ミスっていたりしても、出すべき証拠を出そうとすることが大事。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 12:27:03
#超算数|は、先生に算数指導への自信を付けさせるのに役立っているのかもしれないtwitter.com/temmusu_n/stat...。小学校の主要教科のうち、算数は特に自信をもって指導していると答える先生が多い。算数を応用の利かない暗記ものと捉えがちであるというtwitter.com/amiami114114/s...子供の犠牲の上に成り立つ。
タグ: 超算数
posted at 12:23:47
#Julia言語 JuliaとC, C++, Fortranの比較をしようとするときに困るのは、Julia側で簡単な数式処理系を援用してマクロによるコードの自動生成を行なっている場合です。
そのような例の典型例は以下のリンク先のケース(繰り返し紹介している)。
C++でこれをどう書くかを教えて欲しいと思います。 twitter.com/genkuroki/stat... pic.twitter.com/SCuCG31ZJD
タグ: Julia言語
posted at 12:20:55
#Julia言語 E₁(z)のJulia版を私が最近のJuliaでも動くようにしたものが
nbviewer.jupyter.org/gist/genkuroki...
のIn[2]にあります。
C, C++, FortranとJuliaの比較でかなり適切な例だと思うので、誰か同等のコードをC, C++, Fortranで書いてみて下さい。
そのとき、コードの自動生成部分をどうしますか? pic.twitter.com/DvrH7W8m54
タグ: Julia言語
posted at 12:14:52
#Julia言語 ここの読者に参考になりそうな情報。
「C, C++, Fortranの方がJuliaより速い」と信じることができる理由がそもそも分からない。この点について明瞭な説明をしている人を見たことがない。
C, C++, Fortran, Juliaはどれも最適化されたネイティブコードにコンパイルして実行する仕組み。 twitter.com/cometscome_phy...
タグ: Julia言語
posted at 11:48:06
@y_bonten @musicisthebest_ わたしもそう思って調べたのですが、ご流儀によっては0も偶数じゃない場合があります。8254.teacup.com/kakezannojunjo...
タグ:
posted at 11:20:41
@D_A_works 自身のコードを自動生成しているライブラリのデバッグはコードを自動生成するためのコードの訂正ですみます。
しかし、自動生成した結果をべた書きに翻訳した先ではコードの保守の手間が大幅に増えます。
コードの自動生成の技術が気軽に使えることは非常に重要です。 #Julia言語
タグ: Julia言語
posted at 11:07:57
tmaita77.blogspot.com/2020/03/blog-p...
この人には,前に一回やられている。
問い合わせ中で確定的なことは言えないが,仮に不正だとしたら2回目で,悪質と判断されるからな。twitter.com/tera_sawa/stat...
タグ:
posted at 11:06:51
@D_A_works 今回のerfinv程度なら、#Julia言語 でマクロ(コードの自動生成)を使っている部分をべた書きで翻訳できましたが、一般的な状況ではそうではありません。
自身のコードを自動生成できるプログラミング言語で書かれたライブラリをそうでない言語に翻訳するのは一般には非常に大変なことになります。
タグ: Julia言語
posted at 11:05:15
@D_A_works あと、これも最近繰り返し強調していることですが、計算速度について語るときに、主に「コンパイラの最適化能力」にしか注目できない人達は愚かだと思います。
「広く使われているFortranで書かれたライブラリが最適化不十分なものである」というような事実や部品の貼り合わせの問題も重要です。
タグ:
posted at 11:03:08
@D_A_works そもそも原理的にはC++の方が #Julia言語 より速くなる理由がないと思います。
JuliaはLLVM経由でネイティブコードにコンパイルしてから実行する仕組みなので、違いが出るとしてもそう大きなものにはならないと考える方が自然です。
続く
タグ: Julia言語
posted at 10:59:56
#Julia言語 リンク先は、Juliaのerfinvのコードを忠実にC++に書き変えて、私の環境(Windows 8.1, g++.exe (Rev3, Built by MSYS2 project) 10.2.0)では、g++ -O3版とJulia版の実行時間はほぼ同じだったという話。
Juliaを初めて使う人は
docs.julialang.org/en/v1/manual/p...
が必読!
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 10:52:29
@D_A_works #Julia言語
ソース公開のテスト、素晴らしい!
しかし、私がいつも言っているように、Juliaを初めて使う人は公式ドキュメントのPerformance Tipsが必読!
docs.julialang.org/en/v1/manual/p...
N = 1E8 を main() の内側に入れると一桁速くなります。
私の環境ではg++ -O3版とJulia版の実行時間はほぼ同じ。 pic.twitter.com/BvtqdmuSKQ
タグ: Julia言語
posted at 10:44:08
あくまで例ですが、完全にJuliaで書いてライブラリも呼ばずにFortranのコードを移植した格子QCDのJuliaのコードはFortranより1.2倍くらい速かったです twitter.com/d_a_works/stat...
タグ:
posted at 09:50:47
@genkuroki Julia (SpecialFunctions.jl) のerfinvのコードをC++で書き直して速度比較を行いましたが,-O0 のコンパイラオプションを付けてコンパイラの最適化を切った状態でも手元の環境ではJuliaの方が倍以上遅いです
(1E8回比較で18sec vs 7sec)
github.com/fockl/Math/tre...
タグ:
posted at 09:49:19
#Julia言語
"hack for benchmark bragging" (速さ自慢のためのハック)
によって注意をひくことではなく、
"Usability & generality" (使い易さと汎用性)
が大事なんだよというお話で講演が終了している。
youtu.be/mSgXWpvQEHE?t=... pic.twitter.com/f8soyQpYM2
タグ: Julia言語
posted at 05:55:30
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
一つ分・いくつ分を教えられ混乱させられたせいで、割り算につまづいているのではないか。#掛算 #超算数 twitter.com/shiozawa_h/sta...
posted at 05:27:25
@D_A_works 【Juliaは(FORTRANベースのライブラリが簡単に使えるので)速い】
誤り。事実は
#Julia言語 を使うと普及しているFortranのライブラリより速いコードを書き易い場合がある
です。
twitter.com/genkuroki/stat...
例:Juliaで書かれたerfinvはscipyで使われているFortranライブラリより2~3倍速い。
タグ: Julia言語
posted at 05:22:43
@D_A_works @TIME #Julia言語
Juliaと無関係のArpackの話題では?
以下を試してみて下さい。
eigs(a; maxiter=2^12)
eigs(a; tol=1e-8, maxiter=2^10)
eigs(a; tol=1e-4)
テストコードとその結果↓
gist.github.com/genkuroki/1f61...
タグ: Julia言語
posted at 05:13:38
@HW_a_pythonista @rigarash @dc1394 @Hishinuma_t 【サイズの大きな密行列演算に関しては、Fortranで書かれたBLAS/LAPACKに落ちるので言語の性能は全く関係ない】
事実として、g++とicpcの違いで計算速度に大きな違いが出ているので、共通のMKL以外の部分で速度の違いが出ています。
公開されているソースコードをもとにした説明がないとダメ。
タグ:
posted at 05:06:16
非公開
タグ:
posted at xx:xx:xx
Dr. Chris Rackauckas @ChrisRackauckas
#julialang CUDA.jl 2.0 is awesome! Mixed precision support and multithreading => multiple stream programming out of the box! Nicely done everyone in the community!
juliagpu.org/2020-10-02-cud...
タグ: julialang
posted at 01:40:59
@physicsturtle #Julia言語 以下のリンク先には、MKLを使うsysimageを
installkernel("Julia MKL depwarn", "--sysimage", "C:\\Julia-1.6.0-DEV\\lib\\julia\\sys-mkl.dll", "--depwarn=yes", "--project=@.")
のようにして使う話が書いてあります。
gist.github.com/genkuroki/36cd...
タグ: Julia言語
posted at 01:33:33
@physicsturtle #Julia言語 ソースコードを書き換えなくても、
using IJulia
installkernel("Julia -p 4", "-p" "4")
のようにしてカーネルを追加できます。
タグ: Julia言語
posted at 01:30:16
@physicsturtle #Julia言語 起動後であってもaddprocsでプロセスを増やせます。
docs.julialang.org/en/v1/stdlib/D...
タグ: Julia言語
posted at 01:26:50
#Julia言語 現状をまとめると
① 6.89秒 Julia MKL
② 7.44秒 icpc (icc) EIGEN_USE_MKL_ALL
②13.08秒 g++ (gcc) EIGEN_USE_MKL_ALL
③14.24秒 Julia OpenBLAS
ということらしい。
iccでコンパイルされていないJulia相手にこれじゃあ、このまま放置しておくのはまずくね? twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 01:19:16
Jupyterの起動オプションを変更したのでメモ
#Julia言語 #julialang pic.twitter.com/zAAVAwWcDQ
posted at 01:17:40
#Julia言語
このスレッドの話題ではソースコードがGitHubで公開されていますよね?
今回のような件では「具体的にこうすればC++でJuliaに勝てるよ!」のような具体的提案が出て来ないと話が面白くならないと思います。
github.com/dc1394/hydroge...
github.com/dc1394/hydroge...
タグ: Julia言語
posted at 01:11:20
#Julia言語 野良パッケージ
github.com/genkuroki/Inte...
以下を使えるようにする:
@ show_sexpr
Meta. show_sexprのマクロ版
(dumpのマクロ版 Meta.@ dump と同じノリ)
@ show_tree
show_sexprのAbstractTrees.jl版
print_tree(x::Type)
sunbtypesの木表示(AbstractTrees.jlを使う)
タグ: Julia言語
posted at 00:51:36
#Julia言語 野良パッケージ
github.com/genkuroki/Prin...
PrintfFunctions.jl
@ printf と @ sprintf の函数版
やっていることは
github.com/JuliaIO/Format...
と同じ。このプリリクエストのv1.x版が出てマージされると嬉しいのだが、そうなりそうな気配がないので、個人で使うために野良パッケージ化。
タグ: Julia言語
posted at 00:46:21
@MyNameIsTooLon @StefanKarpinski @Viral_B_Shah @quinn_jacobd It's undefined behavior in C, which LLVM inherited. There's some effort to change that from the rust community, since it can cause unsoundness there. We mostly don't care.
タグ:
posted at 00:44:45
掛け算の順序指導に関して「教師だって一生懸命やっている」という「反論」する人いるけど、それ「反論」になっていないから。むしろ「そりゃ困る」としかならないから。 twitter.com/sekibunnteisuu...
タグ:
posted at 00:06:24
@1027stesc @Essence_sci @yamazaksv2 @sotasot42269265 www.asahi.com/edu/student/te...
この人も自信をもって間違ったことを一生懸命教えている。最悪。
間違ったことを教えるのだから、せめてやる気を持たないでサボタージュしてほしい。
タグ:
posted at 00:05:14