嵌入式实验EX1:Kahn Process Networks and Synchronous Data Flows
来源:互联网 发布:href javascript void 编辑:程序博客网 时间:2024/05/21 10:01
一、KPN模型特性
1、一种并行程序设计语言
2、进程通过一个拥有无限容量的单向First-In-First-Out(FIFO)通道,以点对点的方式进行通信
3、阻塞式读取:当通道为空时,写操作将会被阻塞直到有数据被写入通道
4、非阻塞式写入:进程往通道中写入数据的操作,永远不会被阻止
5、图形化表示如下,如图所示,节点表示进程,边表示单向通道,对于一个节点来说,入边表示输入,出边表示输出
二、KPN的假设条件及约束
1、进程之间只能通过FIFO通道进行通信
2、通道中传输信息的时间应当是不可预测但有限的
3、在任何时刻,进程总在计算或等待一个输入通道的信息
注意:没有两个进程可以往同一个通道中发送信息
4、每个进程都跟随着一个连续的程序
三、KPN性质
1、单调性(monotonicity)
如图所示,不管输入X是什么,它都是之前的输出Y'的子集。(每次输入的信息实际上是通过输出得到的)
解析如下:
▶ 一个进程接收到的输入越多会导致其输出也越多
▶ 一个进程不需要接收到所有的输入才开始计算:未来的输入只与未来的输出相关
2、确定性(determinacy)
一个进程网络是确定的:当进程的所有通道的历史读写序列只与输入的历史序列相关
在一个确定的进程网络中函数的行为与时间无关
一个由单调进程组成的KPN是确定的
▶ 增加不确定性(非单调行为)
① 允许进程非阻塞式读取
② 允许两个甚至更多进程在同一个通道中进行读写操作
③ 允许进程共享变量
3、同步数据流(SDF,Synchronous Data Flow)
▶ KPNs的约束
① 允许编译时调度
② 每个进程在每次触发时进行固定数目的读/写(事先确定)
▶ 调度两步走
① 为进程建立相应的执行率(求解线性方程组)
② 确定周期性的调度
这种调度可以在缓存中没有数据的时候进行。
▶ 有n个进程的SDF的拓扑矩阵,以下为确定SDF是否相容的三条法则
① 连通的SDF有周期性的调度,当且仅当M满足r = n-1(Mq = 0有一个唯一最小整数解)
② 对一个不相容的SDF,M满足r = n(Mq = 0 只有全零解)
③ 对一个不连通的SDF,M满足r < n-1(Mq = 0有两个或者更高维度的解)
▶ 示例1
上假如有数字,代表初始化的记号(token)/延迟的数量,没有默认为1
n =3, rank(M)=3,有r=n
不相容SDF:此时不存在可能的策略去运行,因为不允许无限累积
注:
① r为矩阵的秩,也就是列空间的维数,将方程进行初等行变换,最终剩下的主元数目即为矩阵的秩
② 求最小正整数解:将方程进行初等行变换后用一个一个变量,然后令最小的那个为1,最后再看看有没有非整数的,将所有变量扩大K倍变成整数,最后得到的最小正整数解就是相对运行率。
▶ 示例2
四、参考
• 嵌入式系统之KPN网络图(Kahn Process Networks) http://blog.csdn.net/c602273091/article/details/40871903
• MPSoC平台KPNs(Kahn Process Networks)建模
- 嵌入式实验EX1:Kahn Process Networks and Synchronous Data Flows
- 嵌入式系统之KPN网络图(Kahn Process Networks)
- Data Transfer Process and Error handling process
- Dynamics AX 2009: Business Intelligence – How Data Flows into AX SSRS Reports and Excel
- about synchronous and asynchronous.
- OPENXML to Publish and Process XML Data
- dump rhashtable and encap and decap flows
- Ex1
- ex1
- ex1
- OAuth2.0 Authorization flows and grant types
- Recurrnet Neural Networks, Time series data and IoT
- Synchronous and Asynchronous transform component
- Synchronous and Asynchronous I/O
- Putting Data and Business Process Integration in Context @ JDJ
- Oracle Physical Inventory Adjustment Process and Data flow.
- Download and Process High Frequency Data from NetFods
- CS 20SI|Lecture 5 Managing experiments and process data
- 每日打卡 2017.04.13 计算几何
- POJ1700 Crossing River(贪心算法训练)
- POJ1323 Game Prediction(贪心算法训练)
- POJ3624 Charm Bracelet(典型01背包问题)
- POJ1017 Packets(贪心算法训练)
- 嵌入式实验EX1:Kahn Process Networks and Synchronous Data Flows
- Opencv 中的结构体CvScalar
- nginx实现反向代理和负载均衡
- Java中的引用类型和垃圾回收
- Spring学习-25:Spring中的JDBC Template(JDBC模板):设置参数到属性文件
- 面试知识点6:MySQL中InnoDB的一级索引、二级索引
- An ffmpeg and SDL Tutorial 03
- Windows下安装Tensorflow教程
- TensorFlow实战11:实现Word2Vec