Abstract
We present a new Fortran source-to-source tool that helps to bridge the gap in the current Fortran tooling ecosystem. The goal of this tool is to translate standard Fortran code to various parallel programming languages in Fortran and C/C++ to enable running on a wide variety of GPUs and CPUs. The translation is performed using the full syntax parsing capabilities of the LFortran compiler, a research compiler currently in development. Using the Abstract Semantic Representation intermediate output of the compiler in this new work has made the translation simpler to accomplish. We also develop a map of the needed parallel constructs for a complete parallel language and begin to identify possible extensions to the existing Fortran language.
Work was performed under U.S. Government contract 89233218CNA000001, managed by Triad National Security, LLC.; LA-UR-20-26284.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Bowers, K., Albright, B., Bergen, B., Yin, L., Barker, K., Kerbyson, D.: 0.374 Pflop/s trillion-particle kinetic modeling of laser plasma interaction on Roadrunner. In: 2008 SC - International Conference for High Performance Computing, Networking, Storage and Analysis, SC 2008, pp. 1–11, November 2008. https://doi.org/10.1109/SC.2008.5222734. Paper 63
Edwards, H.C., Trott, C.R., Sunderland, D.: Kokkos: enabling manycore performance portability through polymorphic memory access patterns. J. Parallel Distrib. Comput. 74(12), 3202–3216 (2014)
Fanfarillo, A., Burnus, T., Cardellini, V., Filippone, S., Nagle, D., Rouson, D.: OpenCoarrays: open-source transport layers supporting coarray Fortran compilers. In: Proceedings of the 8th International Conference on Partitioned Global Address Space Programming Models, 6 October 2014, pp. 1–11 (2014). https://doi.org/10.1145/2676870.2676876
Garain, S., Balsara, D.S., Reid, J.: Comparing Coarray Fortran (CAF) with MPI for several structured mesh PDE applications. J. Comput. Phys. 297, 237–253 (2015). https://doi.org/10.1016/j.jcp.2015.05.020
Harrell, S.L., et al.: Effective performance portability. In: 2018 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), pp. 24–36. IEEE (2018). https://doi.org/10.1109/P3HPC.2018.00006
Hsu, A., Asanza, D.N., Schoonover, J.A., Jibben, Z., Carlson, N.N., Robey, R.: Performance portability challenges for Fortran applications. In: 2018 IEEE/ACM International Workshop on Performance, Portability and Productivity in HPC (P3HPC), pp. 47–58. IEEE (2018). https://doi.org/10.1109/P3HPC.2018.00008
IEC/ISO JTC1/SC22/WG5: ISO/IEC 1539 Fortran 2018 Standard (2018)
Marks, J., Medwedeff, E., Čertík, O., Bird, R., Robey, R.: Making Fortran performance portable. Technical report LA-UR-20-25755, Los Alamos National Laboratory (2020)
Numrich, R.W., Reid, J.: Co-array Fortran for parallel programming. In: ACM SIGPLAN Fortran Forum, vol. 17, pp. 1–31. ACM New York (1998). https://doi.org/10.1145/289918.289920
Numrich, R.W., Reid, J.: Co-arrays in the next Fortran standard. In: ACM SIGPLAN Fortran Forum, vol. 24, pp. 4–17. ACM New York (2005). https://doi.org/10.1145/1080399.1080400
Rasmussen, C.E., Squyres, J.M.: A case for new MPI Fortran bindings. In: Di Martino, B., Kranzlmüller, D., Dongarra, J. (eds.) EuroPVM/MPI 2005. LNCS, vol. 3666, pp. 183–190. Springer, Heidelberg (2005). https://doi.org/10.1007/11557265_26
Rasmussen, C.E., Sottile, M.J., Shende, S.S., Malony, A.D.: Bridging the language gap in scientific computing: the Chasm approach. Concurr. Comput.: Pract. Exp. 18(2), 151–162 (2006). https://doi.org/10.1002/cpe.909
Rouson, D.: Hybrid coarrays: a PGAS feature for many-core architectures. Parallel Comput.: Road Exascale 27, 175 (2016). https://doi.org/10.3233/978-1-61499-621-7-175
Willard, C.G., Snell, A., Segervall, L.: HPC user site census: systems. Intersect360 Reports, 9 March 2015
Čertík, O., et al.: LFortran: modern Fortran compiler and interpreter. Los Alamos National Laboratory (2020). https://lfortran.org
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2022 This is a U.S. government work and not under copyright protection in the U.S.; foreign copyright protection may apply
About this paper
Cite this paper
Marks, J., Medwedeff, E., Čertík, O., Bird, R., Robey, R.W. (2022). Improving Fortran Performance Portability. In: Chapman, B., Moreira, J. (eds) Languages and Compilers for Parallel Computing. LCPC 2020. Lecture Notes in Computer Science(), vol 13149. Springer, Cham. https://doi.org/10.1007/978-3-030-95953-1_6
Download citation
DOI: https://doi.org/10.1007/978-3-030-95953-1_6
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-95952-4
Online ISBN: 978-3-030-95953-1
eBook Packages: Computer ScienceComputer Science (R0)