分层依赖图:从理论到多核处理器映射的深入解析
1. 引言
在当今的计算领域,多核处理器的应用日益广泛,如何高效地将算法映射到多核处理器上成为了一个关键问题。依赖图作为一种有效的工具,在算法设计和并行计算中发挥着重要作用。本文将深入探讨依赖图的相关理论,包括其基本概念、性质,以及如何将依赖图映射到多核处理器上,并通过具体的案例研究来验证方法的有效性。
2. 依赖图基础
2.1 依赖图设计
依赖图的设计通常是一系列步骤,而非一个能直接针对应用设计脉动阵列的具体算法。常见的脉动阵列设计步骤包括单赋值代码、处理器分配和调度等。单赋值代码的动机是避免在VLSI设计技术中进行广播,因为广播会降低时钟速率。但在当今的多核处理器中,广播并非问题,因此我们从依赖图的层面进行设计。
2.2 依赖图示例 - 传递闭包
传递闭包是一个在网络路由和分布式计算等多个领域都非常基础的问题。假设有一个具有N个顶点和E条边的有向图G,其传递闭包的计算涉及为图中的每个顶点计算与之相连的顶点子集以及它们之间的最短距离。
依赖图设计步骤如下:
1. 将图的邻接矩阵A按行从顶部和按列从左侧输入到一个NxN的脉动阵列处理单元(PE)中。
2. 在每个PE (i, j)处,使用公式$C(i,j) = min(C(i,j), A(i,k) + A(k,j))$更新局部变量$C(i,j)$,其中$A(i,k)$是从顶部接收的值,$A(k,j)$是从左侧接收的值。
3. 如果$i=k$,将值$C(i,j)$向下传递,否则传递$A(k,j)$;如果$j=k$,将值$C(i,j)$向右传递,否则传递$A(i,k)$
超级会员免费看
订阅专栏 解锁全文
5530

被折叠的 条评论
为什么被折叠?



