Skip to content

Instantly share code, notes, and snippets.

@helgee
Last active August 29, 2015 14:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save helgee/0eef2ca36afb4339710d to your computer and use it in GitHub Desktop.
Save helgee/0eef2ca36afb4339710d to your computer and use it in GitHub Desktop.
DOP853 & DOPRI5 Julia Performance
== problem A3 in DETEST ==
testing method ode23
elapsed time: 0.078190123 seconds (12007840 bytes allocated)
* number of steps: 307
* minimal step: 0.017235477520255074
* maximal step: 0.13251841619057103
* maximal deviation from known solution: 0.00024150339666606513
testing method ode23_bs
elapsed time: 0.033126906 seconds (9628320 bytes allocated)
* number of steps: 309
* minimal step: 0.03031894300476523
* maximal step: 0.13334865621622605
* maximal deviation from known solution: 0.0002443491465573544
testing method ode45_dp
elapsed time: 0.00598708 seconds (1163120 bytes allocated)
* number of steps: 52
* minimal step: 0.1490770803541963
* maximal step: 0.5277942154551631
* maximal deviation from known solution: 1.4358013599391484e-5
testing method ode45_fb
elapsed time: 0.006219132 seconds (1255360 bytes allocated)
* number of steps: 57
* minimal step: 0.2
* maximal step: 0.6019190640348882
* maximal deviation from known solution: 0.0002961599011430671
testing method ode45_ck
elapsed time: 0.005484652 seconds (1071120 bytes allocated)
* number of steps: 50
* minimal step: 0.2
* maximal step: 0.6412708946634034
* maximal deviation from known solution: 0.00015482199542482533
testing method ode78_fb
elapsed time: 0.003243284 seconds (642960 bytes allocated)
* number of steps: 26
* minimal step: 0.06587922665555013
* maximal step: 1.04220819385041
* maximal deviation from known solution: 1.1710040641155217e-5
testing method dop853
elapsed time: 0.001676933 seconds (805040 bytes allocated)
* number of steps: 28
* minimal step: 0.10018506139785896
* maximal step: 1.0589836354734983
* maximal deviation from known solution: 1.2285766426423095e-6
testing method dopri5
elapsed time: 0.002445262 seconds (1112880 bytes allocated)
* number of steps: 74
* minimal step: 0.02519328211186309
* maximal step: 0.35855999952947926
* maximal deviation from known solution: 4.9140511206857695e-6
== problem B5 in DETEST ==
testing method ode23
elapsed time: 0.047458819 seconds (15729200 bytes allocated)
* number of steps: 238
* minimal step: 1.7235477520255075e-5
* maximal step: 0.13058852624067363
testing method ode23_bs
elapsed time: 0.024245292 seconds (10955760 bytes allocated)
* number of steps: 172
* minimal step: 0.0007839590484195469
* maximal step: 0.18195874962695058
testing method ode45_dp
elapsed time: 0.007087988 seconds (3670320 bytes allocated)
* number of steps: 34
* minimal step: 0.12
* maximal step: 0.5079142619984776
testing method ode45_fb
elapsed time: 0.006479896 seconds (3475760 bytes allocated)
* number of steps: 36
* minimal step: 0.12
* maximal step: 0.5526493932284717
testing method ode45_ck
elapsed time: 0.005299039 seconds (2588080 bytes allocated)
* number of steps: 28
* minimal step: 0.12
* maximal step: 0.5484556191795456
testing method ode78_fb
elapsed time: 0.007544782 seconds (5003920 bytes allocated)
* number of steps: 16
* minimal step: 0.12
* maximal step: 1.1468526118328999
testing method dop853
elapsed time: 0.000937938 seconds (528800 bytes allocated)
* number of steps: 20
* minimal step: 0.018298673543277744
* maximal step: 0.8704990979433624
testing method dopri5
elapsed time: 0.001778931 seconds (885840 bytes allocated)
* number of steps: 57
* minimal step: 0.01083038817429916
* maximal step: 0.31293498238215633
== problem Gravity in DETEST ==
testing method ode23
elapsed time: 0.980828097 seconds (697802080 bytes allocated)
* number of steps: 3458
* minimal step: 1.7969148347567307
* maximal step: 39.060781983490415
testing method ode23_bs
elapsed time: 0.308633596 seconds (202950000 bytes allocated)
* number of steps: 1609
* minimal step: 24.995537551425514
* maximal step: 58.10734867301653
testing method ode45_dp
elapsed time: 0.074177714 seconds (41533040 bytes allocated)
* number of steps: 304
* minimal step: 232.63351497167605
* maximal step: 296.21785556010127
testing method ode45_fb
elapsed time: 0.070920731 seconds (38245520 bytes allocated)
* number of steps: 334
* minimal step: 199.5495023339754
* maximal step: 269.976061169953
testing method ode45_ck
elapsed time: 0.050533567 seconds (26644400 bytes allocated)
* number of steps: 240
* minimal step: 283.0622840151336
* maximal step: 378.1776419570051
testing method ode78_fb
elapsed time: 0.068507682 seconds (45735280 bytes allocated)
* number of steps: 141
* minimal step: 196.05248933298572
* maximal step: 635.4255672809013
testing method dop853
elapsed time: 0.007405494 seconds (3998880 bytes allocated)
* number of steps: 142
* minimal step: 0.17736658104116593
* maximal step: 654.7270685115654
testing method dopri5
elapsed time: 0.031609513 seconds (8225360 bytes allocated)
* number of steps: 502
* minimal step: 0.06283402366619872
* maximal step: 190.75680832781927
Julia Version 0.3.0-prerelease+4017
Commit 56da98a (2014-07-02 12:18 UTC)
Platform Info:
System: Darwin (x86_64-apple-darwin13.3.0)
CPU: Intel(R) Core(TM) i5-2557M CPU @ 1.70GHz
WORD_SIZE: 64
BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY)
LAPACK: libopenblas
LIBM: libm
================================================================================
Final results and solver statistics.
DOP853
======
-1814.0158065395183
-3707.990103971951
5153.002179414949
6.511993554724289
-4.229010818589299
-0.7439840760122736
Fortran Julia
Func. calls 170 170
Steps taken 14 14
Accepted 14 14
Rejected 0 0
DOPRI5
======
-1813.9287959004837
-3708.0448704225864
5152.990477446107
6.512026718045747
-4.2289470209802875
-0.7440742421532821
Fortran Julia
Func. calls 230 230
Steps taken 38 38
Accepted 36 36
Rejected 2 2
================================================================================
Comparison of results for all solver steps.
DOP853
======
1: OK
2: OK
3: OK
4: OK
5: OK
6: OK
7: OK
8: OK
9: OK
10: OK
11: OK
12: OK
13: OK
14: OK
15: OK
DOPRI5
======
1: OK
2: OK
3: OK
4: OK
5: OK
6: OK
7: OK
8: OK
9: OK
10: OK
11: OK
12: OK
13: OK
14: OK
15: OK
16: OK
17: OK
18: OK
19: OK
20: OK
21: OK
22: OK
23: OK
24: OK
25: OK
26: OK
27: OK
28: OK
29: OK
30: OK
31: OK
32: OK
33: OK
34: OK
35: OK
36: OK
37: OK
================================================================================
Timing of a single run and memory allocations.
DOP853
======
High-Level runtime: 8.0463e-5 seconds
High-Level memory: 59928 bytes
Low-Level time: 4.796e-5 seconds
Low-Level memory: 5256 bytes
DOPRI5
======
High-Level runtime: 0.000102152 seconds
High-Level memory: 82776 bytes
Low-Level time: 4.2687e-5 seconds
Low-Level memory: 8904 bytes
================================================================================
Averaged time over N runs.
10000 runs
DOP853
======
High-Level runtime: 0.00010592087599999955 seconds per loop
Low-Level runtime: 2.8295204100000006e-5 seconds per loop
Gfortran: 2.5700000000000018e-5 seconds per loop.
Gfortran (-Ofast): 9.900000000000007e-6 seconds per loop.
DOPRI5
======
High-Level runtime: 0.00022080424379999997 seconds per loop
Low-Level runtime: 6.378757010000009e-5 seconds per loop
Gfortran: 6.330000000000005e-5 seconds per loop
Gfortran (-Ofast): 2.840000000000002e-5 seconds per loop
================================================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment