Advertisement

Xevolver: A User-Defined Code Transformation Approach to Streamlining Legacy Code Migration

  • Hiroyuki Takizawa
  • Reiji Suda
  • Daisuke Takahashi
  • Ryusuke Egawa
Chapter

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.

Notes

Acknowledgements

The authors would like to sincerely thank all the members of the Xevolver project for their significant contributions.

References

  1. 1.
    Bailey, D.H.: FFTs in external or hierarchical memory. J. Supercomput. 4, 23–35 (1990)CrossRefGoogle Scholar
  2. 2.
    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 CrossRefGoogle Scholar
  3. 3.
    Farber, R. (ed.): Parallel Programming with OpenACC. Morgan Kaufmann, Cambridge (2016)Google Scholar
  4. 4.
    FFTW home page. http://www.fftw.org/
  5. 5.
    Intel Corporation: Intel architecture instruction set extensions programming reference (2016). https://software.intel.com/sites/default/files/managed/26/40/319433-026.pdf Google Scholar
  6. 6.
    Kay, M.: XSLT 2.0 and XPath 2.0 Programmer’s Reference (Programmer to Programmer), 4th edn., Wiley, Indianapolis (2008)Google Scholar
  7. 7.
    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 CrossRefGoogle Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)CrossRefGoogle Scholar
  10. 10.
    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)Google Scholar
  11. 11.
    MVAPICH: MPI over InfiniBand, omni-path, ethernet/iWARP, and RoCE. http://mvapich.cse.ohio-state.edu/
  12. 12.
    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)Google Scholar
  13. 13.
    NVIDIA Corporation: CUFFT library user’s guide (2017). http://docs.nvidia.com/cuda/pdf/CUFFT_Library.pdf Google Scholar
  14. 14.
    OpenMP Architecture Review Board: OpenMP application program interface. http://www.openmp.org/mp-documents/spec30.pdf
  15. 15.
    Sodani, A., et al.: Knights landing: second-generation Intel Xeon Phi product. IEEE Micro 36, 34–46 (2016)CrossRefGoogle Scholar
  16. 16.
    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)CrossRefGoogle Scholar
  17. 17.
    Takahashi, D.: FFTE: a fast Fourier transform package. http://www.ffte.jp/
  18. 18.
    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)Google Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    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)Google Scholar
  21. 21.
    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/
  22. 22.
    The XSLT C library for GNOME. http://xmlsoft.org/libxslt/

Copyright information

© Springer Nature Singapore Pte Ltd. 2019

Authors and Affiliations

  • Hiroyuki Takizawa
    • 1
  • Reiji Suda
    • 2
  • Daisuke Takahashi
    • 3
  • Ryusuke Egawa
    • 1
  1. 1.Cyberscience CenterTohoku UniversitySendaiJapan
  2. 2.Graduate School of Information Science and TechnologyThe University of TokyoTokyoJapan
  3. 3.Center for Computational SciencesUniversity of TsukubaTsukubaJapan

Personalised recommendations