main| new issue| archive| editorial board| for the authors| publishing house|
Ðóññêèé
Main page
New issue
Archive of articles
Editorial board
For the authors
Publishing house

 

 


ABSTRACTS OF ARTICLES OF THE JOURNAL "INFORMATION TECHNOLOGIES".
No. 6. Vol. 31. 2025

DOI: 10.17587/it.31.322-330

Iu. N. Zgoda, Specialist,
Education Center of Digital Competence, Saint Petersburg State University of Architecture and Civil Engineering, Saint Petersburg, Russian Federation

Performance Analysis of Symbolic Algebra Libraries in the Julia Programming Language

Received on 06.08.24
Accepted on 28.11.24

In many scientific fields not only numerical methods, but also symbolic computations tools are used. However, due to the lack of research in the field of performance of symbolic manipulation libraries, it is often hard to determine the optimal software package or library for high-performance scientific research. The purpose of this work is to perform a comparative analysis of various computer algebra libraries for the Julia programming language in terms of computational performance. As part of this goal, a series of benchmarks were developed and carried using the Symbolicsjl, SymEngine.jl, SymPy.jl libraries. Each benchmark was designed to test different common use cases, such as manipulations with large symbolic expressions, differentiation, symbolic expansion, simplification and substitution. Results of each benchmark were analyzed, and the advantages and disadvantages of different libraries were explored. The source code of benchmarks was discussed, and different performance benchmarking features of these libraries were described. In the process of developing benchmarks, various features of computer algebra libraries were discovered, such as effective algorithms for large sum or product generators. The research showed that in most test cases, the SymEngine.jl library demonstrated the highest performance measures. In cases where SymEngine lacks features, SymPy.jl could be used for additional symbolic expression manipulation operations. The results of this paper could help researchers in different fields of science make an informed choice of software library for their tasks.
Keywords: symbolic computations, Julia programming language, Symbolics.jl, SymEngine, SymPy, function compilation, high-performance computing, comparative analysis, symbolic expression generation, analytical solution

P. 322-330

Full text on eLIBRARY

