StreamIt与Mercury编译:创新技术解析
1. StreamIt语言概述
StreamIt是一种用于高性能流式应用的新型语言。流式程序作为一类重要的应用,具有与其他已知应用类别不同的特性。StreamIt的主要目标是在不牺牲性能的前提下提高流编程的抽象级别。
1.1 StreamIt与相关领域的比较
- 与同步数据流(SDF)的关系 :在抽象层面,StreamIt的流图与Ptolemy项目所考虑的同步数据流(SDF)领域有许多共同特性。SDF图中的每个节点产生和消费给定数量的项,节点之间的弧上可能存在延迟,这与StreamIt中的窥视项大致对应。和StreamIt一样,SDF图保证有静态调度,并且有许多结合代码大小和执行时间的良好调度结果。然而,以前关于SDF调度的结果没有考虑点对点消息施加的约束,也不包括StreamIt的信息波前、重新初始化和编程语言支持的概念。
- 与SDL的比较 :SDL(Specification and Description Language)是工业中使用的一种与StreamIt有一定相似性的规范包。SDL是一种用于描述大型实时系统(特别是电信应用)的结构和行为的正式、面向对象的语言。它包括基于接收器队列的异步消息传递概念,但不像StreamIt那样包含波前语义。此外,SDL的重点是规范和验证,而StreamIt旨在产生高效的实现。
1.2 StreamIt的优势与未来规划
- 提高编程效率和健壮性 :StreamIt的过滤器定义