黒木玄 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月02日(金)
@1027stesc @Essence_sci @yamazaksv2 @sotasot42269265 ←この方、「専門は数学」だそうです。 pic.twitter.com/leyvtxYvGT
タグ:
posted at 23:58:22
「使用可能な道具の範囲内での手軽な高速化」のために「メモリの無駄遣いを気にせずに行列算化する」という話であれば実践的に合理的な場合もあると思うが、そういうやり方が普遍的に合理的であるかのように誤解する人を増やさないように注意した方がよいということもあると思う。
タグ:
posted at 23:46:19
@shiozawa_h #超算数 #掛算
「わり算でつまずいている」原因を分析調査している研究があるのかも疑問です。
他に原因の候補が無ければ、自動的に 「一つ分・いくつ分の考え方がきちんと身に付かなかったため」にされてしまいそうです。
posted at 23:22:47
非公開
タグ:
posted at xx:xx:xx
MIZUNO Yoshiyuki 水野義 @y_mizuno
A3)総合科学技術会議は、安倍内閣で総合科学技術・イノベーション会議と改名。日本社会の例えば学術論文の地盤低下?対応、ロボット社会化、数理・AI教育を年間100万人(大学必修化)、ムーンショット計画の話も出ていた。こういう話の報道は十分なのか。文系的な国民的議論も、必要だと私は思うが。
タグ:
posted at 23:09:07
日本学術会議を「学者の国会」とか言っちゃって今騒いでるメディアの皆さんは、この報告が出た時、ちゃんと全国で報道してくれたんですかね?
玉石混交で、まともな報告からイデオロギーまみれの提言まで色々あるとこを、今更変に権威っぽく使うなら、3年前からやってくれよ。
twitter.com/TatsutaKazuto/...
タグ:
posted at 22:59:34
MIZUNO Yoshiyuki 水野義 @y_mizuno
A2)総合科学技術会議のメンバー政治家(各大臣)以外に、学術会議の会長もいるという構造。科技基本法は総合科技会議が担当。予算規模は、第1期17兆円、第2期24兆円、第3期25兆円という具合。このレベルでは形骸化が心配だと私は思う(単なる予算読み替えになる)。「やってる感」の光景が心配だ。
タグ:
posted at 22:50:21
MIZUNO Yoshiyuki 水野義 @y_mizuno
A1)補足。科学技術会議のこと。科学技術会議は1960年頃に出来た、科技庁の調整機関。予算は別枠で、学術会議と共存した。しかし2000年の省庁再編で合併、文部科学省になる段階で、学術会議はさらに骨抜き(改革され)、科学技術会議は総合科学技術会議に昇格。首相と各大臣がメンバーの調整機関に。
タグ:
posted at 22:25:47
自信のある先生ほど変に知識を持ってしまっているので、「同じもの」を細かく分類して「違うもの」に見せたがるんだよね。『増加・合併』『求残・求差・求補』『包含除・等分除』『掛け算順序』…。
小学校の教科担任制で危惧するところ。
タグ:
posted at 22:22:07
@StefanKarpinski @Viral_B_Shah @quinn_jacobd how can the compiler throw away an infinite loop? isn't that incorrect behavior?
タグ:
posted at 22:02:20
黒木玄( @genkuroki )さんの微分積分学のノート、Juliaによる数値計算例が載っていて、とても良い。
genkuroki.github.io/documents/Calc...
タグ:
posted at 22:00:06
非公開
タグ:
posted at xx:xx:xx
自分はMATLABの、「for文を書かずに行列の計算に直せば速くなる」という謎文化がヘドが出るほど嫌い。数学的な計算量は何も変わっていないかむしろ増えているのに速くなるなんていう変な言語を使ってスピードの肌感覚を狂わせてはいけない。JuliaがMATLABを駆逐してくれたら大変嬉しい。
タグ:
posted at 21:41:06
JuliaとC++で区間演算。1+1/2+1/3+...で16を超えるのがいつか調べる簡単なプログラム。C++で0.067秒、Juliaは0.239秒。これはJuliaで丸めの向きが変えられず方向付き丸めをエミュレートしてるのが原因と分かってるので、C++も公平にエミュレートにしたら0.151秒。よく頑張ってる。 pic.twitter.com/36ooGWV3QD
タグ:
posted at 21:16:06
Stefan Karpinski @StefanKarpinski
@Viral_B_Shah @quinn_jacobd But as soon as you throw compiler optimizations in there, the compiler will just remove the loop altogether
タグ:
posted at 21:13:47
非公開
タグ:
posted at xx:xx:xx
JuliaとC++のスピード比べ、個人的には、結局BLAS/LAPACKに丸投げになってしまう倍精度の数値計算の速度にはあんまり興味なくて、4倍精度とか自動微分みたいな変な型を突っ込んだときの速度に興味がある。
タグ:
posted at 20:47:25
@rigarash @genkuroki @Hishinuma_t 有限要素法なので、行列は密行列ではなく疎行列(三重対角行列)になっていますね(コード上では、C++でもJuliaでも、密行列に要素を格納していますが)。
タグ:
posted at 20:42:41
@hayabusa_0613 #Julia言語 しかし、実用的には函数版のprintfもないと不便です。そういう人は
github.com/JuliaIO/Format...
Formatting.jl
のsprintf1函数を使えということのようです(最近知った!)。マクロ版より2~3割遅いと書いてある。
タグ: Julia言語
posted at 20:36:50
@hayabusa_0613 #Julia言語 だから、@ printf の実行時にはフォーマットの文字列を解釈するための律速段階が無くなり、速くなるわけです。
以下のリンク先の質問の回答者はJuliaを始めた人たちのうちの一人です。
stackoverflow.com/questions/1978...
タグ: Julia言語
posted at 20:34:21
@hayabusa_0613 #Julia言語 Juliaの開発者はJuliaの @ printf がマクロになっているおかげで、Cのprintf函数よりも速いことを自慢しています。
printf函数はフォーマットの文字列を函数が解釈して表示を整形します。
マクロのprintfはフォーマットの文字列から整形して表示する函数のコードを自動生成します。
タグ: Julia言語
posted at 20:33:10
Maker Faire Tokyo 2020で展示する「オリガミ人工筋肉」 ハガキよりちょっと薄い紙を折っています。紙なのであまり力が出ないと思われるかもしれませんが、動画のように500mLのペットボトルを軽々と持ち上げます。ブースではもっと重いものをもちあけるかも? #MFTokyo2020 #mft2020 pic.twitter.com/i5zvB7yhx5
タグ: mft2020 MFTokyo2020
posted at 20:20:57
@hayabusa_0613 #Julia言語 端末に直接大量表示させてしまうのは、どちらかと言えば「失敗した場合」なので、そのissueについて優先順位は多分低く設定されていると思います。
タグ: Julia言語
posted at 20:19:28
@hayabusa_0613 #Julia言語 は open issues を3.1k個も抱えていて(←これちょっとすごいと思う)、改善の優先順位が極めて重要な世界になっています。
端末でのprint速度の問題は以下のリンク先のissueと関係があるかもしれません。
github.com/JuliaLang/juli...
タグ: Julia言語
posted at 20:18:07
#Julia言語 iccの公式サポートをやめているJuliaにIntel compilerを使っても速度的に勝てていないというのは、個人的には非常に驚きです。
Juliaも頑張ればiccでコンパイルできるらしいので(少し上で紹介した情報)、それとの比較にも興味がわきますが、私のスキルでは無理。
twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 19:55:24
@dc1394 @Hishinuma_t @rigarash 私の最近の発言集は【C++より速かったら手放しで喜ばず,少し考えた方がいい】と言いたいがために書かれたのではなく、以上ではあからさまに書いたように、「私はあきれている」という気持ちを婉曲に表現するために書かれています。
タグ:
posted at 19:45:51
面白そうな記事を見つけたのであとで試してみよう。
Thread Parallelism in Julia www.oxinabox.net/2017/11/20/Thr...
タグ:
posted at 19:44:41
@dc1394 @Hishinuma_t @rigarash この手の話題であきれるのは、Juliaを何も試していなさそうに見えるのに、dc1394さんのようにC++とJuliaの両方のソースコードを全公開して自分がやれたことの範囲内で意見を述べている人に、ごちゃごちゃ余計なことを言いまくる人達が出て来ること。
自分でもJuliaを試していればフェアだと思います。
タグ:
posted at 19:44:03
@dc1394 @Hishinuma_t @rigarash C++の側が速いと信じている人も「私のプログラミング能力では、Juliaを使ってもC++より速く計算することはできない」のように意見を述べていれば角が立たないと思います。
もちろん、そういうことを言う前にJuliaを試していないとダメなのですが。
試していないなら、もっと別の言い方をするべき。
タグ:
posted at 19:40:28
MIZUNO Yoshiyuki 水野義 @y_mizuno
21)科学技術基本法は、一議員の議員立法で成立した。学術会議は何をしているのか。教育も研究も理系と文系が分かれたまま、全く異なる文化が孤立して議論をしている現状はないか。それでいいか。基本法で人文系が振興策から排除されていいのか。学術会議の理想主義の原点が問われていると私は思う。
タグ:
posted at 19:33:53
@dc1394 @Hishinuma_t @rigarash 私の発言集を
【黒木さんも仰ってるように,C++より速かったら手放しで喜ばず,少し考えた方がいいと思います】
と解釈するのは誤り。
dc1394さんのようにC++とJuliaの双方についてソースコードを全公開して発言している人は偉いと思います!
主観的に意見を述べることに委縮する必要は全然ない。
タグ:
posted at 19:30:30
MIZUNO Yoshiyuki 水野義 @y_mizuno
20)失礼、今は第5期科学技術基本計画の最終年度。しかし科学技術基本法の議論も報道も少ない気がする。実際、同法第2条は「自然科学と人文科学との相互のかかわり合いが科学技術の進歩にとって重要であることにかんがみ、両者の調和のとれた発展について留意」とされる。それをどう考えるのか。
タグ:
posted at 19:26:34
MIZUNO Yoshiyuki 水野義 @y_mizuno
19)科学技術基本法は、1995年成立、1996年施行。今、基本法で検索すると52本の基本法がある。基本法の特徴は①事務局が付き、②予算が付き、③基本計画がセットであること。つまり国家官僚が推進するので、絶対に進むことだ。かくして、第1期の科学技術基本計画1996-2000年以降、第5期を終えた。
タグ:
posted at 19:10:03
Juliaでスレッド並列をfor文ごとに起動せずにやりたい。openmpでできるのだけれどJuliaだとどうやるんだろ...。まだできないのだろうか...
タグ:
posted at 19:07:52
だいたい、「ヘッダオンリーで気軽に使える」のが、Eigenの「売り」の一つだったわけだから、外部のLAPACK/BLASを呼ぶことは、Eigenの「売り」を捨てていることになると思う。結局は、パッケージマネージャーがないC++の欠陥。あと関係ないけど、EigenはC++20対応も頑張って。
タグ:
posted at 19:07:36
Eigenは、LAPACK/BLASを呼ばないとJuliaに比べて異常に遅いし、OpenBLASのLAPACK/BLASを呼ぶ方法もよく分からないしで、速度を求めるならC++とEigenの組み合わせよりJuliaを使った方が良いと思う。MKLが使える環境の人なら別だけど。 twitter.com/dc1394/status/...
タグ:
posted at 18:36:46
非公開
タグ:
posted at xx:xx:xx
MIZUNO Yoshiyuki 水野義 @y_mizuno
18)なぜなら1995年の法案(「科学研究」基本法ではなく「科学技術」基本法)の成立直後に、当時の伊藤正男会長が会長談話を出しただけで、結局、認めてしまったからだ。それは勿論、一種の政府機関として仕方がなかったし、理研に脳科学研究センターが直後にできる等、タダでは起きない面もあった。
タグ:
posted at 18:18:30
#Julia言語 最近発見した「『Juliaは遅いぞ!』と言われてちょーラッキー❤️」だった件は以下のリンク先で紹介した。
biojulia.net/post/seq-lang/ を直接見に行っても良いです。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 18:03:29
MIZUNO Yoshiyuki 水野義 @y_mizuno
17)「科学技術基本法」は、当然、日本学術会議の理想「科学研究基本法」を意識した。その冒頭で、わざわざ「この法律は、科学技術(人文科学のみに係るものを除く。)の振興」と明記する。これをどう扱うか、1995年当時の学術会議でも問題になった。結局、魂を売り渡して妥協したと私には思われた。
タグ:
posted at 18:02:07
#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
特定の計算についてのいつものパターンではJulia帝国を連合軍が撃破する流れになるのだが今回はどうか?(笑) twitter.com/dc1394/status/...
タグ: Julia言語
posted at 17:54:54
MIZUNO Yoshiyuki 水野義 @y_mizuno
16)最初の方で紹介した1950年代の日本学術会議の「科学研究基本法」案。これこそ日本の、学術会議の分野横断的な学問精神の体現となるはずだった。しかしそれは1960年頃に審議未了廃案となったと述べた。それが何と1995年に蘇った。それが今に繋がる科学技術基本法だ。「科学技術」だけに限定した。
タグ:
posted at 17:51:09
MIZUNO Yoshiyuki 水野義 @y_mizuno
15)理想主義的な分野横断的価値観は、実現が難しいことは誰でも分かる。しかし日本の科学アカデミーはそこが特徴だ。つまり本気で科学=学問だと捉えた上で、科学研究=人文科学+社会科学+自然科学だと考えてきた。それが形骸化しやすいことも分かる。しかしそれを諦めるわけにはいかない。
タグ:
posted at 17:44:38
MIZUNO Yoshiyuki 水野義 @y_mizuno
14)私個人の価値観をいうと、学問は元々、アリストテレスの自然哲学みたいに、分野分けは便宜的なことであり、そもそもの社会問題、解決したい問題自体は、文系・理系の分類など関係がない。だかこそ、問題が問題になる。そう考えている。だから若い頃から、日本学術会議の理念に共感してきた。
タグ:
posted at 17:40:24
#Julia言語 現在のJuliaはIntel compilerでのコンパイルをサポートしていません。優先順位が高い問題ではないという認識らしい。(誰かがやってくれるなら歓迎するということらしい。)
1つ前のツイートで紹介した結果を見ると優先順位が低くなっているのも納得できる。
github.com/JuliaLang/juli...
タグ: Julia言語
posted at 17:35:23
MIZUNO Yoshiyuki 水野義 @y_mizuno
話を戻す。素粒子研究所1/4縮小案から(1968年頃)。
13)結局、学術会議は縮小案を受け入れ、できたのが高エネルギー物理学研と阪大核物理研究センターだった(東大核研の将来計画を二分した)。このため発足時の高エネ研の加速器は1/4の陽子8GeVだったし、阪大核物理研は関西核研とも呼ばれた。
タグ:
posted at 17:29:08
#Julia言語 情報更新 Part 2
色々注意しても、スクリプト言語のように気楽に書けるJuliaと同じ程度の速さしか出ないようだと、普通はすごく落胆しますよね。
誰か「Juliaでの普通」よりも真に速くする方法を説明するべきだと思う。
そして、そのために必要な手間の分量が重要な因子になる。 twitter.com/dc1394/status/...
タグ: Julia言語
posted at 17:24:42
MIZUNO Yoshiyuki 水野義 @y_mizuno
12)何回かの学術会議の改革を経て、その報告が、今は学会(学術会議登録の学協会約2000団体)にしか配信されなくなったと思う。各学会事務局は各学会員に再配布しないことが多い。これが学術会議の骨抜きでなくて何なのか。そもそも研究者は学術会議をあまり知らない。一般マスメディアはどうか。
タグ:
posted at 17:19:10
MIZUNO Yoshiyuki 水野義 @y_mizuno
11)「総合事務局報」とは、日本学術会議の事務局が出していた事務局報告という意味の印刷物。白い表紙が今も目に浮かぶ。ググると例えば物理学者の坂田昌一記念館にある。私はその時以来、学術会議に興味を持ち、その重要性に驚愕した。
話を戻すと、その情報そのものが出なくなってしまったのだ。
タグ:
posted at 17:08:50
MIZUNO Yoshiyuki 水野義 @y_mizuno
10)学術会議の勧告通りに出来れば、世界最先端の陽子加速器。それを1/4縮小案!学術会議が認めて1/4のエネルギーの加速器でも(我慢して)建設するか、あるいはそれでは意味がないとして拒否するか。当時の記録は「総合事務局報」という雑誌に出ていた。私は1974年、大学3年頃に読んで知った。
タグ:
posted at 16:53:58
MIZUNO Yoshiyuki 水野義 @y_mizuno
9)本論と離れるが、学術会議の理解に有用なので、紹介したい。1960年代には、欧州CERNや米国LBL、BNL、あとコーネルやSLACでの電子加速器の大活躍で、素粒子物理学は大発展。日本でも東大原子核研究所の次期加速器に素粒子研究所を、学術会議が提案する段階で政府は1/4縮小案を提案。これが大混乱。
タグ:
posted at 16:40:15
#Julia言語 以下のリンク先で紹介したFFTW.jlは高速フーリエ変換のライブラリのFFTWをJuliaで使うためのパッケージです。
FFTWはJuliaで書かれていないのですが、OCamlで最適なCのコードを自動生成する仕組みになっているそうです。そういう仕組みの専門家がJuliaに参入して来たのは自然に見える! twitter.com/genkuroki/stat... pic.twitter.com/szHu4ico2Q
タグ: Julia言語
posted at 16:33:11
MIZUNO Yoshiyuki 水野義 @y_mizuno
8)私がその後、1990年から所属した大阪大学核物理研究センターも、日本学術会議の政府勧告で誕生した、国立大学共同利用機関の一つだった。設置は1970年でいわゆるKEK(高エネルギー物理学研究所)と同じ年の誕生だ。なぜ同年だったか。それは1960年代に素粒子研究所という提案があったから。
タグ:
posted at 16:31:18
#Julia言語 添付画像1は既出の www.stochasticlifestyle.com/why-numba-and-... より。
そこで言及されているFFTWの開発者の1人はS.G.Johnsonさんで既出の動画
www.youtube.com/watch?t=1798s&...
でFFTWの開発の裏話を聴けます。既出のMITの宿題の答えもS.G.Johnsonさんが書いたものです。コードの自動生成による高速化の専門家。 twitter.com/genkuroki/stat... pic.twitter.com/8q9iE3WwC8
タグ: Julia言語
posted at 16:28:03
MIZUNO Yoshiyuki 水野義 @y_mizuno
*)その辺りからは、私は京都女子大学での授業(学術情報総論という科目名)の中で、学術会議の重要性を強調してきた。しかしその問題については、全く触れなかったなぁ。当時、学術会議という名前を聞いても、全く知らないという学生は多かったと思う。無反応だった感じ。感想にも無登場だった記憶…
タグ:
posted at 16:26:39
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
MIZUNO Yoshiyuki 水野義 @y_mizuno
7)学術会議は選挙制度の中で、党派性の形骸化だと私は理解したが、1983年代に選挙制度を廃止。学協会による推薦制として蘇った。それでしばらく続いていると思ったが、1990年代の旧ソ連・東欧崩壊とバブル崩壊の混迷の中、1990年代の末、とうとう廃止論も出て、再改革を吉川弘之会長の委員会で議論。
タグ:
posted at 15:58:44
MIZUNO Yoshiyuki 水野義 @y_mizuno
6)戦前には、学者・研究者の代表機関は2つあった。1つは帝国学士院で権威の象徴、もう一つが学術研究会議で会長は長岡半太郎(世界的物理学者)だった。それが戦後、解体され、学士院は単なる名誉機関化。1949年に発足した日本学術会議は「学者の国会」と呼ばれ、選挙制度を導入、期待の星だった。
タグ:
posted at 15:33:17
MIZUNO Yoshiyuki 水野義 @y_mizuno
5)学術会議の解説を続ける。1960年代には日本物理学会(後援:学術会議)も巻き込んで半導体国際会議での米軍闇資金が大問題となり、学会の反対決議(決議三)。当時は米ソ冷戦が激越で、学術会議の会員の選挙になると、政党の党派性を代表するような応援支援の葉書がよく研究室に届いていたものだ。
タグ:
posted at 15:26:45
日本学術会議。何をしているのか知らないが、経済学委員会数量的経済・政策分析分科会議とやらには復興増税賛同者が5人も参加してたりするので、ろくでもないという感想しか出ない。
経済学委員会数量的経済・政策分析分科会議事録
www.scj.go.jp/ja/member/iink...
復興増税賛同者
www3.grips.ac.jp/~t-ito/j_fukko...
タグ:
posted at 15:25:31
非公開
タグ:
posted at xx:xx:xx
#Julia言語 そのおかげで、仮に高速化に役に立つ「予想外の別の部品」が得られたときに、単にその部品を使うようにもとのコードをほんの少し変更しただけで、即時高速化の恩恵を享受できるわけです。
既出に添付画像の例ではStaticArraysパッケージで高速化しています(Juliaではむしろ普通の書き方)。 pic.twitter.com/WnOnKDx3vy
タグ: Julia言語
posted at 14:53:31
juliaよくわからんままMKLを入れたら行列計算めっちゃはやくなったっぽい。X::1000*1000のランダム行列で、eigen(X)だと20倍弱速くなってビビった。
タグ:
posted at 14:51:46
#Julia言語 そこでは、CやFortranで書かれた高速ライブラリ単体やNumbaのようなJITでの高速化単体に関する単純なベンチマークテストを行なっても、仕事の全体でどうなるかは分からないという事実が強調されています。
www.stochasticlifestyle.com/why-numba-and-...
タグ: Julia言語
posted at 14:40:19
津田和俊/急激に進行した網膜剥離と闘って @kaztsuda
@TatsutaKazuto いわゆる「学者」と呼ばれている人々の間でも実は「政治活動」はあり、例えば学長、学会の長、など、猿山のボス猿になりたがる人は一定の割合でいるのです。学術会議も、その一つ。自分の研究で忙しい人らにとっては、あまり興味のない世界で(だから、反応も冷淡)。
タグ:
posted at 14:38:57
#Julia言語
添付画像は既出の www.stochasticlifestyle.com/why-numba-and-... のスクショ。
44 ms ← Python SciPy + Numba
3.3 ms ← Python からJuliaを使った場合
2.0 ms ← Juliaの普通の使い方の場合(StaticArraysも使う)
Juliaでの普通の速さより、SciPy + Numba によるローレンツ方程式の数値解法は22倍も遅い。 pic.twitter.com/VbdxUoZzF3
タグ: Julia言語
posted at 14:35:18
非公開
タグ:
posted at xx:xx:xx
#Julia言語 訂正版
Juliaで書かれた誤差函数の逆函数erfinv(x)はCやFortranで書かれたライブラリよりも数倍速い‼️
erfinv(x)は正規分布に関する統計処理において使われる基本特殊函数であり、そういうインフラレベルのライブラリでこういうことが起こっている‼️
www.youtube.com/watch?v=mSgXWp... pic.twitter.com/TAFbrv2GrL
タグ: Julia言語
posted at 14:09:01
#Julia言語 以上における「エラー函数」「誤差函数」をそれらの「逆函数」に訂正します!文字数制限のプレッシャーに負けてケアレスミスを犯してしまいました。ごめんなさい。
与えられた確率αに対して「正規分布で値がx以上になる確率がちょうどαになるx」を求めるために使われる基本特殊函数。 pic.twitter.com/lK89Lk1dM0
タグ: Julia言語
posted at 14:05:20
#Julia言語 最初からJuliaの誤差函数erf(x)がCやFortranで書かれたライブラリの2~3倍以上の速さであることをネタにした方がよかった。
E₁(z)の方が数学的に面白いので、そういう方向に流れる誘惑に抗し切れなかった。
誤差函数のような超基本的な所で速度に違いが生じているんです! twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 13:35:14
#Julia言語 続き。そこには、単純な単一の計算による速度比較は、パッケージ全体の実効的な速度を知る上ではあんまり役に立たないという話が書いてあります。
部品どうしが滑らかに貼り合わさっているかが計算速度において本質的な問題になる場合があるという話。
www.stochasticlifestyle.com/why-numba-and-...
タグ: Julia言語
posted at 13:30:18
#Julia言語 以上とは別の因子も実践的・実効的な計算速度に大きく影響することについては
www.stochasticlifestyle.com/why-numba-and-...
Why Numba and Cython are not substitutes for Julia
August 6 2018
Christopher Rackauckas
を参照。Point 1,2,3に分かれており、Point 1のタイトルを読むだけでも価値がある。
タグ: Julia言語
posted at 13:20:57
#Julia言語 「えっ!Juliaのコンパイラの最適化はそんなにすごいのか!→そんなはずはない!」のような思慮に欠けた短絡志向を行なってしまう人達がどれだけ劣った考え方をしているかをわかって頂ければ、以上のスレッドを苦労して書いた甲斐があります。
そういう劣った反応はそろそろやめるべき。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 13:13:54
@drmaruyama @Hishinuma_t C++やPython (+Cython)もまだメインで使っていますが、新しいプロジェクトはできるだけJuliaに移行したいという段階です。
タグ:
posted at 13:05:57
#Julia言語 E₁(z)ではなく、エラー函数
erf(x) = (1/√π)∫_0^x exp(-t²) dt
なら知っている人は多いでしょう。正規分布のcdfの計算に使われる函数なので、毎日みんなが使っている(笑)
Juliaのerf(x)は実際に使われているCやFortranで書かれたライブラリより速いです。
www.youtube.com/watch?v=mSgXWp... pic.twitter.com/6idIGjKoFw
タグ: Julia言語
posted at 13:05:36
Stefan Karpinski @StefanKarpinski
@quinn_jacobd Assuming you didn’t mean to write an infinite loop
タグ:
posted at 12:56:33
Stefan Karpinski @StefanKarpinski
@quinn_jacobd 272 years: 2^63 additions to overflow an Int64, an add is about a nanosecond ≈ 2^-30 seconds; so 2^33 seconds / 60*60*24*365 (seconds/year) = 272 years
タグ:
posted at 12:56:02
#Julia言語 CやFortranなどでJuliaと同じ__普通の速さ__を実現するためには、擬似乱数発生器、スレッド並列化、SIMDに関する知識だけではなく、
* 人間が直接書くにはバカげているほど複雑なコードの使用
に関する知識も必要だと分かりました。
必要な予備知識はこれだけで済むと思う? twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 12:52:52
@uncorrelated コンパイラに、g++ (gcc)の代わりに、icpc (icc)を使うようにすると、計算時間は7.444秒となって、ようやくJulia (with MKL)と同等になりました。
タグ:
posted at 12:52:36
#Julia言語 補足
nbviewer.jupyter.org/gist/genkuroki...
のIn[2]に引用されたコードの解説
右複素半平面を幾つかの領域に分割し、各領域ごとにE₁(z)を十分な精度で近似するために使える多項式または有理函数(多項式分の多項式)を用意し、Horner法のべた書きで計算する。
やっているのはこれだけです。 pic.twitter.com/34JXKpVcMr
タグ: Julia言語
posted at 12:40:59
#Julia言語 マクロが自動生成したコードの一部は添付画像のような感じ。
この程度であれば確かに他言語への移植も大したことがないかもしれませんが、この場合にはこの程度で済んだだけ。
あと、コードの最適化には試行錯誤が伴います。添付画像のコードをコピペした側では試行錯誤できなくなる‼️ pic.twitter.com/mnKhjKc9BD
タグ: Julia言語
posted at 12:31:44
というかそもそもBLAS自体も並列化はオプションだしな...
BLASをリンクしていれば速いというのも実は嘘で適切に並列化を有効にしてビルドしたBLASをリンクしないといけない... twitter.com/Hishinuma_t/st...
タグ:
posted at 12:30:35
「有名なライブラリを適当に入れれば並列化されているはず」
「BLASやLAPACKを適当に呼んでくれているはず」
というのは大体しくじるパターンで,古いライブラリだとマルチスレッドやMPIは大体オプションだし,C++はリンク周りが難しいのでBLASもオプション
make一発では絶対に遅い設定と思っていい
タグ:
posted at 12:12:29
MIZUNO Yoshiyuki 水野義 @y_mizuno
4)例えば1950年代に学術会議は、科学研究基法を提出して努力した。しかし「科学研究」に人文科学、社会科学を含めたため政府から反対され(今と似てる?)、国会で審議未了廃案。代わりに出来たのが科技庁の科学技術会議だった。当然、これにも反対決議。総理府の一行政機関なのに煙たがられ続けた。
タグ:
posted at 12:10:46
#Julia言語 宿題の答えはJulia v0.5時代のもので、現在のJuliaで動くようにしたものが
nbviewer.jupyter.org/gist/genkuroki...
のIn[2]にあります(添付画像に引用)。
純粋にアルゴリズムの最適化による高速化になっていることが分かります。ただしマクロ(コードの自動生成)を使っている。続く pic.twitter.com/vCLIoITZ0N
タグ: Julia言語
posted at 12:05:29
#Julia言語
nbviewer.jupyter.org/github/steveng...
MITでの宿題の答え
では指数積分函数E₁(z)をJuliaで実装し、SciPyで採用されているFortranで書かれたライブラリの5〜6倍の早さを実現しています。
これは人工的な問題での比較ではなく、実際に使われているライブラリとの比較。続く twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 11:55:00
#Julia言語 単純な和なのにsimdを使わずに比較するという不適切な速度比較をしている場合。
Julia側でのsimdを使わないforループによる和はJuliaユーザーが通常使うビルトインsum函数より一桁遅いです。
さらに前から順番に足す方法だと丸め誤差が増え易い。Juliaのsumはそこまで配慮している。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 11:28:35
#Julia言語 すでに、Juliaは普通の速さ(=C, C++, Fortranでの普通の速さ)で計算してくれることが分かっています。
Juliaがインタラクティブに使われる環境であることを理由にその点を疑う人がいるようだが、ひどい誤解だと思う。
型宣言やテンプレートの類を一切書かなくても__普通に__速いです。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 11:17:47
#Julia言語 例
【πのモンテカルロ計算での
N=10⁶回ループにかかる時間のまとめ
25 ms ←問題有りのgcc版
3.2 ms ←普通のJulia版3
0.86 ms ←nthreads()=8の並列処理のJulia版5】
以下のリンク先スレッドでは、gcc側で失敗していたせいで、gcc側が普通のJulia版より8倍近く遅くなっている話。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 10:57:52
#Julia言語 色々あったようだが、現時点では
①6.89秒 Julia MKL
②13.08秒 C++ EIGEN_USE_MKL_ALL
③14.24秒 Julia OpenBLAS(デフォルト)
②と③は同じ程度。①はそれらより倍以上速い。
C++ EIGENでMKLを使ってもC++版をほぼ忠実にJuliaに翻訳したもの(のOpenBLASデフォルト版)と同じ程度なのか。 twitter.com/dc1394/status/...
タグ: Julia言語
posted at 10:42:27
@rigarash @Hishinuma_t Eigenのヘッダファイルで、「#define EIGEN_USE_MKL_ALL」して、EigenからMKLを呼ぶようにすれば、計算時間が13.08秒くらいになって、Juliaより多少速くなりました。しかし、まだMKLを使用したときのJuliaの速度には及びません。
twitter.com/dc1394/status/...
タグ:
posted at 10:29:34
学術会議の件、このニュースだけ聞くと、学術会議ってものすごい影響力の大きい機関で多額の予算を左右して日頃から政府批判に道義的裏付けを与える存在だから委員任命が政治問題になるんだとか思っちゃいますよね…。
タグ:
posted at 09:26:23
物理学者の生産性向上の点でJuliaは推しているけど、C++と絶対的性能を比較する際に気をつけた方がいいと思う。プログラムのどこがボトルネックで、なぜ性能が変わったのかを理解するのが重要。
タグ:
posted at 08:14:10
@dc1394 @Hishinuma_t この速度差はEigenだと自前のルーチンが使われて、JuliaだとLAPACKのものが呼ばれる、ということだけのはずです。
Eigenできちんと外部ライブラリ呼ぶには、EIGEN_USE_LAPACKEマクロを有効にしないといけないですね。
eigen.tuxfamily.org/dox/TopicUsing...
タグ:
posted at 07:21:46
@Hishinuma_t 残念ながら、Makefileでコンパイルオプションに-fopenmpを指定しても、計算時間は変わらず、全く速くなりませんでした。プロファイラの解析によると、律速になっているのは、Eigenで一般化固有値問題の解を求める箇所でした。従って、EigenがJuliaが呼び出しているBLASに比べて遅いのが原因のようです
タグ:
posted at 06:03:45
@SimonPJByrne I wonder if there was a "how to Hacktoberfest" article or document somewhere that gave bad instructions and had a hardcoded list of potential repos that then got overrun.
タグ:
posted at 03:51:55
To go against the stream, I always thought Hacktoberfest was good fun and pushed new contributors over the edge to actually submit a PR. Sounds like this year is particularly spammy, but I have no problem with the program as a whole.
タグ:
posted at 03:43:18
判子の廃止、むしろ法律を理由にしたらいいのでは。尺貫法を廃止してメートル法を普及させるのに計量法を作って使用自体を違法化したよね?
news.yahoo.co.jp/articles/68de0...
タグ:
posted at 02:07:55
Lettre mensuelle en français sur le langage Julia
pnavaro.github.io/NouvellesJulia...
#julialang
タグ: julialang
posted at 02:05:02
#Julia言語 サイコロの例
X = rand(DiscreteUniform(1, 6), 10^5)
Y = rand(DiscreteUniform(1, 6), 10^5)
bin = 1.5:12.5
plot(legend=:outertopright, xtick=2:12)
histogram!(X+Y; norm=true, alpha=0.3, bin, label="X+Y")
histogram!(2X; norm=true, alpha=0.3, bin, label="2X") pic.twitter.com/DSZniiZrbc
タグ: Julia言語
posted at 01:45:22
#Julia言語 プロットは
julia> ]
pkg> add StatsPlots
pkg> precompile
pkg> バックスペース
julia> using Distributions, StatsPlots
julia> X = rand(Gamma(10, 0.2), 10^5)
julia> histogram(X; norm=true, alpha=0.3, label="")
julia> plot!(Gamma(10, 0.2); label="")
のような感じ。 pic.twitter.com/syrXd3o9lf
タグ: Julia言語
posted at 01:36:35
#Julia言語 では
julia> ]
pkg> add Distributions
pkg> バックスペース
julia> using Distributions
julia> rand(DiscreteUniform(1,6), 10)
julia> rand(Gamma(10, 0.2), 10)
のように、rand(確率分布, 個数)で沢山の種類の乱数を生成できます。 pic.twitter.com/SgqCOa2g7i
タグ: Julia言語
posted at 01:30:43
#数楽 14~20行目はプロット用のコード。一般にコンピュータでのグラフの描き方の学習コストは非常に高いです。
X+Yと2Xのそれぞれが生成した10万個の乱数のヒストグラムと、数学的に予想される結果の確率密度函数のグラフを重ねて描いています。ぴったり予想通りになっている! pic.twitter.com/hOVRm4IL3A
タグ: 数楽
posted at 01:11:23
#数楽
10~12行目:X+Y と 2X についてそれぞれ10万個の乱数を発生させている。乱数の配列は統計学用語でサンプルとよばれているので、そういう変数名を付けています。 pic.twitter.com/Sizwm7Jf7B
タグ: 数楽
posted at 01:07:52
#数楽 独立な乱数を発生させる函数 X() と Y() から函数 (X+Y)() と (2X)() をそれぞれ
(X+Y)()= X() + Y()
(2X)() = 2X()
と定義するとき、この2つが発生させる乱数の分布にどのような違いがあるかが問題。
それを確認したのが添付画像のコードとプロットです。 pic.twitter.com/2gHfKBwdzv
タグ: 数楽
posted at 01:05:02
#数楽 なぜかツイッターでは妙に「測度論的確率論に基く確率変数の定義」の「権威」が無用に高い。そういう「権威」の無用な高まりは、「分かっていない人達だけが気にすればよいこと」であり、確率論の初心者はもっと気楽にJuliaとかで遊んでみることによって概念を直観的に把握してしまえばよい。 pic.twitter.com/X33P1chqQ9
タグ: 数楽
posted at 01:02:04
The Meaning of Functions in Julia bit.ly/34pQzkT #JuliaLang #Programming pic.twitter.com/CZZfut3Qjh
タグ: JuliaLang Programming
posted at 01:00:58
#数楽 コードの解説
3~8行目:パラメータα=10, θ=0.2のガンマ分布に従って独立に乱数を発生させる函数X, Yとそれらから作られる乱数発生函数X+Y, 2Xを定義。
このX, Yは「独立な確率変数」のJuliaによる1つの実現だと考えられます。続く pic.twitter.com/mEHhhW6XDf
タグ: 数楽
posted at 00:58:27
#Julia言語 例えば、
x + 0.1
の構文木への変換で、x と + はシンボルになり、0.1はFloat64型の0.1になります。
そして、+は演算子(函数)扱いなので、ヘッドが函数呼び出しを意味するcallシンボルになっている。
シンボルは構文木を構成するときに使われる「文字列」(Stringとは別扱い)です。 pic.twitter.com/x5IhPGSs98
タグ: Julia言語
posted at 00:47:16
#Julia言語 Juliaでのパースの仕方の概略は
:(どのようにパースされるかを知りたいコード)
のように :( ~ ) で囲んだ結果の表示を見れば分かります。概略ではなく詳細を知りたければ、
Meta.@ dump どのようにパースされるかを知りたいコード
を実行。Meta. show_sexprも便利。 pic.twitter.com/FpXOKnIvM5
タグ: Julia言語
posted at 00:43:47
#Julia言語 Julia対応環境におけるユニコード文字の入力法に関する公式ドキュメント↓
docs.julialang.org/en/v1/manual/u...
σ² や Δt のような変数名を使えるのは確かに便利で、変数名の選択に悩む場合が大幅に減る。
さらに、教科書に書いてある数式と同じ記号にしておけば、アルゴリズムを解読し易くなる。
タグ: Julia言語
posted at 00:16:19
#Julia言語
Juliaでは
X+Y
2X
sample of X+Y
などを函数名や変数名に使える。正確に言えば、
var"X+Y"
var"2X"
var"sample of X+Y"
などを函数名や変数名に使える。
適切な変数名に悩む時間がもったいない人は利用すればよいと思う。添付画像は例。
nbviewer.jupyter.org/gist/genkuroki... pic.twitter.com/yljiny6osP
タグ: Julia言語
posted at 00:10:45
4/ We also discussed Viral’s 2016 book - Rebooting India: Realizing a Billion Aspirations - which he co-wrote with @NandanNilekani, co-founder of @Infosys Technologies. End/ thedataexchange.media/a-programming-...
タグ:
posted at 00:00:55
3/ Should more data scientists take another look at #Julialang? In this short excerpt, @Viral_B_Shah makes a strong case for @JuliaLanguage for data processing, data visualization, and data science www.youtube.com/watch?v=PECuRJ...
タグ: Julialang
posted at 00:00:55
2/ I first came across Julia at the beginning of March 2012 after seeing @JeffBezanson give a talk at Stanford. Over the past few years, Julia has continued to add packages at a steady pace and its core packages & package manager are now really quite impressive and solid.
タグ:
posted at 00:00:54
1/ In this episode of #TheDataExchangePod I speak with @Viral_B_Shah, co-founder and CEO @JuliaComputing, and co-creator of @JuliaLanguage. We discussed state of #Julialang, Julia 1.5, and the Julia ecosystem and community. thedataexchange.media/a-programming-...
タグ: Julialang TheDataExchangePod
posted at 00:00:54
ごまふあざらし(GomahuAzaras @MathSorcerer
こんな感じで配信できそうではある.(そんな元気は今ないけれど)
#Julia言語 pic.twitter.com/iTyxyHIOKD
タグ: Julia言語
posted at 00:00:27