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.
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Rigorous Benchmarking in Reasonable Time. ACM, New York, June 2013
Gnu fortran (2018). https://gcc.gnu.org/fortran/
Matplotlib home site (2018). https://matplotlib.org/
Numpy home site (2018). http://www.numpy.org//
Python home site (2018). https://www.python.org/
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
Bezanson, J., Karpinski, S., Shah, V.B., Edelman, A.: Julia: A Fast Dynamic Language for Technical Computing, September 2012
Brainerd, W.S.: Guide to Fortran 2008 Programming. Springer, London (2015). https://doi.org/10.1007/978-1-4471-6759-4
Butcher, J.: Numerical Methods for Ordinary Differential Equations, 2nd edn. Wiley, New Zealand (2003)
Chapman, S.J.: Fortran for Scientists and Engineers. McGraw-Hill Education, New York (2018)
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
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
Hanson, R.J., Hopkins, T.: Numerical Computing With Modern Fortran. SIAM, Philadelphia (2013)
Jones, E., Oliphant, T., Peterson, P., et al.: SciPy: Open source scientific tools for Python (2001). http://www.scipy.org/
Kalibera, T., Jones, R.E.: Quantifying Performance Changes with Effect Size Confidence Intervals. Technical report 4–12, University of Kent, June 2012
Rossum, G.: Python reference manual. Technical report, Amsterdam, The Netherlands (1995)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
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)