我實現了調度程序任務委託調度程序而不是任務竊取調度程序。所以這種方法的基本思想是每個線程都有自己的私有本地隊列。每當任務產生時,在任務被排隊到本地隊列之前,在這些隊列之間進行搜索操作,並且通過比較每個隊列的大小來找到最小大小隊列。每次使用這個最小大小的隊列來排隊任務。這是一種將工作壓力從繁忙線程的隊列中轉移出來並將作業委派給最不忙碌的線程隊列的方法。任務委託調度
這個調度技術的問題是,我們不知道每個任務需要多少時間才能完成。即。隊列的計數可能最小,但任務可能仍在運行,另一方面,隊列可能具有較高的值計數器,但任務可能會很快完成。任何想法來解決這個問題?
我正在使用Linux,C++編程語言在我們自己的多線程庫中實現一個多速率同步數據流範例。
如果任務完成時間可能變化很大,聽起來像是錯誤的策略。你必須這樣做嗎? – jlew 2013-02-13 13:37:46
@jlew通常所有任務的執行時間幾乎相等(或),它會大幅變化。什麼是一般東西prevelant – Dev 2013-02-13 13:42:02
@jlew問題清楚嗎? – Dev 2013-02-13 14:09:54