All Projects → claw-project → claw-compiler

claw-project / claw-compiler

Licence: BSD-2-Clause license
CLAW Compiler for Performance Portability

Programming Languages

java
68154 projects - #9 most used programming language
fortran
972 projects
ANTLR
299 projects
CMake
9771 projects
shell
77523 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to claw-compiler

pyccel
Python extension language using accelerators
Stars: ✭ 189 (+397.37%)
Mutual labels:  hpc, openmp, openacc
gpubootcamp
This repository consists for gpu bootcamp material for HPC and AI
Stars: ✭ 227 (+497.37%)
Mutual labels:  hpc, openmp, openacc
allgebra
Base container for developing C++ and Fortran HPC applications
Stars: ✭ 14 (-63.16%)
Mutual labels:  hpc, openmp
monolish
monolish: MONOlithic LInear equation Solvers for Highly-parallel architecture
Stars: ✭ 166 (+336.84%)
Mutual labels:  hpc, openmp
bolt
Official BOLT Repository
Stars: ✭ 19 (-50%)
Mutual labels:  hpc, openmp
yask
YASK--Yet Another Stencil Kit: a domain-specific language and framework to create high-performance stencil code for implementing finite-difference methods and similar applications.
Stars: ✭ 81 (+113.16%)
Mutual labels:  hpc, openmp
wxparaver
wxParaver is a trace-based visualization and analysis tool designed to study quantitative detailed metrics and obtain qualitative knowledge of the performance of applications, libraries, processors and whole architectures.
Stars: ✭ 23 (-39.47%)
Mutual labels:  hpc, openmp
mbsolve
An open-source solver tool for the Maxwell-Bloch equations.
Stars: ✭ 14 (-63.16%)
Mutual labels:  hpc, openmp
Training Material
A collection of code examples as well as presentations for training purposes
Stars: ✭ 85 (+123.68%)
Mutual labels:  hpc, openmp
Transpyle
HPC-oriented transpiler for C, C++, Cython, Fortran, OpenCL and Python.
Stars: ✭ 90 (+136.84%)
Mutual labels:  hpc, transpiler
Occa
JIT Compilation for Multiple Architectures: C++, OpenMP, CUDA, HIP, OpenCL, Metal
Stars: ✭ 230 (+505.26%)
Mutual labels:  hpc, openmp
libquo
Dynamic execution environments for coupled, thread-heterogeneous MPI+X applications
Stars: ✭ 21 (-44.74%)
Mutual labels:  hpc, openmp
butterfly
Application transformation tool
Stars: ✭ 35 (-7.89%)
Mutual labels:  transformations, code-transformation
mcxx
Mercurium is a C/C++/Fortran source-to-source compilation infrastructure aimed at fast prototyping developed by the Programming Models group at the Barcelona Supercomputing Center
Stars: ✭ 59 (+55.26%)
Mutual labels:  openmp, source-to-source
Foundations of HPC 2021
This repository collects the materials from the course "Foundations of HPC", 2021, at the Data Science and Scientific Computing Department, University of Trieste
Stars: ✭ 22 (-42.11%)
Mutual labels:  hpc, openmp
Armadillo Code
Armadillo: fast C++ library for linear algebra & scientific computing - http://arma.sourceforge.net
Stars: ✭ 388 (+921.05%)
Mutual labels:  hpc, openmp
Headache
Programming Language that compiles to 8 Bit Brainfuck
Stars: ✭ 59 (+55.26%)
Mutual labels:  translator, transpiler
clava
C/C++ Source-to-Source Tool based on Clang
Stars: ✭ 55 (+44.74%)
Mutual labels:  transpiler, source-to-source
julea
A Flexible Storage Framework for HPC
Stars: ✭ 25 (-34.21%)
Mutual labels:  hpc
RET
ROCm Machine Learning and HPC Stack installer
Stars: ✭ 28 (-26.32%)
Mutual labels:  hpc

CLAW Logo

Version Build Status Slack Doc

CLAW-Language-spec

Who is in charge here?

The CLAW!

The CLAW is our master.

The CLAW chooses who will go and who will stay.

-- Buzz Lightyear & Two Green Aliens in the UFO Catcher.

What is the CLAW Compiler?

The CLAW Compiler is a source-to-source translator working on the XcodeML intermediate representation. It implements the necessary transformation to the CLAW Directive Language Specifications. Intent of this language is to achieve performance portability on weather and climate code, especially for column- or point-wise computation.

CLAW Directive Language Specifications

The directives that control the transformation flow are defined in the CLAW Directive Language Specification.

Compiler workflow

The diagram below shows the workflow of the CLAW Compiler. CLAW Compiler workflow

Key components:
  • FPP: standard preprocessor.
  • OMNI F_Front: Fortran front-end. Convert Fortran source code into an intermediate representation (XcodeML/F).
  • CLAWX2T: CLAW XcodeML to XcodeML translator.
  • OMNI F_Back: Fortran back-end. Generates Fortran code from XcodeML/F intermediate representation.
  • OMNI C_Back: C back-end. Generates C code from XcodeML/C intermediate representation.

CLAWX2T Java Library Stack Overview

CLAWX2T Library stack

The CLAW XcodeML to XcodeML translator library stack is divided in three distinct library:

  • CLAW-WANI: CLAW translator implementation with all high-level transformation as well as mechanism to plug external translator and transformation.
  • CLAW-SHENRON: Define the super classes for any translator or transformation implementation.
  • CLAW-TATSU: Define the interface between XcodeML IR and the translation library. Implements all primitive transformations that serve as higher-level transformation building block.

How to install

See INSTALL.md file.

Documentation

To generate the java documentation and the compiler documentation, run the following command. The compiler documentation require pdflatex.

The compiler documentation is generated in the /documentation directory, the developer's guide is generated in the /documentation/developer directory and the javadoc is generated in the /documentation/javadoc/ directory.

make doc

Supported version

The CLAW XcodeML to XcodeML translator is written in Java. Java version 7 and above are supported.

OMNI Compiler

The CLAW Compiler is built on the top of the OMNI Compiler. For more information: OMNI Compiler website

About

This work was initially funded by the ETH zürich, MeteoSwiss and the PASC initiative under the ENIAC project.

Support

The CLAW compiler is currently not actively developed. Issues may be reported in the Github issue section but response time is not garanteed. If you have questions regarding further developments of the CLAW compiler or collaborations please contact xavier.lapillonne AT meteoswiss.ch or katherine.osterried AT env.ethz.ch .


Logo by adrienbachmann.ch

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].