專利名稱:超級計算機的自適應調度系統及方法
技術領域:
本發明涉及計算機技術領域,更具體地說,涉及一種超級計算機的自適 應調度系統及方法。
背景技術:
超級計算機,是指多個計算節點組合起來的能平行進行大規模計算或數 據處理的計算機,也稱為并行計算機。目前,并行環境在運行時,需指定一 個節點列表,執行并行程序時則根據節點列表將并行程序調度到相應的計算 節點。現有的節點列表大都事先由用戶給定或管理員設定好的,也有動態生 成的節點列表,但僅考慮了各節點的綜合負載能力。由于現有的節點列表未 充分考慮到不同的并行程序對節點的各種能力要求,運行并行程序的節點若 達不到程序的能力要求,則可能會降低程序的運行效率和速度,從而影響超 級計算機的性能。
發明內容
基于此,有必要提供一種能合理分配超級計算機資源、提高并行程序運 行效率的超級計算機的自適應調度系統。
此外,還有必要提供一種能合理分配超級計算機資源、提高并行程序運 行效率的超級計算機的自適應調度方法。
所述超級計算機的自適應調度系統包括節點信息收集模塊,用于收集 超級計算機中各節點的節點信息;運算模塊,與所述節點信息收集模塊相連, 根據所述節點信息以及并行程序的優先模式和對節點的能力要求,計算得到 節點的調度優先度;節點列表生成模塊,與所述運算模塊相連,根據所述節 點的調度優先度生成節點列表;調度模塊,與所述節點列表生成模塊相連,根據所述節點列表將并行程序調度到對應節點。
所述系統還包括程序設定模塊,與所述運算模塊相連,用于設定并行 程序的優先模式和對節點的能力要求。
所述運算模塊包括節點優先度計算模塊,用于根據所述節點信息計算 得到節點的優先度信息;節點優先度選擇模塊,與所述節點優先度計算才莫塊 相連,根據所述并行程序的優先模式,從所述節點的優先度信息中選擇與所 述優選模式對應的優先度;符合度計算模塊,用于將所述并行程序對節點的 能力要求與所述節點信息進行對比,獲取節點對并行程序能力要求的符合度; 調度優先度計算模塊,與所述符合度計算模塊相連,根據所述與優先模式對 應的優先度和所述符合度,計算得到節點的調度優先度。
所述調度^f莫塊用于判斷調度優先度最大的節點是否能達到并行程序對節 點的能力要求,若是,則將所述并行程序調度到該節點,否則,通知所述運 算模塊重新計算節點的調度優先度。
所述超級計算機的自適應調度方法包括收集超級計算機中各節點的節 點信息;獲取并行程序的優先模式及對節點的能力要求,根據所述優先模式 和對節點的能力要求以及所述節點信息,計算得到節點的調度優先度;根據 所述節點的調度優先度生成節點列表,以及#>據所述節點列表將并行程序調 度到相應節點。
所述方法還包括設定并行程序的優先模式和對節點的能力要求。 計算節點的調度優先度的步驟包括根據所述節點信息獲取節點的優先 度信息;根據所述并行程序的優先模式,從所述節點的優先度信息中選擇與 所述優先模式對應的優先度;將所述并行程序對節點的能力要求與所述節點 信息進行對比,獲取節點對并行程序能力要求的符合度;根據所述與優先模 式對應的優先度和所述符合度,計算得到節點的調度優先度。
根據節點的調度優先度生成節點列表的步驟包括選擇調度優先度最大 的節點,將所述節點的節點地址和/或其對應的處理器地址和/或內核地址加入 所述節點列表中。根據節點的調度優先度生成節點列表的步驟還包括生成節點列表之前 清空節點列表。
根據節點列表將并行程度調度到對應節點的步驟包括根據所述調度優 先度最大的節點的節點信息,判斷所述節點信息是否能達到并行程序對節點 的能力要求,若是,則將所述并行程序調度到該節點,否則,重新計算各節 點的調度優先度。
上述超級計算機的自適應調度系統及方法,通過收集各節點的節點信息, 并根據節點信息及并行程序對節點的能力要求動態生成節點列表,所生成的 節點列表充分考慮到并行程序對優先模式及節點的各種能力要求,能合理分 配超級計算機的資源,從而提高了并行程序的運行效率。
圖l是一個實施例中超級計算機的自適應調度系統的結構示意圖; 圖2是圖1中運算模塊的結構示意圖3是一個實施例中超級計算機的自適應調度方法的流程圖; 圖4是一個實施例中計算節點調度優先度的方法流程圖; 圖5是另一個實施例中超級計算機的自適應調度方法的流程圖。
具體實施例方式
圖l示出了 一個實施例中的超級計算機的自適應調度系統,該系統包括節
點信息收集模塊100、程序設定模塊200、運算模塊300、節點列表生成模塊400
及調度模塊500,其中
節點信息收集模塊1 OO用于收集超級計算機中各節點的節點信息。 程序設定模塊200用于設定并行程序的優先模式和對節點的能力要求。 運算模塊300分別與節點信息收集模塊100及程序設定模塊200相連,根據
節點信息以及并行程序的優先模式和對節點的能力要求,計算得到節點的調
度優先度。節點列表生成模塊400與運算模塊300相連,根據節點的調度優先度生成 節點列表。
調度模塊500與節點列表生成模塊400相連,根據節點列表將并行程序調 度到相應節點。
在一個實施方式中,節點信息收集模塊100收集的節點信息包括節點的剩 余能力,所謂節點的剩余能力,是指超級計算機中各節點可供支配的剩余的 能力,例如剩余的計算能力(可以是浮點運算次數等)、剩余的存儲能力(可 以是內存大小等)、剩余的網絡帶寬(可以是每秒傳輸的字節數等)以及溫 度等信息。程序設定^t塊200事先設定的并行程序對節點的能力要求也可包括 計算能力、存儲能力、網絡帶寬以及溫度等。在一個實施例中,節點信息收 集模塊100可定時收集節點信息。
圖2示出了圖l中的運算模塊300,該運算模塊300包括節點優先度計算模 塊301、節點優先度選擇模塊302、符合度計算模塊303和調度優先度計算模塊 304,其中
節點優先度計算模塊301用于根據節點信息計算得到節點的優先度信息。 在一個實施方式中,節點優先度計算模塊301可定制某一特定函數來根據收集 到的節點信息計算得到節點的優先度信息。優先度信息可包括綜合優先度、 計算優先度、存儲優先度、網絡優先度、穩定優先度等,也可包括計算存儲 優先度、計算網絡優先度、存儲網絡優先度等。
在一個實施例中,節點優先度計算模塊301定制函數f,對于某一個節點i, 節點信息收集模塊100收集到其剩余運算能力為Ai,剩余存儲能力為Bi,剩余 網絡帶寬為Ci,溫度為Di等,則節點優先度計算模塊301通過函數f計算綜合優 先度Ei-f (Ai, Bi, Ci, Di)、計算優先度Fi二f (Ai)、存儲優先度Gi-f (Bi)、 網絡優先度Hi-f (Ci)、穩定優先度Ii-f (Di),其中,節點優先度計算模塊 301定制的函數需遵循Ai越大則Ei越大、且Bi越大則Ei越大、且Ci越大則Ei越 大、且Di越大則Ei越小的原則。例如,節點優先度計算模塊301可采用以下函數計算節點i的綜合優先度Ei、計算優先度Fi、存儲優先度Gi、網絡優先度Hi 以及穩定優先度Ii:
Ei=Ai/Aall+Bi/Ball+Ci/Call-Di/Dall
Fi=Ai/Aall
Gi=Bi/Ball
Hi=Ci/Call
Ii=l-Di/Dall
其中,Aall是節點i的總計算能力,Ball是節點i的總存儲能力,Call是節點 i的總網絡帶寬,Dall是節點i所能容忍的最高溫度。
節點優先度選擇模塊302與節點優先度計算模塊301相連,根據并行程序 的優先模式,從節點的優先度信息中選擇與所述優先模式對應的優先度。在 一個實施方式中,程序設定模塊200事先設定了并行程序的優先模式,這里的 優先模式可包括計算優先、存儲優先及網絡優先等,可才艮據并行程序的特性 設定每個并行程序不同的優先模式。節點優先度選擇模塊302根據并行程序的 優先模式,從節點的優先度信息中選擇與該優先模式對應的優先度,例如, 并行程序的優先模式是計算優先,則節點優先度選擇模塊302選擇節點的計算 優先度,以此類推。
符合度計算模塊303用于將并行程序對節點的能力要求與節點信息進行 比對,獲取節點對并行程序能力要求的符合度。在一個實施方式中,程序設 定模塊202事先設定了并行程序對節點的能力要求,例如運行該并行程序的可 用內存大小不能小于M、運行該并行程序的可用浮點運算次數不能小于F、運 行該并行程序的可用帶寬不能小于C、運行并行程序的節點溫度不能大于T等。 符合度計算模塊303可定制一個特定函數h,根據并行程序的能力要求及節點 信息計算得到節點對并行程序能力要求的符合度。例如,對于某一個節點i, 符合度計算模塊303定制函數Ui-h (Bi/M, Ai/F, Ci/C, Di/T),其中h需遵循 節點i的剩余能力越大于其限定值時Ui越大,越小于其限定值時Ui越小,當節 點i的剩余能力等于其限定值時Ui^。調度優先度計算模塊304與符合度計算模塊303相連,根據上述與優先模 式對應的優先度和計算得到的符合度,計算得到節點的調度優先度。在一個 實施方式中,調度優先度計算模塊304可定制一個特定的函數w來計算節點的 調度優先度。例如,對于節點i,并行程序的優先模式是計算優先,節點優先 度選擇模塊302則從節點優先度信息中選擇計算優先度Fi,符合度計算模塊303 計算節點i對并行程序能力要求的符合度為Ui,則調度優先度計算模塊304計算 節點i的調度優先度為Si, (Fi, Ui),其中,函數w需遵循Fi越大則Si越大, Ui越大則Si越大的原則。例如可釆用如下函數計算節點i的調度優先度
Si=Fi*Ui
其中,Fi是節點i的計算優先度,Ui是節點對并行程度能力要求的符合度。
在一個實施例中,調度優先度計算模塊304計算得到各節點的調度優先度 后,節點列表生成模塊400則選擇調度優先度最大的節點,并將該節點對應的 節點地址加入節點列表中。對于以節點的中央處理器(Central Process Unit, 筒稱"CPU)或其內核為單位進行調用的并行程序,則還可將節點對應的CPU 地址和/或其內核地址一并加入節點列表中,這里的CPU地址可以是CPU編號 或計算機名,內核地址也可以內核編號等。節點列表生成模塊400在生成節點 列表之前,可清空一次節點列表。
在一個實施例中,調度模塊500可進一步判斷調度優先度最大的節點是否 能達到并行程序對節點的能力要求,若是,則根據節點列表將并行程序調度 到對應節點,否則,通知運算模塊300重新計算節點的調度優先度。即當運算 模塊300計算得到的調度優先度最大的節點達不到并行程度對節點的能力要 求時,則運算模塊300根據節點信息收集模塊1 OO動態收集到的節點信息繼續 計算節點的調度優先度,直到所選的調度優先度最大的節點能達到并行程序 對節點的能力要求。
這樣,針對不同應用的并行程序,通過上述系統可找到最適合運行該并 行程序的節點,實現了超級計算機資源的合理分配,同時提高了并行程序的 運行效率。圖3示出了一個實施例中的超級計算機的自適應調度方法流程,具體過程 如下
在步驟S301中,收集超級計算機中各節點的節點信息。
在步驟S302中,獲取并行程序的優先模式及對節點的能力要求,根據優 先模式及對節點的能力要求和所述節點信息,計算得到節點的調度優先度。
在步驟S303中,根據節點的調度優先度生成節點列表,以及根據節點列 表將并行程序調度到相應節點。
在一個實施方式中,所收集的節點信息包括節點的剩余能力,例如剩余 的計算能力(可以是浮點運算次數等)、剩余的存儲能力(可以是內存大小 等)、剩余的網絡帶寬(可以是每秒傳輸的字節數等)以及溫度等信息。在 一個實施例中,節點信息收集模塊100可定時收集節點信息。
上述實施方式中,程序設定模塊200可事先設定并行程序的優先模式及對 節點的能力要求,其中,優先模式可包括計算優先、存儲優先及網絡優先等, 對節點的能力要求可包括計算能力、存儲能力、網絡帶寬以及溫度等。
圖4示出了一個實施例中計算節點調度優先度的方法流程圖,具體過程如
下
在步驟S401中,根據節點信息獲取節點的優先度信息。 在一個實施方式中,節點優先度計算模塊301可定制某一特定函數來根據 收集到的節點信息計算得到節點的優先度信息。優先度信息可包括綜合優先 度、計算優先度、存儲優先度、網絡優先度、穩定優先度等,也可包括計算 存儲優先度、計算網絡優先度、存儲網絡優先度等。
在一個實施例中,節點優先度計算模塊301定制函數f,對于某一個節點i, 節點信息收集模塊100收集到其剩余運算能力為Ai,剩余存儲能力為Bi,剩余 網絡帶寬為Ci,溫度為Di等,則節點優先度計算模塊301通過函數f計算綜合優 先度Ei-f (Ai, Bi, Ci, Di)、計算優先度Fi-f (Ai)、存儲優先度Gi-f (Bi)、網絡優先度Hi-f (Ci)、穩定優先度卜f (Di),其中,節點優先度計算模塊 301定制的函數需遵循Ai越大則Ei越大、且Bi越大則Ei越大、且Ci越大則Ei越 大、且Di越大則Ei越小的原則。例如,節點優先度計算4莫塊301可采用以下函 數計算節點i的綜合優先度Ei、計算優先度Fi、存儲優先度Gi、網絡優先度Hi 以及穩定優先度K:
Ei=Ai/Aall+Bi/Ball+Ci/Call-Di/Dall
Fi=Ai/Aall
Gi=Bi/Ball
Hi=Ci/Call
Ii=l-Di/Dall
其中,Aall是節點i的總計算能力,Ball是節點i的總存儲能力,Call是節點 i的總網絡帶寬,Dall是節點i所能容忍的最高溫度。
在步驟S402中,根據并行程序的優先模式,從節點的優先度信息中選擇 與該優先模式對應的優先度。
在一個實施方式中,程序設定模塊200可根據并行程序的特性設定每個并 行程序不同的優先模式。節點優先度選擇模塊302根據并行程序的優先模式, 從節點的優先度信息中選擇與該優先模式對應的優先度。例如,并行程序的 優先模式是計算優先,則節點優先度選擇模塊302選擇節點的計算優先度,以 此類推。
在步驟S403中,將并行程序對節點的能力要求與節點信息進行對比,獲 取節點對并行程序能力要求的符合度。
在一個實施方式中,程序設定模塊202事先設定了并行程序對節點的能力 要求,例如運行該并行程序的可用內存大小不能小于M、運4亍該并行程序的可 用浮點運算次數不能小于F、運行該并行程序的可用帶寬不能小于C、運行并 行程序的節點溫度不能大于T等。符合度計算模塊303可定制一個特定函數h, 根據并行程序的能力要求及節點信息計算得到節點對并行程序能力要求的符 合度。例如,對于某一個節點i,符合度計算模塊303定制函數Ui^ (Bi/M,Ai/F, Ci/C, Di/T),其中h需遵循節點i的剩余能力越大于其限定值時Ui越大, 越小于其限定值時Ui越小,當節點i的剩余能力等于其限定值時Ui^。
在步驟S404中,根據優先模式對應的優先度和所述符合度,計算得到節 點的調度優先度。
在一個實施方式中,調度優先度計算模塊304可定制一個特定的函數w來 計算節點的調度優先度。例如,對于節點i,并行程序的優先模式是計算優先, 節點優先度選擇模塊302則從節點優先度信息中選擇計算優先度Fi,符合度計 算模塊303計算節點i對并行程序能力要求的符合度為Ui,則調度優先度計算模 塊304計算節點i的調度優先度為Si二w (Fi, Ui),其中,函數w需遵循Fi越大 則Si越大,Ui越大則Si越大。例如可采用如下函數計算節點i的調度優先度Si:
Si=Fi*Ui
其中,Fi是節點i的計算優先度,Ui是節點i對并行程度能力要求的符合度。
圖5示出了一個實施例中的超級計算機的自適應調度方法流程,具體過程 如下
在步驟S501中,計算得到各節點的調度優先度。關于調度優先度的計算 過程上面已進行了詳細闡述,在此則不再贅述。
在步驟S502中,清空節點列表。由于并行程序調度的過程中,節點列表 不斷更新,為使之前的數據不影響新的節點列表,則可在生成新的節點列表 之前清空一次節點列表。
在步驟S503中,選擇調度優先度最大的節點加入節點列表中。在一個實 施例中,調度優先度計算模塊304計算得到各節點的調度優先度后,節點列表 生成模塊400則選4H周度優先度最大的節點,并將該節點對應的節點地址加入 節點列表中。對于以節點的CPU或其內核為單位進行調用的并行程序,則還 可將節點對應的CPU地址和/或其內核地址一并加入節點列表中,這里的CPU 地址可以是CPU編號或計算機名,內核地址也可以內核編號等。
在步驟S504中,判斷調度優先度最大的節點是否能達到并行程序的能力要求,若是,則執行步驟S505,否則,返回步驟S501。
在步驟S505中,根據節點列表將并行程序調度到相應節點。此時,用于 運行并行程度的節點能達到并行程序對節點的能力要求,正由于此,上述方 法可找到最適合運行該并行程序的節點,實現了超級計算機資源的合理分配, 同時提高了并行程序的運行效率。
應當說明的是,上述超級計算機的自適應調度系統及方法可使用在超級 計算機的各種并行環境中,例如MPI、 OPENMP、 HPF、 PGAS等,并可結合 PBS 、 GIOBUS等作業調度和網格技術使用。
以上所述僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本 發明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本 發明的保護范圍之內。
權利要求
1、一種超級計算機的自適應調度系統,其特征在于,包括節點信息收集模塊,用于收集超級計算機中各節點的節點信息;運算模塊,與所述節點信息收集模塊相連,根據所述節點信息以及并行程序的優先模式和對節點的能力要求,計算得到節點的調度優先度;節點列表生成模塊,與所述運算模塊相連,根據所述節點的調度優先度生成節點列表;調度模塊,與所述節點列表生成模塊相連,根據所述節點列表將并行程序調度到對應節點。
2、 根據權利要求l所述的超級計算機的自適應調度系統,其特征在于, 還包括程序設定模塊,與所述運算模塊相連,用于設定并行程序的優先模式和 對節點的能力要求。
3、 根據權利要求l所述的超級計算機的自適應調度系統,其特征在于, 所述運算模塊包括節點優先度計算模塊,用于根據所述節點信息計算得到節點的優先度信息;節點優先度選擇模塊,與所述節點優先度計算模塊相連,根據所述并行 程序的優先模式,從所述節點的優先度信息中選擇與所述優選模式對應的優 先度;符合度計算模塊,用于將所述并行程序對節點的能力要求與所述節點信 息進行對比,獲取節點對并行程序能力要求的符合度;調度優先度計算模塊,與所述符合度計算模塊相連,根據所述與優先模 式對應的優先度和所述符合度,計算得到節點的調度優先度。
4、 根據權利要求l所述的超級計算機的自適應調度系統,其特征在于, 所述調度模塊用于判斷調度優先度最大的節點是否能達到并行程序對節點的能力要求,若是,則將所述并行程序調度到該節點,否則,通知所述運算模 塊重新計算節點的調度優先度。
5、 一種超級計算機的自適應調度方法,其特征在于,所述方法包括 收集超級計算機中各節點的節點信息;獲取并行程序的優先模式及對節點的能力要求,根據所述優先模式和對節點的能力要求以及所述節點信息,計算得到節點的調度優先度;根據所述節點的調度優先度生成節點列表,以及根據所述節點列表將并 行程序調度到相應節點。
6、 根據權利要求5所述的超級計算機的自適應調度方法,其特征在于, 所述方法還包括設定并行程序的優先模式和對節點的能力要求。
7、 根據權利要求5所述的超級計算機的自適應調度方法,其特征在于, 計算節點的調度優先度的步驟包括根據所述節點信息獲取節點的優先度信息;根據所述并行程序的優先模式,從所述節點的優先度信息中選擇與所述 優先模式對應的優先度;將所述并行程序對節點的能力要求與所述節點信息進行對比,獲取節點 對并行程序能力要求的符合度;根據所述與優先模式對應的優先度和所述符合度,計算得到節點的調度 優先度。
8、 根據權利要求5所述的超級計算機的自適應調度方法,其特征在于, 根據節點的調度優先度生成節點列表的步驟包括選擇調度優先度最大的節 點,將所述節點的節點地址和/或其對應的處理器地址和/或內核地址加入所述 節點列表中。
9、 根據權利要求8所述的超級計算機的自適應調度方法,其特征在于, 根據節點的調度優先度生成節點列表的步驟還包括生成節點列表之前清空 節點列表。
10、根據權利要求5所述的超級計算機的自適應調度方法,其特征在于, 根據節點列表將并行程度調度到對應節點的步驟包括根據所述調度優先度 最大的節點的節點信息,判斷所述節點信息是否能達到并行程序對節點的能 力要求,若是,則將所述并行程序調度到該節點,否則,重新計算各節點的 調度優先度。
全文摘要
本發明提供了一種超級計算機的自適應調度系統及方法。所述方法包括收集超級計算機中各節點的節點信息;獲取并行程序的優先模式及對節點的能力要求,根據所述優先模式和對節點的能力要求以及所述節點信息,計算得到節點的調度優先度;根據所述節點的調度優先度生成節點列表,以及根據所述節點列表將并行程序調度到相應節點。采用本發明提供的超級計算機的自適應調度系統及方法,能合理分配超級計算機的資源,從而提高了并行程序的運行效率。
文檔編號G06F9/50GK101539872SQ200910106868
公開日2009年9月23日 申請日期2009年4月23日 優先權日2009年4月23日
發明者朱定局 申請人:深圳先進技術研究院