黒木玄 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 を見て下さい。
2021年08月12日(木)
Genie framework v2.1.0 release! 🔵🟢🔴
#JuliaLang #GenieFramework
github.com/GenieFramework...
posted at 04:32:42
We're delighted to announce the release of a more powerful Pumas. The only pharmaceutical modeling software you need! Thanks to entire dev team and
@JuliaComputing for getting us here! pumas.ai
#pumas #julialang #pharma #nlme #qsp #pkpd #pharmacometrics #midd #nca pic.twitter.com/hqgm5GnMr3
タグ: julialang midd nca nlme pharma pharmacometrics pkpd pumas qsp
posted at 05:07:13
L=10くらいの場合はSparseArraysを使うと速いことは私も確認していたのですが、L=20の場合はまだでした。
juliaphysics.github.io/PhysicsTutoria... の方法でL=20の場合を試してみました。
結論:速くならなかった。その理由は疎行列の作成に4秒弱もかかっているから。
続く
github.com/genkuroki/publ... twitter.com/yujitach/statu... pic.twitter.com/7uLqCrigYQ
タグ:
posted at 05:09:18
LinearMaps版は約8秒で計算が終わり、SparseArrays版は疎行列作成に4秒弱かかり、partialschurに7秒かかっています。
疎行列の作成時のアロケーションが巨大なので改善を試みる価値はあると思います。しかし、疎行列作成を1秒未満で終わらせないとLinearMaps版に勝てない。
誰か、GPU版をよろしく! pic.twitter.com/RFXoYnThlo
タグ:
posted at 05:13:32
A lot of work went in to this version of Pumas. More robust, so many new features, improved workflows and more... and trust me, we have a lot more on the way! #pumas #julialang #pharma twitter.com/pumas_ai/statu...
posted at 05:23:49
そうそう、自分で
juliaphysics.github.io/PhysicsTutoria...
のコードで遊ぶ場合には、周期境界条件になっていないことに注意して下さい。ほんのちょっとの修正で周期境界条件にできます。
github.com/genkuroki/publ... のIn[2](添付画像)の21行目を参照。 pic.twitter.com/niOtMFef8g
タグ:
posted at 05:48:51
[6]の H = ~ の行で約100万×100万で0でない成分の個数が約20×100万個の疎行列を作っているのですが、アロケーションが巨大になっています。
すっきりしたコードでアロケーションを減らす方法があれば教えてください。途中の計算を!付き演算で置き換えるだけでよい場合もそうだと教えて下さい。 pic.twitter.com/kdAPXGKHfP
タグ:
posted at 05:52:18
#Julia言語
BenchmarkTools.jlでより正確に計測。
LinearMaps.jl版(LoopVectorization.jlと併用)がかなり健闘していて、前もって線形写像の中身を計算しているSparseArrays版のH_sparseをpartialschurに与えた場合との比較で遜色ない性能になっています。
github.com/genkuroki/publ... pic.twitter.com/gE5HWNml4l
タグ: Julia言語
posted at 06:17:17
#Julia言語 どれだけ楽に、他人が書いたコードに変更を要求することなく、新しい型やメソッドを付け加えることができるようになるか、という問題はソフトウェアエンジニアリングの基本的な問題です。
Expression problemと呼ばれることもあるようです。続く twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 06:33:38
Expression problem については以下のリンク先を参照。
eli.thegreenplace.net/2016/the-expre...
クラスベースのオブジェクト指向ではうまく行かない。
eli.thegreenplace.net/2018/more-thou...
Haskellでも相当に苦しい。
Juliaでは何もせずに自然にexpression problemが解決しています。
タグ:
posted at 06:33:39
expression problemでのゲームのルールはこうです。
①パッケージXを誰かが書く。
②それ以後パッケージXを書き換えてはいけない。
③別のパッケージYの中でパッケージXに型や函数(メソッド)を追加せよ。 pic.twitter.com/B8o8DA5gTP
タグ:
posted at 06:51:34
既存のコードの変更が禁止されているとき、「既存の函数への新しい型を扱うメソッドの追加」と「既存の型を扱う新しい函数の追加」の両立が難しいというのが、このスレッドで扱いたいexpression problemです。
Juliaではexpression problemが自然解消されて見えなくなっています。 pic.twitter.com/SVRT8KqjSx
タグ:
posted at 06:56:24
以前書いた expression problem 関連のJupyter notebook
nbviewer.jupyter.org/github/genkuro...
#Julia言語
色々面倒になって多重ディスパッチを使うチートをしている部分があるので注意。多重ディスパッチになれると、それができない場合に戻るのは苦しい。
タグ: Julia言語
posted at 06:59:53
#Julia言語 の開発者の一人であるStefan Karpinskiさんによるexpression problemの解説
↓
discourse.julialang.org/t/is-julias-wa...
タグ: Julia言語
posted at 07:08:20
非公開
タグ:
posted at xx:xx:xx
非公開
タグ:
posted at xx:xx:xx
例えば、「型(もしくはクラス)Fooが保有するメソッドのリストがFooの定義で決まっており、Fooのコードの変更抜きにFooへの新しいメソッドの追加が不可能になる」というようなことは、メソッドが型やそのオブジェクトの保有物であるというスタイルを捨てたJuliaでは起こり得ません。
タグ:
posted at 07:50:19
同様に、「函数fooの定義域と値域はfooの定義で決まっており、fooのコードの変更抜きにfooの定義域を新しい型に拡張することが不可能になる」というようなことも、函数の定義域を多重ディスパッチで自由に拡張できるJuliaでは起こり得ません。
タグ:
posted at 07:50:20
多重ディスパッチの説明
まず、引数が1個の場合から。
Juliaでは、FooとBarが型名で、函数fが2つのメソッド
f(x::Foo) = ~
f(x::Bar) = ~
を持つとき、xの型がFooとBarのどちらであるかによってf(x)で実行されるメソッドが決まる。続く
タグ:
posted at 08:23:02
Bar <: Foo のとき、すなわち「xがBar型ならばFoo型である」ときには、
* xがBar型ならばf(x)でf(x::Bar)が実行される。
* xはBar型ではないがFoo型ならばf(x)でf(x::Foo)が実行される。
* xがFoo型でないならばf(x)はメソッドが見つからずエラーになる。
タグ:
posted at 08:23:03
Bar <: Foo でも Foo <: Bar でもないとき、xがBar型かつFoo型ならば、f(x)でf(x::Bar)とf(x::Foo)のどちらを実行してよいか曖昧になるのでエラーになる。
タグ:
posted at 08:23:04
以上の使用を引数が複数の場合にもそのまま一般化したものが多重ディスパッチです。
函数fが、定義域と計算法の組み合わせ(メソッド)の集まりで定義されていて、複数の定義域に含まれる引数については定義域が最も小さなメソッドが実行される。(最も小さな定義域を持つメソッドがないならエラー)
タグ:
posted at 08:23:05
函数を、定義域と計算法の組(=メソッド)の集まりだと考えることは、直観的に分かりやすいです。
函数には新しいメソッド(新たに設定された定義域における計算法)をいつでも自由に追加できる。
「オブジェクトからメソッドが生える」とか「函数の定義域と値域は固定されている」とは考えない。
タグ:
posted at 08:23:06
#Julia言語 での線形代数の実装が素晴らしい理由
youtu.be/C2RO34b_oPM
↑
github.com/JuliaLang/juli...
↑
discourse.julialang.org/t/unintuitive-...
これ、一言で言えば、「縦ベクトルの転置が縦ベクトルの空間の双対空間の要素になるべきであることに忠実に仕様を決める必要があった」という話です。
タグ: Julia言語
posted at 09:07:35
縦軸に 0 と10 が入ってないからlog plot かどうかわからないというコメントがきて対応に苦慮している。 twitter.com/Mihoko_Nojiri/...
タグ:
posted at 09:13:24
#Julia言語 次の質問がsolvedなので、あとはCUDAのsparse matrixで固有値を求めたい線形写像を表現するだけ。これならきっと誰かがやってくれるんじゃないか?😊
discourse.julialang.org/t/cuda-eigenva...
CUDA eigenvalues of a sparse matrix
タグ: Julia言語
posted at 09:46:18
Tomoaki Yamada @TomoakiYamada3
いつの間にかVS CodeのJulia extensionがJuliaPro並みに快適になっていた。Atomの将来性を考えるとJuliaProよりVS Code + Julia extensionの方が良さそう。ただ、初心者だと環境設定で少し戸惑うかもしれない。
タグ:
posted at 09:52:30
試しにCUSPARSE.CuSparseMatrixCSRでCPUの疎行列をGPUの疎行列に変換して、CUSOLVER.csreigvsiを実行してみたが、私が試した範囲内ではあんまり速くない。何か間違ったことをしているのかも。
現時点では、LinearMaps.jl と LoopVectorization.jl と ArnoldiMethod.jl の組み合わせが速い。
タグ:
posted at 10:43:54
訂正
❌対角化した線形写像
⭕️対角化したい線形写像
通常の疎行列を作ってからCUSPARSEの疎行列に変換して、CUSOLVER.csreigvsiを実行するのは易しい。
最大の問題はJulia版ドキュメントがないこと(笑)。
docs.nvidia.com/pdf/CUSOLVER_L... を参照した。 twitter.com/genkuroki/stat...
タグ:
posted at 11:08:57
この辺の線形代数のJuliaの実装面白いなあと思う。わしの素人考えでは、数学的に双対空間とかペアリングとスカラーとかきっちり実装を区別してやった方が遅くなりそうなもんじゃけど、そうじゃないし、それどころかそれが功を奏しているみたい。 #washipo ep13(podcast)でもほんの少し触れた。 twitter.com/genkuroki/stat...
タグ: washipo
posted at 12:15:16
13: Giving back to the Internet with Python and communities (ksnt) - わしポ (Washipo) washipo.nyoho.jp/13/
タグ:
posted at 12:15:44
デルタ株の感染力は極めて高いけど、どう考えても麻疹の方が基本再生産数の方が高いので「私の知る限り」と仰るけれど単純に山中先生の勉強不足です。 twitter.com/tororoontuna/s...
タグ:
posted at 12:27:18
Want to help guide a future main area of focus for the #JuliaLang DataFrames.jl package? Go cast your vote now! Interested in getting involved in development? Join discussions on discourse or slack to chat about how to push DataFrames.jl even further!
discourse.julialang.org/t/future-direc...
タグ: JuliaLang
posted at 16:03:29
非公開
タグ:
posted at xx:xx:xx
富谷(助教);監修 シン仮面ライダー @TomiyaAkio
#Julia言語 の研究会をします! 9/3 (金) akio-tomiya.github.io/julia_in_physi...
チュートリアル講演も多く用意しています。Juliaを使ってみたい(使ってる)学生や研究者等の積極的な参加を歓迎します。また一般講演も募集していますのでぜひぜひ! (主に物理研究での話を念頭に置いてますが基本何でもOKです) #RT希望
posted at 16:39:29
@sekibunnteisuu #超算数 単項演算と二項演算って、完全に大人の視点ですよね。かけ順自由は数学レベルで算数を学んでいる小学生には相応しくないとかなんとか同じ人が言っていたら笑い草です。
タグ: 超算数
posted at 17:20:45
@temmusu_n #超算数 あれは大人でも謎でしたよ。
足し算、引き算、掛け算に関しては、どういう基準なのかはなんとなくわかるけど、割り算に関しては全く意味不明。
blog.goo.ne.jp/mh0920-yh/e/08...
タグ: 超算数
posted at 17:27:56
地球惑星科学ではまだ使用例が少ないけど、Julia言語の先駆者たちの話が聞けそうで楽しみだ☺️ twitter.com/TomiyaAkio/sta...
タグ:
posted at 18:26:20
TheJapanTimesAlpha編集 @st_takahashi
「ネコがどこかに隠れているよ」という画像が回ってきたのだが、・・・見つけるのに15分くらいかかったぞ
※ヒント
・何かの陰に隠れているのではなく、ほぼ全身がはっきり見えている
・たぶん寝ている pic.twitter.com/TNUHTCTVt8
タグ:
posted at 19:22:16
弊社、コードがc#、c++、fortran77、fortran90、c、python2.x、python3.x etcとロジックごとに使われてる環境も言語もばらばらなのでこれを機会にjuliaを布教したい。
タグ:
posted at 20:12:04
東大卒でうだつが上がらなかった人は「受験大好き」になる例をたくさん見てるんだが、この人も多分に漏れずで、なんとKindleで入試本を自主出版しているほどの典型例であった。
タグ:
posted at 21:12:03
#julialang
Plotsでのグラフの出力が小さくなってから戻せません.
似た症状を経験された方いましたら,教えてください.
症状
・出力が小さい
・sizeコマンドでサイズを指定しても改善しない
(凡例が小さいまま)
・パッケージモードで add Interact をした後から挙動がこうなった pic.twitter.com/nVsmTx2zTq
タグ: julialang
posted at 21:14:50
環境
・macOS Big Sur ver.11.2.2
・MacBook Air (M1,2020)
・juypter notebookでJulia1.6.0
試したこと
・jupytern notebookの再起動
・PCの再起動
・添付画像のような表示が出たのでその指示に従い,ターミナルで
which jupyter
jupyter labextension list
を実行.出力はそれぞれ2,3枚目. pic.twitter.com/bHGyI6uVYx
タグ:
posted at 21:22:22
ごまふあざらし(GomahuAzaras @MathSorcerer
@iitenki_moruten Plots.jl のバージョンも知りたいです. (特定のバージョンで描画が小さくなった覚えがあります.)
jupyter は Julia が ~/.julia 以下に導入する conda 環境から導入したものを使っています. pic.twitter.com/MgIONSTFTE
タグ:
posted at 21:27:21
@MathSorcerer Plots のバージョンはこちらですね.
たしかに,v.1.11.2と書いてあり,少し古いのかもしれないです. pic.twitter.com/4z8Z5Z3VTn
タグ:
posted at 22:05:05
#Julia言語 について、数年前の多くの情報は大抵時代遅れなので、以下のリンク先に判断の仕方はまずいです。
2019年12月の時点ですでに
discourse.julialang.org/t/why-is-there...
【it’s on the order of ~30% rather than 3x.】
と3倍ではなく30%となっています。(これも時代遅れになっている危険性がある) twitter.com/sfumatoamr/sta...
タグ: Julia言語
posted at 22:23:37
#Julia言語 ググって見つけた1年以上前の情報(特にネガティブな情報)は現在では通用しない可能性が相当にあるので要注意。
書かれた当時は真実であっても現在では時代遅れになってしまったネガティブ情報を拡散すると、開発者達に努力を蔑ろにしてしまう危険性がある。 twitter.com/genkuroki/stat...
タグ: Julia言語
posted at 22:30:26
The Julia Language @JuliaLanguage
A new blog post titled: "Simulation of a swimming dogfish shark the Julia Language's official blog. Check it out here: zpr.io/imWkhQQeU4pZ and let us know your thoughts!
タグ:
posted at 22:51:22
ごまふあざらし(GomahuAzaras @MathSorcerer
@iitenki_moruten 1.11.2 にしてもこちらの環境では小さくならないですね.
```
pkg> add Plots@1.20
```
のようにしてPlotsバージョンを変更することができます pic.twitter.com/PiPXWmYamp
タグ:
posted at 23:21:15
今月・来月の発表予定
8月19日:新潟大学大学院自然科学研究科博士(後期)課程の口頭試問
8月28日:#CEED5th で発表
9月2日:Julia in Physics 2021で発表
8月末〜9月上旬:#CEED6th で発表
結構忙しい。まあ、スライドはもう全部作ってあるんだけど。
タグ:
posted at 23:22:55