2011-11-30 90 views
2

我們正在爲異構計算做一個調度器。二元二維矩形分區算法

任務可以通過他們的截止日期和他們的數據速率來識別,並可以被視爲一個二維圖。見圖片:

enter image description here

矩形標識任務安排在GPU上,外任務,在CPU上調度。

問題是我們想要高效地識別用於創建最佳矩形的參數。即包含大多數任務的矩形。可以假定確定是否可以將點添加到當前矩形的功能。

可以有高達20.000(點)的任務,並且軸可以任意長

是否有解決這個問題的任何已知的算法/數據結構?通過增加點最接近所有點的重心

開始:

+2

有什麼更多的標準是什麼使一個良好的矩形?如果它只是「包含最多的任務」,那麼最好的矩形就是一個包含所有20,000個點的矩形。 – Kevin

+0

有一些資源約束(無論是否可以調度任務集)。確定點是否可以添加到矩形的函數表示這種關係。 – Sune1987

+0

你在2d空間中繪製這個圖很奇怪,並且沒有任何標準來選擇一個任務最適合的設備。我認爲這個空間會有一條線或曲線將它分成兩個區域,決定的是如何移動這條線。你畫一個盒子,並有一個二進制結果進行一些評估...... – phkahler

回答

0

在給定的信息,你可以做到以下幾點。

如果已添加n個點,請選擇最接近當前矩形的點作爲第n + 1個點。詢問你的給定函數,是否可以添加這個點。

如果是這樣,膨脹矩形,使其包含此點。假設所有的點都有獨特的x和y座標,總是可以在矩形中添加一個點。

如果不是,則終止。

如果這不是你想要的,請提供更多信息。

+0

簡單而優雅的解決方案。謝謝 – Sune1987

0

如果您的意思是一個層次聚類,您可以使用空間索引或空間填充曲線來細分象限中的二維圖。象限可以表示線程或核心。然後,您需要使用此功能對點進行排序,並檢查點數最多的象限。