Graph Partitioning with Acyclicity Constraints
1 Practical Motivation
- 目标平台: 用于高级成像和计算机视觉的异构多处理器,目前用于英特尔处理器,为低功耗和小内存设计。
- 为了解决内存限制,将图划分为几个分区依次执行。这种划分的质量对通信量和性能有很大影响。
- 现有很多启发式算法可以将图划分成节点数量大致相等的分区。但是我们的平台要求分区之间的依赖不能成环,因为要依次执行。
2 Background
- 把DAG的节点映射到异构嵌入式多处理器的PE(processing element)时产生了图划分问题。
- 平台的PE拥有私有的本地数据存储器和独立的程序存储器。 直接存储器访问控制器用于在本地存储器和系统的外部DDR存储器之间传输数据。 数据存储器的大小约为几百千字节,只能存储一小部分图像。因此,输入图像被分成小片。 该硬件的操作模式通常是应用程序图中的节点被分配给PE并一个接一个地处理这些分区。 在大多数情况下,这可以流水线化,使得当PE处理当前分区时,直接存储器访问控制器同时将下一分区加载到本地存储器并将处理后的分区从先前的迭代写回主存储器。
3 Prelimitaries
-
平衡约束:
-
无环约束:分区之间不能有循环的依赖关系
-
目标函数:
-
DGPAQ (directed graph partitioning problem with acyclic quotient graph) 可以定义为找到一个分割,在满足平衡约束和无环约束的条件下,使目标函数最小。
-
平衡约束确保调度组中的程序的大小不超过平台的程序存储器大小。减少边缘切割减少了组之间的数据传输量,从而减轻了应用程序的内存带宽要求。请注意,应用程序要么是计算限制的(处理器总是占用),要么是带宽限制的(处理器等待数据)。因此,最小化传输并不能保证最佳的调度。但是,特别是在嵌入式系统中,内存带宽通常是瓶颈,需要大量传输的调度既不会产生良好的吞吐量,也不会产生良好的能效。因此,我们解决了在给定约束下单独最小化边缘切割的问题,但没有解决调度问题。我们提供线性时间启发式算法,以后可以在更广泛的调度算法中用作子程序以减少数据传输。
4 Hardness Results
- 当限定 k = 2,epsilon = 0 时,这个问题是NP完全问题,而且 k >=3 时,难以用有限近似因子近似。通过构造商图Q,检查平衡约束并检查Q的无环性,可以在线性时间内验证DGPAQ实例的给定解。最后一项任务可以使用Kahn算法在Q的大小的线性时间内完成。 我们现在将子集和问题归约为我们的问题。 最平衡的最小割问题是NP完全的。
- 定理一 :epsilon = 0 时的二分情况下,DGPAQ问题是NP完全的。
- 定理二 :epsilon = 0,k >= 3 时, DGPAQ没有多项式时间的近似算法,除非 P = NP。
5 Heuristic Algorithms
本节提出简单但高效的构造和局部搜索启发式算法来解决问题。大致方法是:现基于输入图的拓扑排序创造一个初始解,然后在保证两个约束的同时,利用局部搜索策略来改进解的目标。