Abstract
This article proposes precompilers to accelerate the solvers of the application software package. The substantiations of this approach are given. The precompiler can be most valuable for programs that are intended to be ported to different computing architectures. There are given some examples of speeding up programs that implement iterative numerical methods using a precompiler in this paper. In particular, skew tiling and parallelization of loops with a linear recurrent dependence are implemented in the presented precompilers. The results of numerical experiments demonstrate the acceleration of programs by the precompiler by tens of percents and sometimes tens of times.
The article was supported by the Russian Federation Government grant No. 075-15-2019-1928.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Graham, S., et al.: Getting Up to Speed: The Future of Supercomputing, p. 289 (2005). https://doi.org/10.17226/11148
Yurushkin, M.: Block Data Layout Automation in C Language Compiler. Program. Ingeneria 16–18 (2014). ISSN 2220-3397
Shteinberg, O.B.: The parallelizing of recurent loops with using of non-regular superpositions computations. Bull. High. Educ. Inst. North Caucasus Region Nat. Sci. 2, 16–18 (2009). ISSN 1026-2237
Shteinberg, O.B.: Parallelization of recurrent loops due to the preliminary computation of superpositions. Vest. Yuzhno-Ural’skogo Univ. Ser. Mat. Model. Program. 13(3), 59–67 (2020). https://doi.org/10.14529/mmp200305
Structure Splitting for Elbrus processor compiler. Proceedings of the 14th Central & Eastern European Software Engineering Conference Russia (CEE-SECR 2019), St. Petersburg, Russia (2019). https://2019.secrus.org/program/submitted-presentations/structure-splitting-for-elbrus-processor-compiler/
Aggressive Inlining for VLIW, vol. 27, pp. 189–198 (2015). https://doi.org/10.15514/ISPRAS-2015-27(6)-13
Morylev, R., Shapovalov, V., Steinberg, B.Y.: Symbolic analisis in dialog-based parallelization of programs. Inform. Technol. 2, 33–36 (2013). ISSN 1684-6400
Polly. https://www.sites.google.com/site/parallelizationforllvm/why-not-polly. Accessed 1 July 2020
Loop Optimizations Where Blocks are Required. https://software.intel.com/content/www/us/en/develop/articles/loop-optimizations-where-blocks-are-required.html. Accessed 1 July 2020
Developer Guide and Reference. block_loop=noblock_loop. https://software.intel.com/en-us/cpp-compiler-developer-guide-and-reference-block-loop-noblockloop. Accessed 1 July 2020
LLVM analyzers and converters. https://llvm.org/docs/Passes.html. Accessed 1 July 2020
Makoshenko, D.V.: Analiticheskoye predskazaniye vremeni ispolneniya programm i osnovannyye na nem metody optimizatsii, p. 122. Novosibirsk (2011)
Whaley, R.C., Dongarra, J.J.: Automatically tuned linear algebra software. In: SC 1998: Proceedings of the 1998 ACM/IEEE Conference on Supercomputing, p. 38. IEEE (1998)
Steinberg, B.Y., Steinberg, O.B.: Program transformations are the fundamental basis for creating optimizing parallelizing compilers. Softw. Syst.: Theory Appl. 12(1), 21–113 (2021)
Liao, C., Quinlan, D.J., Vuduc, R., Panas, T.: Effective source-to-source outlining to support whole program empirical optimization. In: Gao, G.R., Pollock, L.L., Cavazos, J., Li, X. (eds.) LCPC 2009. LNCS, vol. 5898, pp. 308–322. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-13374-9_21
Gong, Z., et al.: An empirical study of the effect of source-level loop transformations on compiler stability. Proc. ACM Program. Lang. 2(OOPSLA), 1–29 (2018)
Kudimova, A., et al.: Finite element homogenization models of bulk mixed piezocomposites with granular elastic inclusions in ACELAN package. Mater. Phys. Mech. 37(1), 25–33 (2018)
Kurbatova, N.V., Nadolin, D.K., Nasedkin, A.V., Oganesyan, P.A., Soloviev, A.N.: Finite element approach for composite magneto-piezoelectric materials modeling in ACELAN-COMPOS package. In: Altenbach, H., Carrera, E., Kulikov, G. (eds.) Analysis and Modelling of Advanced Structures and Smart Systems. ASM, vol. 81, pp. 69–88. Springer, Singapore (2018). https://doi.org/10.1007/978-981-10-6895-9_5
Chen, F., Li, T.-Y., Lu, K.-Y.: Updated preconditioned Hermitian and skew- Hermitian splitting-type iteration methods for solving saddle-point problems. Comput. Appl. Math. 39, 1–4 (2020)
Gill, P.E., Saunders, M.A., Shinnerl, J.R.: On the stability of Cholesky factorization for symmetric quasidefinite systems. SIAM J. Matrix Anal. Appl. 17(1), 35–46 (1996)
Allen, R., Kennedy, K.: Optimizing Compilers for Mordern Architetures, p. 790. Morgan Kaufmann Publisher, Academic Press, USA (2002)
Evstigneev, V., Kasyanov, V.: Optimizing transformations in parallelizing compilers. Programirovanie 6, 12–26 (1996). ISSN 0132-3474
Muchnick, S., et al.: Advanced Compiler Design Implementation. Morgan Kaufmann (1997)
Aho, A., et al.: Compilers Principles, Techniques, And Tools, 2nd edn., p. 1184 (2006)
Optimizing parallelization system (2013). www.ops.rsu.ru. Accessed 1 July 2020
Gervich, L.R., et al.: How OPS (optimizing parallelizing system) may be useful for clang. In: Proceedings of the 13th Central & Eastern European Software Engineering Conference in Russia (CEE-SECR 2017). Association for Computing Machinery, St. Petersburg (2017). ISBN 9781450363969. https://doi.org/10.1145/3166094.3166116
Tilera company. http://wiki-org.ru/wiki/Tilera. Accessed 1 July 2020
Epyphany processor. https://www.parallella.org/2016/10/05/epiphany-v-a-1024-core-64-bitrisc-processor/. Accessed 1 July 2020
The processor of NTC Modul. http://www.cnews.ru/news/top/2019-03-06_svet_uvidel_moshchnejshij_rossijskij_nejroprotsessor. Accessed 1 July 2020
Ammaev, S.G., Gervich, L.R., Steinberg, B.Y.: Combining parallelization with overlaps and optimization of cache memory usage. In: Malyshkin, V. (ed.) PaCT 2017. LNCS, vol. 10421, pp. 257–264. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-62932-2_24
Cherdantsev, D.N.: Expressions linearization in optimization or parallelization compilers. Bull. High. Educ. Inst. North Caucasus Region Nat. Sci. 2, 13–16 (2009). ISSN 1026-2237
Olmos, K., Visser, E.: Strategies for source-to-source constant propagation. Electron. Notes Theor. Comput. Sci. 70(6), 156–175 (2002)
Abu-Khalil, Z., Guda, S., Steinberg, B.: Porting parallel programs without losing efficiency. Open Syst. J. 39(4), 18–19 (2015). ISSN 1028-7493
Intel C++ Compiler. https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/dpc-compiler.html. Accessed 1 July 2020
Rose source to source compiler. http://rosecompiler.org/. Accessed 1 July 2020
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2021 Springer Nature Switzerland AG
About this paper
Cite this paper
Vasilenko, A., Veselovskiy, V., Metelitsa, E., Zhivykh, N., Steinberg, B., Steinberg, O. (2021). Precompiler for the ACELAN-COMPOS Package Solvers. In: Malyshkin, V. (eds) Parallel Computing Technologies. PaCT 2021. Lecture Notes in Computer Science(), vol 12942. Springer, Cham. https://doi.org/10.1007/978-3-030-86359-3_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-86359-3_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-86358-6
Online ISBN: 978-3-030-86359-3
eBook Packages: Computer ScienceComputer Science (R0)