Skip to main content

Statistically Significant Comparative Performance Testing of Julia and Fortran Languages in Case of Runge–Kutta Methods

Part of the Lecture Notes in Computer Science book series (LNTCS,volume 11189)

Abstract

In this paper we compare the performance of classical Runge–Kutta methods implemented in Fortran and Julia languages. We use the technique described in technical report by Tomas Kalibera and Richard E. Jones from University of Kent. This technique allows to solve the following problems. 1. The determination of the number of runs required by the program to pass the warm-up stage (e.g. JIT-compilation, memory buffers filling). 2. The determination of the optimal number of levels of the experiment and the number of repetitions at each level for robust testing. 3. The construction of the confidence interval for the resulting average run time. For the numerical experiment we implement 6-th order classical Runge–Kutta methods in both languages in the most similar way. We also study unvectorized versions of our functions. For Julia we tested not only built-in vectorization capabilities, but also external library. For processing the results of measurements Python 3 with Matplotlib, NumPy and SciPy (stats module) were used. We carried out experiments for variety of ODE dimensions (from 2 to 64) and different types of processors. Our work may be interesting not only for the results of comparison of the new Julia language with Fortran, but also for the robust testing method demonstration.

Keywords

  • Runge–Kutta scheme
  • Julia language
  • Fortran language
  • Performance

The publication has been prepared with the support of the “RUDN University Program 5-100” and funded by Russian Foundation for Basic Research (RFBR) according to the research project No 16-07-00556.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-030-10692-8_45
  • Chapter length: 8 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   69.99
Price excludes VAT (USA)
  • ISBN: 978-3-030-10692-8
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   89.99
Price excludes VAT (USA)
Fig. 1.
Fig. 2.
Fig. 3.
Fig. 4.

References

  1. Rigorous Benchmarking in Reasonable Time. ACM, New York, June 2013

    Google Scholar 

  2. Gnu fortran (2018). https://gcc.gnu.org/fortran/

  3. Matplotlib home site (2018). https://matplotlib.org/

  4. Numpy home site (2018). http://www.numpy.org//

  5. Python home site (2018). https://www.python.org/

  6. Bezanson, J., Edelman, A., Karpinski, S., Shah, V.B.: Julia: A fresh approach to numerical computing. SIAM Rev. 59(1), 65–98 (2017). https://doi.org/10.1137/141000671

    MathSciNet  CrossRef  MATH  Google Scholar 

  7. Bezanson, J., Karpinski, S., Shah, V.B., Edelman, A.: Julia: A Fast Dynamic Language for Technical Computing, September 2012

    Google Scholar 

  8. Brainerd, W.S.: Guide to Fortran 2008 Programming. Springer, London (2015). https://doi.org/10.1007/978-1-4471-6759-4

    CrossRef  Google Scholar 

  9. Butcher, J.: Numerical Methods for Ordinary Differential Equations, 2nd edn. Wiley, New Zealand (2003)

    CrossRef  Google Scholar 

  10. Chapman, S.J.: Fortran for Scientists and Engineers. McGraw-Hill Education, New York (2018)

    Google Scholar 

  11. Gevorkyan, M.N., Velieva, T.R., Korolkova, A.V., Kulyabov, D.S., Sevastyanov, L.A.: Stochastic Runge–Kutta software package for stochastic differential equations. In: Zamojski, W., Mazurkiewicz, J., Sugier, J., Walkowiak, T., Kacprzyk, J. (eds.) Dependability Engineering and Complex Systems. AISC, vol. 470, pp. 169–179. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-39639-2_15

    CrossRef  Google Scholar 

  12. Hairer, E., Nørsett, S.P., Wanner, G.: Solving Ordinary Differential Equations I, 2nd edn. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78862-1

    CrossRef  MATH  Google Scholar 

  13. Hanson, R.J., Hopkins, T.: Numerical Computing With Modern Fortran. SIAM, Philadelphia (2013)

    MATH  Google Scholar 

  14. Jones, E., Oliphant, T., Peterson, P., et al.: SciPy: Open source scientific tools for Python (2001). http://www.scipy.org/

  15. Kalibera, T., Jones, R.E.: Quantifying Performance Changes with Effect Size Confidence Intervals. Technical report 4–12, University of Kent, June 2012

    Google Scholar 

  16. Rossum, G.: Python reference manual. Technical report, Amsterdam, The Netherlands (1995)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Dmitry S. Kulyabov .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Verify currency and authenticity via CrossMark

Cite this paper

Gevorkyan, M.N., Korolkova, A.V., Kulyabov, D.S., Lovetskiy, K.P. (2019). Statistically Significant Comparative Performance Testing of Julia and Fortran Languages in Case of Runge–Kutta Methods. In: Nikolov, G., Kolkovska, N., Georgiev, K. (eds) Numerical Methods and Applications. NMA 2018. Lecture Notes in Computer Science(), vol 11189. Springer, Cham. https://doi.org/10.1007/978-3-030-10692-8_45

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-10692-8_45

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-10691-1

  • Online ISBN: 978-3-030-10692-8

  • eBook Packages: Computer ScienceComputer Science (R0)