【问题标题】:algorithm for binary two-dimensional rectangular partitioning二元二维矩形分割算法
【发布时间】:2012-01-09 17:26:06
【问题描述】:

我们正在为异构计算做一个调度器。

任务可以通过它们的截止日期和它们的数据速率来识别,并且可以被视为一个二维图。见图片:

矩形标识要在 GPU 上调度的任务,以及要在 CPU 上调度的外部任务。

问题是我们想要有效地识别用于创建最佳矩形的参数。 IE。包含大多数任务的矩形。可以假定存在确定是否可以将点添加到当前矩形的函数。

最多可以有 20.000 个(点)任务,并且轴可以是任意长度

是否有任何已知的算法/数据结构可以解决这个问题?

【问题讨论】:

  • 还有什么标准可以判断出一个好的矩形吗?如果它只是“包含最多的任务”,那么最好的矩形是包含所有 20,000 个点的矩形。
  • 有一些资源限制(任务集是否可以调度)。确定点是否可以添加到矩形的函数表明了这种关系。
  • 在二维空间中绘制它并且没有任何标准来确定任务最适合哪个设备,这很奇怪。我认为空间会有一条线或曲线将其划分为 2 个区域,而决定将是如何移动该线。你画了一个盒子,得到一个二进制结果来进行一些评估......
  • 我们只假设一个 CPU / GPU 配置,其中矩形内的所有内容都将在 GPU 上调度,其余的在 CPU 上。有一些因素会考虑 GPU 与 GPU 上的执行速度。该场景描述了数据流的异构实时调度。

标签: algorithm partitioning partition-problem


【解决方案1】:

如果您指的是层次聚类,您可以使用空间索引或空间填充曲线将二维图细分为象限。一个象限可以代表一个线程或一个核心。然后您需要使用此功能对点进行排序并检查点最多的象限。

【讨论】:

    【解决方案2】:

    使用给定的信息,您可以执行以下操作:

    首先添加最接近所有点的重心的点。

    如果已经添加了 n 个点,则选择第 n+1 个点,即离当前矩形最近的点。询问您给定的功能,是否可以添加此点。

    如果是这样,请扩大矩形使其包含该点。假设所有点都有唯一的 x 和 y 坐标,则始终可以只向矩形添加一个点。

    如果不是,终止。

    如果这不是您想要的,请提供更多信息。

    【讨论】:

    • 简单优雅的解决方案。谢谢
    猜你喜欢
    • 1970-01-01
    • 2018-05-04
    • 2014-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 2012-03-15
    • 1970-01-01
    相关资源
    最近更新 更多