References

  1. Gathen J. von zur, Gerhard J. Modern Computer Algebra, United Kingdom, Cambridge University Press, 2003, 804 p.
  2. Cohen J. S. Computer Algebra and Symbolic Computation: Mathematical Methods, New York: A K Peters/CRC Press, 2003, 472 p., doi: 10.1201/9781439863701.
  3. Navarro A. K. W., Vassiliadis V. S. Computer algebra systems coming of age: Dynamic simulation and optimization of DAE systems in Mathematica™, Computers & Chemical Engineering, 2014, vol. 62, pp. 125—138, doi: 10.1016/j.compchemeng.2013.11.004.
  4. Iglesias A. Special section: Computer algebra systems and their applications, CASA'2003—06: Selected papers, Future Generation Computer Systems, 2007, vol. 23, no. 5, pp. 714—715, doi: 10.1016/j.future.2006.10.002.
  5. Pavlovic M. N. Symbolic computation in structural engineering, Computers & Structures, 2003, vol. 81, no. 22, pp. 2121—2136, doi: 10.1016/S0045-7949(03)00286-4.
  6. Bouzidi Y., Poteaux A., Quadrat A. Computer algebra methods for the stability analysis of differential systems with commensurate time-delays, IFAC-PapersOnLine, 2016, vol. 49, no. 10, pp. 194—199, doi: 10.1016/j.ifacol.2016.07.528.
  7. Li R., Zhu H., Banach R. An algebraic approach to simulation and verification for cyber-physical systems with shared-variable concurrency, Journal of Logical and Algebraic Methods in Programming, 2024, vol. 139, pp. 100973, doi: 10.1016/j.jlamp.2024.100973.
  8. Malykh M. D., Sevastianov L. A., Yu Y. On symbolic integration of algebraic functions, Journal of Symbolic Computation, 2021, vol. 104, pp. 563—579, doi: 10.1016/j.jsc.2020.09.002.
  9. Szriftgiser P., Cheb-Terrab E. S. Computer algebra in physics: The hidden SO(4) symmetry of the hydrogen atom, Computer Physics Communications, 2021, vol. 268, pp. 108076, doi: 10.1016/j.cpc.2021.108076.
  10. Wu Q., Li Z. FeAmGen.jl: A Julia program for Feynman Amplitude Generation, Computer Physics Communications, 2024, vol. 301, pp. 109230, doi: 10.1016/j.cpc.2024.109230.
  11. Karak S. K., Chatterjee S., Bandopadhyay S. Mathematical modelling of the physical and mechanical properties of nano-Y2O3 dispersed ferritic alloys using evolutionary algorithm-based neural network, Powder Technology, 2015, vol. 274, pp. 217—226, doi: 10.1016/j.powtec.2015.01.028.
  12. Winkler F. Symbolic computation in algebra, geometry, and differential equations, Information and Computation, 2024, pp. 105200, doi: 10.1016/j.ic.2024.105200.
  13. Zgoda Iu. N., Semenov A. A. High performance computation of thin shell constructions with the use of parallel computations and GPUs, Vychislitel'nye Tekhnologii, 2022, vol. 27, no. 6, pp. 45—57, doi: 10.25743/ICT.2022.27.6.005 (in Russian).
  14. Hrdina J., Navrat A., Zalabova L. Symmetries in geometric control theory using Maple, Mathematics and Computers in Simulation, 2021, vol. 190, pp. 474—493, doi: 10.1016/j.matcom.2021.05.034.
  15. Roanes-Lozano E., Galan-Garcia J. L., Aguilera-Venegas G. A computer approach to overtaking station track layout diagram design using graphs. An alternative track diagram proposal for these stations, Journal of Computational and Applied Mathematics, 2021, vol. 391, pp. 113455, doi: 10.1016/j.cam.2021.113455.
  16. Anand C. K., Bain A. D., Nie Z. Simulation of steady-state NMR of coupled systems using Liouville space and computer algebra methods, Journal of Magnetic Resonance, 2007, vol. 189, no. 2, pp. 200—208, doi: 10.1016/j.jmr.2007.09.012.
  17. Irtegov V. D., Titorenko T. N. Using the system "Mathematica" in problems of mechanics, Mathematics and Computers in Simulation, 2001, vol. 57, no. 3, pp. 227—237, doi: 10.1016/S0378-4754(01)00341-X.
  18. Amata L., Oliveri F., Sgroi E. Optimal Systems of Lie Subalgebras: A Computational Approach, Journal of Geometry and Physics, 2024, pp. 105290, doi: 10.1016/j.geomphys.2024.105290.
  19. Stocco D., Bertolazzi E. Symbolic matrix factorization for differential-algebraic equations index reduction, Journal of Computational and Applied Mathematics, 2024, vol. 448, pp. 115898. doi: 10.1016/j.cam.2024.115898.
  20. Meurer A. et al. SymPy: symbolic computing in Python, PeerJ Computer Science. PeerJ Inc., 2017, vol. 3, pp. e103, doi: 10.7717/peerj-cs.103.
  21. Site Rationale — Symengine latest documentation [electronic resource], available at: https://symengine.org/index.html (access date: 03.08.2024).
  22. Bezanson J. et al. Julia: A Fresh Approach to Numerical Computing, SIAM Review. Society for Industrial and Applied Mathematics, 2017, vol. 59, no. 1, pp. 65—98, doi: 10.1137/141000671.
  23. Gowda S. et al. High-performance symbolic-numerics via multiple dispatch, ACM Communications in Computer Algebra, 2022, vol. 55, no. 3, pp. 92—96, doi: 10.1145/3511528.3511535.
  24. symengine/symengine: SymEngine is a fast symbolic ma­nipulation library, written in C++ [electronic resource], available at: https://github.com/symengine/symengine (access date: 03.08.2024).
  25. symengine/AUTHORS at master symengine/symengine [electronic resource], GitHub, available at: https://github.com/symen-gine/symengine/blob/master/AUTHORS (access date: 04.08.2024).
  26. Zgoda Iu. N., Semenov A. A. Performance analysis of Python symbolic mathematics libraries, Cifrovizaciya i kiberbezopasnost': sovremennaya teoriya i praktika. Sb. nauch. tr. Omsk: SibADI, 2021, pp. 89—92 (In Russian).
  27. Chen J., Revels J. Robust benchmarking in noisy environments, arXiv e-prints, 2016, doi: 10.48550/arXiv.1608.04295.
  28. Akinshin A. Pro.NET Benchmarking: The Art of Performance Measurement, SPb, Piter, 2022, 576 p. (In Russian).
  29. Zgoda Iu.N. Original approach to generation of approximation functions for high-performance shell structures simulation, Vestnik Voronezhskogo gosudarstvennogo tekhnicheskogo universiteta, 2023, vol. 19, no. 5, pp. 8—15, doi: 10.36622/VSTU.2023.19.5.001 (in Russian).
  30. 30. How to generate sums effectively via creating an Add object Issue #67 jverzani/SymPyCore.jl [electronic resource], GitHub, available at: https://github.com/jverzani/SymPyCore.jl/issues/67 (access date: 05.08.2024).


To the contents