ROSE Compiler Framework/Projects
This page serves as a quite guide about what the major directories under rose/projects are:
Project Overview
[edit | edit source]Parsing
- pragmaParsing: An example translator using the parsing building blocks provided by ROSE to parse pragmas
Translations:
- autoTuning: a project to use ROSE's parameterized translators to facilitate empirical tuning (or autotuning)
- DataFaultTolerance: a project to use source-to-source translation to make application resilient to memory faults
- extractMPISkeleton: extract MPI communication skeletons
- Fortran_to_C : A Fortran to C language translator
Static Analysis
- compass: a static analysis tool to find errors in applications
Dynamic Analysis
- RTED: runtime error detection using compiler instrumentation of library calls.
Binary Analysis:
- BinaryCloneDetection: detect similarities between binary executables.
- CloneDetection:
Optimizations of high-level abstractions
- arrayOptimization: optimizations based on array abstractions
- autoParallelization: A translator which can automatically insert OpenMP directives into serial code, based on dependence analysis and optionally semantics of abstractions.
Parallel Programming Models:
- mint: a directive based programming model for GPUs
- OpenMP_Translator: the first version of OpenMP implementation using ROSE. Not recommended for production use, kept just as an example.
- UpcTranslation: a preliminarily example project to demonstrate how ROSE can be used to created a UPC compiler
OpenK
[edit | edit source]An ongoing project to explore knowledge-driven HPC analysis and optimization. We use the standard and toolchain used by OWL to formally model the concepts and relations in HPC domains, including programs, hardware, analysis and optimization, etc.
See more at the main article OpenK
Shift Calculus DSL
[edit | edit source]Developing a scalable domain specific language for stencil computation
minitermite
[edit | edit source]Problem: A student added some new IR nodes into ROSE. She is having trouble to pass make for minitermite
Solution: projects/minitermite/HOWTO_ADD_NEW_SGNODE_VARIANTS