« Juliaやってみよう。三日目。MATLABコードを翻訳してみる。 | トップページ | Juliaやってみよう。五日目。Pythonと速度比較。 »

2017年7月16日 (日)

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」カテゴリの記事

Julia」カテゴリの記事

コメント

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/

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: Juliaやってみよう。四日目。@timeでプロファイリング:

« Juliaやってみよう。三日目。MATLABコードを翻訳してみる。 | トップページ | Juliaやってみよう。五日目。Pythonと速度比較。 »

しろののツイッタータイムライン(凍結中)

  • ツイッターは5つ目も凍結されました。6つ目での復活も不可能。なのでnoteに注力しています。

    と思ったら、イーロン・マスクの買収が公になってアカウントが復活できました。ありがとうマスク。

    トランプ関連記事の一覧リスト

オススメたち

2022年8月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

はてブ

無料ブログはココログ