動態規劃 流水線排程問題

2021-09-06 09:39:47 字數 1090 閱讀 2978

n個作業要在由2臺機器m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,然後在m2上加工。m1和m2加工作業i所需的時間分別為ai和bi。

流水作業排程問題要求確定這n個作業的最優加工順序,使得從第乙個作業在機器m1上開始加工,到最後乙個作業在機器m2上加工完成所需的時間最少。

(1 ) 把全部ai和bi分類成非降序列,ai和bi分別是第i個作業在兩個機器上所需要的時間。

(2 ) 按照這一分類次序考察此序列: 如果序列中下乙個數是aj 且作業j還沒排程,那麼在還沒使用的最左位置排程作業j ; 如果下個數是bj 且作業j還沒排程,那麼在還沒使用的最右位置排程作業j ; 如果已經排程了作業j,則轉到該序列的下乙個數。

演算法主要利用johnson不等式原理,對於所有的a步驟和b步驟的時間從小到大排序。如果合併序列中拿出的元素屬於a集合,則將其所屬的job作為第乙個job執行;如果屬於b集合,則將其所屬的job作為最後乙個job執行。進行下乙個元素的判斷,分別作為第

二、倒數第二,依次類推;直到所有job被標記之後退出,獲得的job陣列就是job的執行序列。

設 n=4,( a1,a2,a3,a4 ) =( 3,4,8,10 ) 和( b1,b2,b3,b4 ) =(6,2,9,15 ),對這些a和b分類後的序列是( b2,a1,a2,b1,a3,b3,a4,b4 ) =( 2,3,4,6,8,9,10,15),

設σ1,σ2,σ3,σ4是最優排程。

最小數是b2,  置σ4 = 2。

下乙個最小數是a1,  置σ1 = 1。

接著的最小數是a2,由於作業2已被排程,轉向再下乙個數b1 。

作業1已被排程,再轉向下乙個數a3,置    σ2 = 3。

最後剩σ3 是空的,而作業4還沒排程,從而σ3= 4

排序的結果( a4,b3,a0,b1,a2,b2,a1,b0,a3,b4 )

執行順序為 j4 -> j0 ->j2 ->j1 ->j3

流水線排程

n個作業要在由2臺機器m1和m2組成的流水線上完成加工。每個作業加工的順序都是先在m1上加工,然後在m2上加工。m1和m2加工作業i所需的時間分別為a i 和b i 你可以安排每個作業的執行順序,使得從第乙個作業在機器m1上開始加工,到最後乙個作業在機器m2上加工完成所需的時間最少。求這個最少的時間...

流水線冒險

流水線冒險 回顧一下常用五階段流水線 f 取指 d 解碼 e 執行 m 訪存 w 寫回 注意 對暫存器檔案的寫只有在時鐘上公升的時候才會更新!資料冒險的原因 對暫存器檔案的讀寫是在不同階段進行的 1.用暫停來避免資料冒險 暫停時,處理器會停止流水線中一條或多條指令,直到冒險條件不再滿足。在本該正常處...

渲染流水線

應用階段 cpu準備資料,skinmeshrender,meshfilter,meshrender 頂點資料,三角形資料,法線資料,切線資料,渲染設定指令,紋理資料,uv資料 由cpu傳送給gpu,即一次drawcall 幾何階段 頂點變換,計算頂點顏色 如逐頂點光照 齊次裁剪空間,透視除法,歸一化...