Abstract
Since different systems usually require different performance optimizations, an application code is likely “specialized” for a particular system configuration to fully extract the system performance. This is one major reason why migration of an existing application code, so-called legacy code migration, is so labor-intensive and error-prone especially in the high-performance computing (HPC) area. To make matters worse, the diversity of system architectures would increase the number of system configurations that have to be considered during the life of an application. As a result, the increasing system complexity and diversity will force programmers to further invest enormous time and effort on HPC application development and maintenance. For long-term software development and maintenance, an HPC application code should not be optimized for a particular system configuration. However, simply excluding system-awareness from the code just results in reducing the performance, because system-awareness can be regarded as the necessary information to exploit the performance of the target system. The goal of this project is to express system-awareness separately from the HPC application code to achieve high performance while keeping the code maintainability. To this end, we have been developing a code transformation framework, Xevolver, so that users can express system-awareness as user-defined code transformation rules separately from HPC application codes. By defining custom code transformations for individual cases, an HPC application code itself does not need to be modified for each system configuration and is transformed for each system by using the code transformations defined separately from the code.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
In the case study, some OpenACC directives are also needed, but not shown in the example for simplicity.
References
Bailey, D.H.: FFTs in external or hierarchical memory. J. Supercomput. 4, 23–35 (1990)
Egawa, R., Komatsu, K., Momose, S., Isobe, Y., Musa, A., Takizawa, H., Kobayashi, H.: Potential of a modern vector supercomputer for practical applications: performance evaluation of sx-ace. J. Supercomput. 73(9), 3948–3976 (2017). https://doi.org/10.1007/s11227-017-1993-y
Farber, R. (ed.): Parallel Programming with OpenACC. Morgan Kaufmann, Cambridge (2016)
FFTW home page. http://www.fftw.org/
Intel Corporation: Intel architecture instruction set extensions programming reference (2016). https://software.intel.com/sites/default/files/managed/26/40/319433-026.pdf
Kay, M.: XSLT 2.0 and XPath 2.0 Programmer’s Reference (Programmer to Programmer), 4th edn., Wiley, Indianapolis (2008)
Kojima, K., Hirata, A., Hasegawa, K., Kodera, S., Laakso, I., Sasaki, D., Yamashita, T., Egawa, R., Horie, Y., Yazaki, N., Kowata, S., Taguchi, K., Kashiwa, T.: Risk management of heatstroke based on fast computation of temperature and water loss using weather data for exposure to ambient heat and solar radiation. IEEE Access 6, 3774–3785 (2018). https://doi.org/10.1109/ACCESS.2018.2791962
Komatsu, K., Egawa, R., Hirasawa, S., Takizawa, H., Itakura, K., Kobayashi, H.: Migration of an atmospheric simulation code to an OpenACC platform using the Xevolver framework. In: The Third International Symposium on Computing and Networking, International Workshop on Legacy HPC Application Migration (LHAM2015), pp. 515–520 (2015)
Komatsu, K., Egawa, R., Hirasawa, S., Takizawa, H., Itakura, K., Kobayashi, H.: Translation of large-scale simulation codes for an OpenACC platform using the Xevolver framework. Int. J. Netw. Comput. 6(2), 167–180 (2016)
Miyake, S., Yamamoto, S., Sasao, Y., Momma, K., Miyawaki, T., Ooyama, H.: Unsteady flow effect on nonequilibrium condensation in 3-D low pressure steam turbine stages. In: ASME Turbo Expo 2013, San Antonio (2013)
MVAPICH: MPI over InfiniBand, omni-path, ethernet/iWARP, and RoCE. http://mvapich.cse.ohio-state.edu/
Nukada, A., Matsuoka, S.: Auto-tuning 3-D FFT library for CUDA GPUs. In: Proceedings of Conference on High Performance Computing Networking, Storage and Analysis (SC’09), Portland (2009)
NVIDIA Corporation: CUFFT library user’s guide (2017). http://docs.nvidia.com/cuda/pdf/CUFFT_Library.pdf
OpenMP Architecture Review Board: OpenMP application program interface. http://www.openmp.org/mp-documents/spec30.pdf
Sodani, A., et al.: Knights landing: second-generation Intel Xeon Phi product. IEEE Micro 36, 34–46 (2016)
Suda, R., Takizawa, H., Hirasawa, S.: Xevtgen: fortran code transformer generator for high performance scientific codes. Int. J. Netw. Comput. 6(2), 263–289 (2016)
Takahashi, D.: FFTE: a fast Fourier transform package. http://www.ffte.jp/
Takizawa, H., Hirasawa, S., Hayashi, Y., Egawa, R., Kobayashi, H.: Xevolver: an XML-based code translation framework for supporting HPC application migration. In: IEEE International Conference on High Performance Computing (HiPC), Goa (2014)
Takizawa, H., Yamada, T., Hirasawa, S., Suda, R.: A use case of a code transformation rule generator for data layout optimization. In: Sustained Simulation Performance 2016, pp. 21–30. Springer, Berlin/Heidelberg (2016)
Takizawa, H., Reimann, T., Komatsu, K., Soga, T., Egawa, R., Musa, A., Kobayashi, H.: Vectorization-aware loop optimization with user-defined code transformations. In: Workshop on Re-emergence of Vector Architectures (REV-A), Honolulu, pp. 685–692 (2017)
The Xevolver Project: JST CREST “an evolutionary approach to construction of a software development environment for massively-parallel heterogeneous systems” (2011). http://xev.arch.is.tohoku.ac.jp/
The XSLT C library for GNOME. http://xmlsoft.org/libxslt/
Acknowledgements
The authors would like to sincerely thank all the members of the Xevolver project for their significant contributions.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Singapore Pte Ltd.
About this chapter
Cite this chapter
Takizawa, H., Suda, R., Takahashi, D., Egawa, R. (2019). Xevolver: A User-Defined Code Transformation Approach to Streamlining Legacy Code Migration. In: Sato, M. (eds) Advanced Software Technologies for Post-Peta Scale Computing. Springer, Singapore. https://doi.org/10.1007/978-981-13-1924-2_9
Download citation
DOI: https://doi.org/10.1007/978-981-13-1924-2_9
Published:
Publisher Name: Springer, Singapore
Print ISBN: 978-981-13-1923-5
Online ISBN: 978-981-13-1924-2
eBook Packages: Computer ScienceComputer Science (R0)