skip to main content
10.1145/3218176.3218226acmconferencesArticle/Chapter ViewAbstractPublication PagespascConference Proceedingsconference-collections
research-article

The CLAW DSL: Abstractions for Performance Portable Weather and Climate Models

Authors Info & Claims
Published:02 July 2018Publication History

ABSTRACT

In order to profit from emerging high-performance computing systems, weather and climate models need to be adapted to run efficiently on different hardware architectures such as accelerators. This is a major challenge for existing community models that represent very large code bases written in Fortran. We introduce the CLAW domain-specific language (CLAW DSL) and the CLAW Compiler that allows the retention of a single code written in Fortran and achieve a high degree of performance portability. Specifically, we present the Single Column Abstraction (SCA) of the CLAW DSL that is targeted at the column-based algorithmic motifs typically encountered in the physical parameterizations of weather and climate models. Starting from a serial and non-optimized source code, the CLAW Compiler applies transformations and optimizations for a specific target hardware architecture and generates parallel optimized Fortran code annotated with OpenMP or OpenACC directives. Results from a state-of-the-art radiative transfer code, indicate that using CLAW, the amount of source code can be significantly reduced while achieving efficient code for x86 multi-core CPUs and GPU accelerators. The CLAW DSL is a significant step towards performance portable climate and weather model and could be adopted incrementally in existing code with limited effort.

