Skip to content

Freely programmable source-to-source translation for Fortran

License

Notifications You must be signed in to change notification settings

Andrew-Beggs-ECMWF/loki

This branch is 41 commits behind ecmwf-ifs/loki:main.

Folders and files

NameName
Last commit message
Last commit date
Oct 17, 2024
Jan 19, 2025
May 10, 2024
Nov 8, 2024
Nov 8, 2024
Jan 19, 2025
Jan 19, 2025
Jul 11, 2024
Sep 24, 2024
Nov 23, 2022
Sep 6, 2024
Jan 19, 2025
Oct 16, 2024
Nov 23, 2022
Jun 30, 2023
Jan 20, 2025
Jul 3, 2023
Oct 14, 2024
Jan 19, 2025
Jul 27, 2024
Nov 21, 2024
Nov 19, 2021

Repository files navigation

Loki: Freely programmable source-to-source translation

license code-checks tests regression-tests codecov

Loki is an experimental tool to explore the possible use of source-to-source translation for ECMWF's Integrated Forecasting System (IFS) and associated Fortran software packages.

Loki is based on compiler technology (visitor patterns and ASTs) and aims to provide an abstract, language-agnostic representation of a kernel, as well as a programmable (pythonic) interface that allows developers to experiment with different kernel implementations and optimizations. The aim is to allow changes to programming models and coding styles to be encoded and automated instead of hand-applying them, enabling advanced experimentation with large kernels as well as bulk processing of large numbers of source files to evaluate different kernel implementations and programming models.

This package is made available to support research collaborations and is not officially supported by ECMWF.

Contact

Michael Lange ([email protected]), Balthasar Reuter ([email protected])

License

Loki is distributed under the Apache License 2.0. In applying this licence, ECMWF does not waive the privileges and immunities granted to it by virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.

Installation

See INSTALL.md.

Documentation

Loki has a comprehensive documentation that describes the API and how to use it to write custom transformations. There are also a number of Jupyter notebooks available in the example directory that help getting up to speed with the core functionality of the package.

Contributing

Contributions to Loki are welcome. In order to do so, please open an issue where a feature request or bug can be discussed. Then create a pull request with your contribution and sign the contributors license agreement (CLA).

About

Freely programmable source-to-source translation for Fortran

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 91.6%
  • Jupyter Notebook 5.3%
  • Fortran 1.5%
  • CMake 1.3%
  • Other 0.3%