我们正在为异构计算做一个调度程序。
任务可以通过其截止日期和数据速率来识别,并且可以被视为二维图。见图:
矩形标识要在GPU上调度的任务,以及要在CPU上调度的外部任务。
问题是我们想要有效地识别用于创建最佳矩形的参数。即包含大多数任务的矩形。可以假设存在确定是否可以将点添加到当前矩形的功能。
最多可以有20.000(点)任务,轴可以任意长
有没有已知的算法/数据结构来解决这个问题?
根据给定的信息,您可以执行以下操作:
首先添加最接近所有点重心的点。
如果已添加n个点,请选择n +第1个点,即最接近当前矩形的点。询问您给定的功能,是否可以添加此点。
如果是这样,请膨胀矩形,使其包含此点。假设所有点都具有唯一的x和y坐标,则始终可以仅向矩形添加一个点。
如果没有,请终止。
如果这不是您想要的,请提供更多信息。
如果您指的是层次结构聚类,则可以使用空间索引或空间填充曲线在象限中细分2d图。象限可以代表线程或核心。然后,您需要使用此功能对点进行排序,并检查具有最多点的象限。