Abstract
In this paper, we present several important details in the process of legacy code parallelization, mostly related to the problem of maintaining numerical output of a legacy code while obtaining a balanced workload for parallel processing. Since we maintained the non-uniform mesh imposed by the original finite element code, we have to develop a specially designed data distribution among processors so that data restrictions are met in the finite element method. In particular, we introduce a data distribution method that is initially used in shared memory parallel processing and obtain better performance than the previous parallel program version. Besides, this method can be extended to other parallel platforms such as distributed memory parallel computers. We present results including several problems related to performance profiling on different (development and production) parallel platforms. The use of new and old parallel computing architectures leads to different behavior of the same code, which in all cases provides better performance in multiprocessor hardware.
Similar content being viewed by others
References
Ansari SU, Hussain M, Mazhar S, Manzoor T, Siddiqui KJ, Abid M, Jamal H (2017) Mesh partitioning and efficient equation solving techniques by distributed finite element methods: a survey. Arch Comput Methods Eng 26(1):1–16
Bermúdez A, López X, Vázquez-Cendón ME (2017) Finite volume methods for multi-component Euler equations with source terms. Comput Fluids 156:113–134
Brainerd WS (2015) Guide to Fortran 2008 Programming, 2nd edn. Springer, Berlin
Feng D, Tsolakis C, Chernikov AN, Chrisochoides NP (2017) Scalable 3D hybrid parallel Delaunay image-to-mesh conversion algorithm for distributed shared memory architecture. Comput Aided Des 85:10–19
Flynn MJ (1972) Some computer organizations and their effectiveness. IEEE Trans Comput C 21(9):948–960. https://doi.org/10.1109/TC.1972.5009071
Hussain M, Abid M, Ahmad M, Hussain SF (2013) A parallel 2D stabilized finite element method for Darcy flow on distributed systems. World Appl Sci J 27(9):1119–1125
ISO, ISO/IEC 1539-1:2018 Information technology - Programming languages - Fortran - Part 1: Base language
Kirk DB, Wen-Mei WH (2012) Programming massively parallel processors: a hands-on approach, 2nd edn. Morgan Kaufmann, Burlington (ISBN 978-0-12-415992-1)
Kong F, Stogner RH, Gaston DR, Peterson JW, Permann CJ, Slaughter AE, Martineau RC (2018) A general-purpose hierarchical mesh partitioning method with node balancing strategies for large-scale numerical simulations. In: 9th Workshop on Latest Advances in Scalable Algorithms for Large-Scale Systems, the International Conference for High Performance Computing, Networking, Storage, and Analysis, SC 18, Nov. 11–16, Kay Bailey Hutchison Convention Center, Dallas, TX, USA
Krommydas K, Sathre P, Sasanka R, Feng W (2018) A framework for auto-parallelization and code generation: an integrative case study with legacy FORTRAN codes. In: Proceedings of the 47th International Conference on Parallel Processing, ICPP 2018, Eugene, OR, USA. https://doi.org/10.1145/3225058.3225143
Larwood BG, Weatherill NP, Hassan O, Morgan K (2003) Domain Decomposition approach for parallel unstructured mesh generation. Int J Numer Methods Eng 58(2):177–188
LaSalle D, Karypis G (2013) Multi-threaded graph partitioning. In: 27th IEEE International Parallel and Distributed Processing Symposium (IPDPS), Boston. MA, United States. https://doi.org/10.1109/IPDPS.2013.50
Li X, Yu W, Liu C (2017) Geometry-aware partitioning of complex domains for parallel quad meshing. Comput Aided Des 85:20–33
Message Passing Interface Forum, MPI: A Message-Passing Interface Standard Version 3.1, 2015
Metcalf M, Reid J, Cohen M (2004) Fortran 95/2003 explained. Oxford University Press, Oxford
Nguyen C, Rhodes PJ (2018) TIPP: parallel Delaunay triangulation for large-scale datasets. In: SSDBM ’18 Proceedings of the 30th International Conference on Scientific and Statistical Database Management, Bozen-Bolzano, Italy. https://doi.org/10.1145/3221269.3223034
OpenMP Architecture Review Board, OpenMP Application Programming Interface, Version 5.0, Nov. 2018. https://www.openmp.org/specifications/. Accessed Jan 2020
Pacheco P (2011) An introduction to parallel programming. Morgan Kaufmann, Burlington
Roig B (2007) One-step Taylor Galerkin methods for convection diffusion problems. Comput Appl Math 204:95–101
Shang Z (2013) Performance analysis of large scale parallel CFD computing based on Code Saturne. Comput Phys Commun 184:381–386
Shang Z (2014) Impact of mesh portioning methods in CFD for large scale parallel computing. Comput Fluids 103:1–5
Soumendra NK, Kiran P (2008) Finite volume model for shallow water equations with improved treatment of source terms. J Hydraul Eng 134:231–242
Sprenger S, Zeuch S, Leser U (2018) Exploiting automatic vectorization to employ SPMD on SIMD registers. In: 2018 IEEE 34th International Conference on Data Engineering Workshops (ICDEW), Paris, pp 90–95, https://doi.org/10.1109/ICDEW.2018.00022
Tinetti FG, Méndez M, De Giusti A (2013) Restructuring Fortran legacy applications for parallel computing in multiprocessors. J Supercomput 64(2):638–659. https://doi.org/10.1007/s11227-012-0863-x
Tinetti FG, Perez MJ, Fraidenraich A, Altenberg AE (2018) Experiences in parallelizing a numerical model. In: International Conference on Parallel and Distributed Processing Techniques and Applications, PDPTA’18, Las Vegas, NV, July 30–Aug. 2, ISBN: 1-60132-487-1, CSREA Press, pp 152–157
Zienkiewicz OC, Taylor RL (2005) The finite element method, vol 3, 6th edn. Butterworth-Heinemann, Oxford
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Tinetti, F.G., Perez, M.J., Fraidenraich, A. et al. Legacy code and parallel computing: updating and parallelizing a numerical model. J Supercomput 76, 5636–5654 (2020). https://doi.org/10.1007/s11227-020-03172-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11227-020-03172-7