Juliaやってみよう。四日目。@timeでプロファイリング
今日は、昨日のIzhikevichモデルのコードの簡単なプロファイリングしてみる。Pythonに翻訳した時とどっちが速いのかというのが知りたい。結果次第ではjuliaは使わないかもしれない。ちょっと古い記事だけど、ある程度アレイが大きくなるとNumpyの方が速いというベンチマークもあるので、自分が使うような用途で確認してみたい。
@time
公式ドキュメンテーションのパフォーマンスのコツによると、基本的には@timeというマクロがあるので、それを使うと良いようだけど、グローバルのスコープで実行するとオーバーヘッドがあって遅くなる(からのForループでも100マイクロ秒くらい)ので、測りたい部分をfunctionにして測るのがよいらしい。
昨日のコードをfunctionの中にいれてやって、
function test() Ne = 800; Ni = 200; re = rand(Ne, 1); ri = rand(Ni, 1); a = [0.02 * ones(Ne, 1); 0.02 * ones(Ni, 1)] b = [0.2 * ones(Ne, 1); 0.25-0.05*ri] c = [-65 + 15 * re .^ 2; -65*ones(Ni, 1)] d = [8-6*re .^ 2; 2*ones(Ni,1)] S = hcat(0.5 * rand(Ne+Ni,Ne), -rand(Ne+Ni,Ni)); v=-65*ones(Ne+Ni,1); # Initial values of v u=b.*v; # Initial values of u firings=[]; # spike timings for t=1:1000 # simulation of 1000 ms I=[5*randn(Ne,1);2*randn(Ni,1)]; # thalamic input fired=find(v.>= 30); # indices of spikes firings=[firings; hcat(t+0*fired, fired)]; v[fired]=c[fired]; u[fired]=u[fired]+d[fired]; I=I+sum(S[:,fired], 2); v=v+0.5*(0.04*v.^2+5*v+140-u+I); # step 0.5 ms v=v+0.5*(0.04*v.^2+5*v+140-u+I); # for numerical u=u+a.*(b.*v-u); # stability end end
あとは
@time test()
としてやる。
うちのPCでは
0.785356 seconds (326.64 k allocations: 365.923 MiB, 24.83% gc time)
という感じでした。
numpyバージョンを作らねば。
« Juliaやってみよう。三日目。MATLABコードを翻訳してみる。 | トップページ | Juliaやってみよう。五日目。Pythonと速度比較。 »
「Python」カテゴリの記事
- Noteの記事をPythonでバックアップしといた。(2021.05.05)
- JupyterLabでも好きな外部エディターを使いたい!(2018.05.02)
- ローカルエリア内のJupyterLabサーバーにLAN経由で接続する。(2018.05.02)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
「Julia」カテゴリの記事
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
- Juliaやってみよう。三日目。MATLABコードを翻訳してみる。(2017.07.15)
- Juliaやってみよう。二日目。Juliaのアップデート、IJulia(2017.07.13)
- Juliaやってみよう。一日目。GRでプロット。(2017.07.12)
コメント
« Juliaやってみよう。三日目。MATLABコードを翻訳してみる。 | トップページ | Juliaやってみよう。五日目。Pythonと速度比較。 »
https://www.pandorajewelryuk.uk.com/
https://www.officialyeezywebsite.us.com/
https://www.nikeshoesoutlets.us.com/
https://www.nikeclearances.us.com/
https://www.nike-rosherun.us.com/
https://www.yeezycanadastore.ca/
https://www.nikeclearancestores.us.com/
https://www.adidasoutletshoes.us.com/
https://www.trainersoutlet.uk.com/
https://www.nikeoutletstore.ca/
https://www.yeezyshoesboost.us.com/
https://www.yeezysboost-350.us.com/
https://www.newtrainers.uk.com/
https://www.offwhite-shoes.us.com/
https://www.pandorasjewelry.uk.com/
https://www.yeezy500boost.us.com/
https://www.adidass.us.com/
https://pandorabracelets-charms.us.com/
https://www.adidasshoesshop.us.com/
https://www.adidasoutletstores.us.com/
https://www.nikesrunningshoes.us.com/
https://www.pandoras.uk.com/
https://www.nikeshoesshop.ca/
https://www.jewelrypandora.us.org/
https://www.yeezyboost350v2.us.com/
https://www.nike-outletfactory.us.com/
https://www.trainerssale.uk.com/
https://www.pandoracharmsbracelets.us.com/
https://www.outletadidasshoes.us.com/
https://www.adidascom.us.com/
https://www.nmd.uk.com/
https://www.nikeoutletsonline.us.com/
https://www.yeezyshoesadidas.us.com/
https://www.nikesneakersstore.us.com/
https://www.shoesoutletstores.ca/
https://www.nikeoutletstores.us.com/
https://www.nikeair-force1.us.com/
https://www.adidasyeezyofficialwebsite.us.com/
https://www.pandoracharmsbracelet.us.com/
https://www.ultraboost.uk.com/
https://www.newadidasshoes.us.com/
https://www.adidasshoesonline.us.com/
https://www.adidasultraboost.shop/
https://www.ultra-boost.us.com/
https://www.pandorascharms.uk.com/
https://www.adidasyeezys.us.com/
https://www.airforce1s.us.com/
https://www.yeezyshoesstore.ca/
https://www.adidas-superstars.us.com/
https://www.nike-onlinecanada.ca/
https://www.yeezyshop.us.com/
https://www.nike-sneakers.us.com/
https://www.nikeoutlet--store.us.com/
https://www.nikesoutlets.us.com/
https://www.yeezy350shoes.ca/
https://www.nikesstoreoutlet.us.com/
https://www.trainersstore.uk.com/
https://www.adidasstoreonline.us.com/
https://www.adidas-originalssuperstar.us.com/
https://www.adidassuperstars.us.com/
https://www.nikepresto.us.org/
https://www.nikecanada-onlineshopping.ca/
https://www.pandorarings.uk.com/
https://www.nmdsadidas.us.com/
投稿: Tim | 2021年10月 6日 (水) 01時44分