Statistically significant comparative performance testing of julia and fortran languages in case of runge–kutta methods

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. © Springer Nature Switzerland AG 2019.

Language
English
Pages
400-407
Status
Published
Volume
11189 LNCS
Year
2019
Organizations
  • 1 Department of Applied Probability and Informatics, Peoples’ Friendship University of Russia (RUDN University), 6 Miklukho-Maklaya St, Moscow, 117198, Russian Federation
  • 2 Laboratory of Information Technologies, Joint Institute for Nuclear Research, 6 Joliot-Curie St., Moscow region, Dubna, 141980, Russian Federation
Keywords
Fortran language; Julia language; Performance; Runge–Kutta scheme
Date of creation
19.07.2019
Date of change
01.03.2021
Short link
https://repository.rudn.ru/en/records/article/record/39028/
Share

Other records