跳转到内容

ROSE 编译器框架/项目

来自维基教科书,开放世界中的开放书籍

此页面用作关于 rose/projects 下主要目录的简要指南

项目概述

[编辑 | 编辑源代码]

解析

  • pragmaParsing:一个示例翻译器,使用 ROSE 提供的解析构建块来解析编译指示

翻译

  • autoTuning:一个项目,使用 ROSE 的参数化翻译器来促进经验性调整(或自动调整)
  • DataFaultTolerance:一个项目,使用源到源翻译来使应用程序对内存错误具有弹性
  • extractMPISkeleton:提取 MPI 通信骨架
  • Fortran_to_C : 一个 Fortran 到 C 语言翻译器

静态分析

  • compass:一个静态分析工具,用于查找应用程序中的错误

动态分析

  • RTED:使用编译器对库调用的工具进行运行时错误检测。

二进制分析

  • BinaryCloneDetection:检测二进制可执行文件之间的相似性。
  • CloneDetection


高级抽象的优化

  • arrayOptimization:基于数组抽象的优化
  • autoParallelization:一个翻译器,可以根据依赖性分析和可选的抽象语义,自动将 OpenMP 指令插入串行代码中。

并行编程模型

  • mint:一个基于指令的 GPU 编程模型
  • OpenMP_Translator:使用 ROSE 实现 OpenMP 的第一个版本。不推荐用于生产环境,仅作为示例保留。
  • UpcTranslation:一个初步的示例项目,用于演示如何使用 ROSE 创建 UPC 编译器

一个正在进行的项目,用于探索知识驱动的 HPC 分析和优化。我们使用 OWL 使用的标准和工具链来正式建模 HPC 领域中的概念和关系,包括程序、硬件、分析和优化等。

在主文章 OpenK 中查看更多信息

Shift Calculus DSL

[编辑 | 编辑源代码]

开发一个用于模板计算的可扩展领域特定语言

minitermite

[编辑 | 编辑源代码]

问题:一个学生在 ROSE 中添加了一些新的 IR 节点。她无法通过 minitermite 的 make

解决方案:projects/minitermite/HOWTO_ADD_NEW_SGNODE_VARIANTS

华夏公益教科书