References

  1. CLAW Project 2015-2018. CLAW directive language specification. (2015-2018). https://github.com/claw-project/claw-language-specification.Google ScholarGoogle Scholar
  2. CLAW Project 2015-2018. CLAW Fortran Compiler. (2015-2018). https://github.com/claw-project/claw-compiler.Google ScholarGoogle Scholar
  3. DragonEgg 2014. DragonEgg - Using LLVM as a GCC backend. (2014). https://dragonegg.llvm.org.Google ScholarGoogle Scholar
  4. R Ford, M Glover, D Ham, C Maynard, S Pickles, and G Riley. 2013. GungHo Phase 1 Computational Science Recommendations. Technical Report. http://www.metoffice.gov.uk/media/pdf/8/o/FRTR587Tagged.pdfGoogle ScholarGoogle Scholar
  5. Tobias Grosser and Torsten Hoefler. 2016. Polly-ACC: Transparent Compilation to Heterogeneous Hardware. In ICS: International Conference on Supercomputing. 1--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. XcalableMP Specification Working Group. 2017. XcodeML/Fortran Specification. Language Specification. RIKEN CCS, Kobe, Japan.Google ScholarGoogle Scholar
  7. Tobias Gysi, Carlos Osuna, Oliver Fuhrer, Mauro Bianco, and Thomas C. Schulthess. 2015. STELLA: A Domain-specific Tool for Structured Grid Methods in Weather and Climate Models. In Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis (SC '15). ACM, New York, NY, USA, Article 41, 12 pages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Carter Edwards H., Trott Christian R., and Sunderland Daniel. 2014. Kokkos: Enabling manycore performance portability through polymorphic memory access patterns. J. Parallel and Distrib. Comput. 74 (2014), 3202--3216. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. J. A. Herdman, W. P. Gaudin, O. Perks, D. A. Beckingsale, A. C. Mallinson, and S. A. Jarvis. 2014. Achieving Portability and Performance through OpenACC. 2014 First Workshop on Accelerator Programming using Directives July 2013 (2014), 19--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Tetsuya Hoshino, Naoya Maruyama, and Satoshi Matsuoka. 2014. An OpenACC Extension for Data Layout Transformation. 2014 First Workshop on Accelerator Programming using Directives July 2013 (2014), 12--18. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Daniel J. Quinlan. 2000. ROSE: Compiler Support for Object-Oriented Frameworks. 10 (06 2000), 215--226.Google ScholarGoogle Scholar
  12. Kazuhiko Komatsu, Ryusuke Egawa, Shoichi Hirasawa, Hiroyuki Takizawa, Ken'ichi Itakura, and Hiroaki Kobayashi. 2016. Translation of Large-Scale Simulation Codes for an OpenACC Platform Using the Xevolver Framework. International Journal of Networking and Computing 6 (2016), 167--180. http://www.ijnc.org/index.php/ijnc/article/view/123Google ScholarGoogle ScholarCross RefCross Ref
  13. Xavier Lapillonne and Oliver Fuhrer. 2014. Using Compiler Directives to Port Large Scientific Applications to GPUs: An Example from Atmospheric Science. Parallel Processing Letters 24, 1, Article 5 (March 2014), 1450003 pages.Google ScholarGoogle ScholarCross RefCross Ref
  14. LLVM Compiler Infrastructure 2003-2018. LLVM Language Reference Manual. (2003-2018). https://llvm.org/docs/LangRef.html.Google ScholarGoogle Scholar
  15. Michel Muller and Takayuki Aoki. 2017. Hybrid Fortran: High Productivity GPU Porting Framework Applied to Japanese Weather Prediction Model. CoRR abs/1710.08616 (2017). arXiv:1710.08616 http://arxiv.org/abs/1710.08616Google ScholarGoogle Scholar
  16. Matthew R. Norman, Azamat Mametjanov, and Taylor Mark. 2017. Exascale Programming Approaches for the Accelerated Model for Climate and Energy. Technical Report 168250. Argonne National Laboratory, Chicago, IL.Google ScholarGoogle Scholar
  17. Fuhrer Oliver, Osuna Carlos, Lapillonne Xavier, Gysi Tobias, Cumming Ben, Bianco Mauro, Arteaga Andrea, and Schulthess Thomas Christoph. 2014. Towards a performance portable, architecture agnostic implementation strategy for weather and climate models. Supercomputing frontiers and innovations 1, 1 (2014), 45--62. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Omni Compiler Project 2013-2018. An Infrastructure for Source-to-Source Transformation. (2013-2018). http://omni-compiler.org.Google ScholarGoogle Scholar
  19. OpenACC-Standard.org 2017. The OpenACC Application Programming Interface - Version 2.6. (2017). https://www.openacc.org/sites/default/files/inline-files/OpenACC.2.6.final.pdf.Google ScholarGoogle Scholar
  20. OpenMP Architecture Review Board November 2015. OpenMP Application Programming Interface - Version 4.5. (November 2015). http://www.openmp.org/wp-content/uploads/openmp-4.5.pdf.Google ScholarGoogle Scholar
  21. Robert Pincus, Eli J. Mlawer, Lazaros Oreopoulos, Andrew S. Ackerman, Sunghye Baek, Manfred Brath, Stefan A. Buehler, Karen E. Cady-Pereira, Jason N. S. Cole, Jean-Louis Dufresne, Maxwell Kelley, Jiangnan Li, James Manners, David J. Paynter, Romain Roehrig, Miho Sekiguchi, and Daniel M. Schwarzkopf. 2015. Radiative flux and forcing parameterization error in aerosol-free clear skies. Geophysical Research Letters 42, 13 (2015), 5485--5492.Google ScholarGoogle ScholarCross RefCross Ref
  22. ROSE Compiler 2000-2018. ROSE Compiler Infrastructure. (2000-2018). http://rosecompiler.org.Google ScholarGoogle Scholar
  23. Suttinee Sawadsitang, James Lin, Simon See, Francois Bodin, and Satoshi Matsuoka. 2015. Understanding Performance Portability of OpenACC for Supercomputers. 2015 IEEE International Parallel and Distributed Processing Symposium Workshop (2015), 699--707. http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=7284377 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Akihiro Tabuchi, Masahiro Nakao, and Mitsuhisa Sato. 2014. A Source-to-Source OpenACC Compiler for CUDA. Springer Berlin Heidelberg, Berlin, Heidelberg, 178--187.Google ScholarGoogle Scholar
  25. H. Takizawa, S. Hirasawa, Y. Hayashi, R. Egawa, and H. Kobayashi. 2014. Xevolver: An XML-based code translation framework for supporting HPC application migration. In 2014 21st International Conference on High Performance Computing (HiPC). 1--11.Google ScholarGoogle Scholar
  26. Hiroyuki Takizawa, Thorsten Reimann, Kazuhiko Komatsu, Takashi Soga, Ryusuke Egawa, Akihiro Musa, and Hiroaki Kobayashi. 2017. Vectorizationaware loop optimization with user-defined code transformations. In Proceedings - IEEE International Conference on Cluster Computing, ICCC, Vol. 2017-Septe. 685--692.Google ScholarGoogle Scholar
  27. Michael Wolfe. 2016. Compilers and More: What Makes Performance Portable? (April 2016). Retrieved December 15, 2017 from https://www.hpcwire.com/2016/04/19/compilers-makes-performance-portable/Google ScholarGoogle Scholar

Index Terms

  1. The CLAW DSL: Abstractions for Performance Portable Weather and Climate Models

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            PASC '18: Proceedings of the Platform for Advanced Scientific Computing Conference
            July 2018
            92 pages
            ISBN:9781450358910
            DOI:10.1145/3218176

            Copyright © 2018 ACM

            © 2018 Association for Computing Machinery. ACM acknowledges that this contribution was authored or co-authored by an employee, contractor or affiliate of a national government. As such, the Government retains a nonexclusive, royalty-free right to publish or reproduce this article, or to allow others to do so, for Government purposes only.

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 2 July 2018

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article
            • Research
            • Refereed limited

            Acceptance Rates

            PASC '18 Paper Acceptance Rate8of17submissions,47%Overall Acceptance Rate109of221submissions,49%

            Upcoming Conference

            PASC '24
            Platform for Advanced Scientific Computing Conference
            June 3 - 5, 2024
            Zurich , Switzerland

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader