第五章 範例
5.2 範例 2
假設一機構想要提供新的網格服務而需要配置 4 種資源(R1,R2,R3,R4) 在網格上,在此網格上有 6 個 accessible nodes(N1,N2,…,N6),當中包含 兩個資源管理裝置(N1,N3),可以收到使用者的要求來管理服務。此虛擬網路架
表 6. 節點的失敗率
為 0.9845,花費為 137K(NTD)。雖然可靠度低於原本約 0.003,但執行時間為 93.234 秒,節省了約 400 倍的時間。
第六章 結論
在廣域分散式系統中,網格技術是很重要的發展方向。如何在有限的預算 下,使資源有效的配置在網格系統中,讓網格服務可靠度最佳化也是很重要的問 題。本篇論文討論網格服務可靠度模型和演算法的估算,使用 GA 來有效地找出 資源最佳化配置,然後呈現了一個經由配置後,可以使網格服務可靠度最大化的 最佳化模型。再來提出了修正方法和使用 OO 來找出數筆資源配置,雖然減少了 些許的網格服務可靠度,但有效的節省工作時間。最後,使用兩個範例來說明與 比較執行結果。
附錄 A.
我們在附錄 A 中,詳細地說明如何找尋能完成服務的 MRST 的演算法,包含 演算法程序與範例。
Algorithm 1. 開始於給定的初始節點,沿著可能的連結去搜尋在其他節點 上所需的資源和紀錄搜尋路徑,直到所有所需資源被找到,MRST 即找到,紀錄 MRST。
假設圖形裡有配置好的
n
個節點,m種資源。I. 名詞解釋
1. TV (Track vector)
用來記錄 完成 MRST 的路徑。
TV = (t t1 2
L
tn)未拜訪過的節點設為 d, TV = (ddLd)
起始節點設為 0
t 拜訪其鄰近且尚未拜訪過的節點i t , j t (parent)= i t (new) j
若起始節點為t , TV = (0d1 Ld)
t 拜訪其鄰近且尚未拜訪過的節點1 t , TV=(01d2 Ld) t 拜訪其鄰近且尚未拜訪過的節點2 t , TV=(01d2d4 Ld) 依此類推。
Delete(TV) 將紀錄的 追蹤路徑 刪除掉 2. RV (Resource vector)
用來判斷是否找到 完成 MRST 所需要的資源。
RV = (r r1 2
L L
rj rm)若所需找尋的資源為
r
j則
r
j 設為 1,其餘設為 0, RV = ( 00 1 0L L ) 在拜訪節點 Vi時,檢查 Vi上是否有所需的資源r
j 。若存在
r
j ,則r
j設為 0。當 RV = (00L0),則完成 MRST 的找尋。
若不存在
r
j ,則往 Vi連接的鄰近且未拜訪過的節點尋找r
j。RV(TV) 追蹤的路徑上所搜尋到的資源。
II. 詳細描述
給定起始節點V ,更新 TV,RV,j = 0。 i
拜訪V 的所有相鄰且未拜訪過的節點i V ,a K, Ve。 記錄每條路徑且檢查是否收集到所有所需資源。
Va若收集到所需資源,則完成 MRST 的搜尋,i=i+1。
Vb若未收集到所需資源,照 Vi的方式,沿著 Vb繼續往下搜尋。
若 Vb不存在未拜訪過的相鄰節點,則搜尋失敗,此路徑無法得到 MRST。
若 i>=K 或搜尋完所有從 Vi出發的 MRST,則找到最多 K 條 MRST。
III. 執行步驟
Procedure MRST(V,E)
Step1. 輸入起始節點 Vi,求得 TV 並置入佇列。 j=0。
Step2. N =TVfront; //令佇列首的 TV 為 N Delete(TVfront); //釋放(刪除)TVfront
RV(N); //依紀錄的路徑而所得到的資源
Step3. 檢查路徑是否收集到所有所需資源
若未收集到, go to Step4。
說明:
使用者對 RN(N )要求服務(執行1 P ),執行1 P 需要資源1 R R R 來協助完成 1, 2, 3 找尋可以完成執行P 的 MRST 1
1. TV=( ddddd ), RV=( 1111 ) //將 TV,RV 初始化
2. 輸入起始節點(N ), 記錄 TV=(0dddd), 1 放入佇列(queue) //TV_queue [(0dddd)]
N=TVfront(0dddd), 刪除TVfront(0dddd) // TV_queue []
3. RV(N)=(0010),欠缺資源R 3
4. 拜訪N 的所有相鄰且未拜訪過的節點1 N N 2, 3 並依序紀錄路徑 (01ddd), (0d1dd)
依序存入佇列(queue) //TV_queue [(01ddd),
(0d1dd)]
N=TVfront(01ddd), 刪除TVfront(01ddd) // TV_queue [(0d1dd)]
5. RV(N)=(0000), 找尋到 MRST, i=1
N=TVfront(0d1dd), 刪除TVfront(0d1dd) // TV_queue []
6. RV(N)=(0010),欠缺資源R 3
7. 拜訪N 的所有相鄰且未拜訪過的節點3 N N N 2, 4, 5 並依序紀錄路徑 (031dd),(0d13d),(0d1d3)
依序存入佇列(queue) //TV_queue [(031dd),(0d13d),
(0d1d3)]
N=TVfront(031dd), 刪除TVfront(031dd) // TV_queue [(0d13d),(0d1d3)]
8. RV(N)=(0000), 找尋到 MRST, i=2
N=TVfront(0d13d), 刪除TVfront(0d13d) // TV_queue [(0d1d3)]
9. RV(N)=(0000), 找尋到 MRST, i=3
N=TVfront(0d1d3), 刪除TVfront(0d1d3) // TV_queue []
10. RV(N)=(0010),欠缺資源R 3
11. N 不存在相鄰且未拜訪過的節點 5 佇列(queue)為空,終止搜尋 MRST 12. MRST :1->2 1
MRST :1->3->2 2 MRST :1->3->4 3
附錄 B.
我們在附錄 B 中,詳細地說明如何計算Pr(E1Λ Λ ⋅⋅⋅E2 Ei−1 Ei)的演算法,包含 演算法程序與範例。
Algorithm 2. 計算Pr(E1Λ Λ ⋅⋅⋅E2 Ei−1 Ei)
I. 名詞解釋
1. EV(Element Vector)
用來記錄完成 TV 所用到的元件(節點與連結)。
EV=(e e1 2⋅⋅⋅en)
1 代表相對應的元件被包含在已搜尋過的路徑中,0 則不是。
初始值 EV= (00⋅⋅⋅ 0)
2. WV(Operating time Vector)
用來記錄相對應 EV 上每個元件所需的工作時間 WV=(w w1, 2,⋅⋅⋅,wn)
初始值 WV= (0, 0, , 0)⋅⋅⋅
3. MRSTE[ , ]j k
當找尋到 MRST 時,MRSTE=EV
4. MRSTW[ , ]j k
用來記錄相對應 MRSTE 上每個元件所需的工作時間
5. CEV(Conditional Elemt Vector )
用來記錄使MRST1,⋅⋅⋅,MRSTi−1其中一條失敗,而MRST 成功運作的條件元件 i
6. CV
用來記錄條件元件結果 [1, ]
k∈ m
CV[ ] 0k = 代表條件元件運作失敗
CV[ ] 1k = 代表條件元件運作成功
7. OV
用來記錄相對應 CV 運作結果 k∈[1, ]m
OV[ ] 0k = 代表MRST 運作失敗 k OV[ ] 1k = 代表MRST 運作成功 k
II. 詳細描述
找出所有使MRSTj (j=1, 2,⋅⋅⋅ − 失敗,而,i 1) MRST 能成功運作的條件要素。 i 經由 Algorithm 1 找出MRST後,記錄MRSTE j k 和[ , ] MRSTW j k ,[ , ] (j=1, 2,⋅⋅⋅, ;i
1, 2, , , )
k= ⋅⋅⋅ K ,其中 K 是在網格系統中,元件(節點和連結)的總數。
在MRST1,⋅⋅⋅,MRSTi−1中,將與MRST 相同且工作時間大於i MRST 的元件,記i 錄下來。在這些相同元件中,依工作時間,由小到大依序排序並記錄之。滿足這 些條件的元件,稱為條件元件(能使MRST1,⋅⋅⋅,MRSTi−1其中一條失敗,而MRST 成i 功運作)。
假 設 條 件 元 件 共 有 m 個 , 其 中MRST 的 元 件 j , 工 作 時 間 為i w 。 若i j,
1, 2
i i
MRST− MRST− 的 元 件 j 的 工 作 時 間 分 別 為 wi−1,j , wi−2,j 均 大 於 wi j, , 且
2, 1,
i j i j
w− >w− 。我們使用下面的圖 11.來幫助說明
j
wi, j
wi−1,
j
wi−2,
圖 11. MRST ,i MRSTi−1,MRSTi−2的元件 j 的工作時間
完 成MRST ,i MRSTi−1 和MRSTi−2 運 作 的 元 件 j 的 個 別 工 作 時 間 分 別 為
, , 1,
i j i j
w w− 和wi−2,j。因為MRST 是成功運作的,因此在i w 這段工作時間內,元件i j, j 是成功運作的。而在(wi−1,j −wi j, )這段時間內,元件 j 有可能運作失敗而導致
−1
MRSTi 和MRSTi−2運作失敗。因此起始時間Tb =wi j, ,終止時間Te=wi−1,j,條件 元件的可靠度R m( )=e−λ( )(j Te−Tb)。接下來 m=m+1,而在(wi−2,j −wi−1,j)這段時間內,
元件 j 有可能運作失敗而導致MRSTi−2運作失敗。 Tb =wi−1,j,Te=wi−2,j,依此類 推,直到求出所有 ( )R m 。
使 用 二 元 搜 尋 樹 來 搜 尋 這 些 條 件 元 件 可 以 使MRST1,⋅⋅⋅,MRSTi−1失 敗 而 MRST 成 功 的 所 有 可 能 組 合 , 將 所 求 得 的 機 率 累 加 起 來 , 即 為i
1 2 1
Pr(EΛ Λ ⋅⋅⋅E Ei− Ei)。
III. 執行步驟
Procedure Pr(E1Λ Λ ⋅⋅⋅E2 Ei−1 Ei)
Step1. 記錄 MRSTE[j,k]和 MRSTW[j,k] (j=1, 2,⋅⋅⋅, ;i k =1, 2, ,⋅⋅⋅,K),其中 K 是 在網格系統中,元件(節點和連結)的總數。
Step2. m=0。 k∈[1,K] // K 是在 CEV 裡,條件元件的總數 OS=(MRSTW[j,k] | (j=1, 2,⋅⋅⋅ ) , )i
//OS 是記錄MRSTj (j=1, 2,⋅⋅⋅ ,第, )i k個元件的工作時間。
Step3. n=0。 t∈OS且t>MRSTW i k[ , ]
Step4. m=m+1, n=n+1
( )T mb =t m( − // (0)1) t =MRSTW i k[ , ] ( )T me =t m( )
R m( )=e−λ( )(k Te−Tb)
CEV m[ ]←{ ,k T m T m R mb( ), e( ), ( )}
If t∈OS且t>MRSTW i k[ , ], go to Step3。 Else, go to Step5。
Step5. 將 Y,CV,OV 初始化 Y=0
CV[1,⋅⋅⋅, ] [m = dd⋅⋅⋅ d] OV[1,⋅⋅⋅ − =,i 1] [11⋅⋅⋅ 1]
1 2 1 1
Pr(EΛ Λ ⋅⋅⋅E Ei− E )=Y
Step6. BinaryTree (CV,OV,z) z=0
CV [ ]l z = CV [ ] 1,0, r z = OV [l Fail z( )]= 0 If OV[1,⋅⋅⋅ − =,i 1] [00⋅⋅⋅ 0]
Y=Y+PR(CV)
Else if CV[1,⋅⋅⋅, ] [11m = ⋅⋅⋅ 1]
Stop
Else z=z+1
Function PR(CV) 1
x= [1, ] k∈ m
If CV k[ ] 1= ( ) x= ×x R k
Else if CV k[ ]= 0 (1 ( )) x= × −x R k PR=x
IV. 範例說明
考慮一個網格系統如圖 12.所示,當中包含了四個節點和五條連結,有四種 資源配置在節點上,收集所需的資源來執行程式。表 10-12 是網格運算系統所需 的資訊。
N1
N3
N4
N2
1, 2 R R
1, 4 R R
2, 3
R R
1 P
3 R
1 P
圖 12. 四個節點的網格系統
表 10. 每個連結的速度與失敗率
0.9915
0.9778
參考文獻
[1] I. Foster, C. Kesselman and S. Tuecke, The anatomy of the grid: enabling scalable virtual organizations, Int J High Perform Comput Appl 15 (2001), pp. 200–222.
[2] S.K. Das, D.J. Harvey and R. Biswas, MinEX: a latency-tolerant dynamic partitioner for grid computing applications, Future Generat Comput Syst 18 (2002), pp. 477–489.
[3] Dai, YS, Xie M, Poh KL. Reliability analysis of grid computing systems. In: IEEE Pacific Rim international symposium on dependable computing (PRDC2002). 2002. p.
97–104.
[4] I. Foster and C. Kesselman, The grid: blueprint for a new computing infrastructure, Morgan-Kaufmann, San Francisco, CA (1998).
[5] I. Foster, C. Kesselman, J.M. Nick and S. Tuecke, Grid services for distributed system integration, Computer 35 (2002), pp. 37–46.
[6] K. Krauter, R. Buyya and M. Maheswaran, A taxonomy and survey of grid resource management systems for distributed computing, Software—Practice Experience 32 (2002), pp. 135–164.
[7] V.K.P. Kumar, S. Hariri and C.S. Raghavendra, Distributed program reliability analysis, IEEE Trans Software Eng SE-12 (1986), pp. 42–50.
[8] A. Kumar, S. Rai and D.P. Agarwal, On computer communication network reliability under program execution constraints, IEEE J Select Area Commun 6 (1988), pp.
1393–1400.
[9] D.J. Chen and T.H. Huang, Reliability analysis of distributed systems based on a fast reliability algorithm, IEEE Trans Parallel Distribute Syst 3 (1992), pp. 139–154.
[10] A. Kumar and D.P. Agrawal, A generalized algorithm for evaluating distributed-program reliability, IEEE Trans Reliab 42 (1993), pp. 416–424.
[11] D.J. Chen, R.S. Chen and T.H. Huang, A heuristic approach to generating file spanning trees for reliability analysis of distributed computing systems, Comput Math Appl 34 (1997), pp. 115–131.
[12] M.S. Lin, M.S. Chang and D.J. Chen, Efficient algorithms for reliability analysis of distributed computing systems, Inform Sci 117 (1999), pp. 89–106.
[13] M.S. Lin, M.S. Chang, D.J. Chen and K.L. Ku, The distributed program reliability analysis on ring-type topologies, Comput Oper Res 28 (2001), pp. 625–635.
[14] Y.S. Dai, M. Xie, K.L. Poh and G.Q. Liu, A study of service reliability and availability for distributed systems, Reliab Eng Syst Saf 79 (2003), pp. 103–112.
[15] M. Livny and R. Raman, High-throughput resource management, The grid: blueprint for a new computing infrastructure, Morgan-Kaufmann, San Francisco, CA (1998), pp.
311–338.
[16] M. Xie, Y.S. Dai and K.L. Poh, Computing systems reliability: models and analysis, Kluwer Academic Publishers, New York (2004).
[17] B. Yang and M. Xie, A study of operational and testing reliability in software reliability analysis, Reliab Eng Syst Saf 70 (2000), pp. 323–329.
[18] C.D. Lai, M. Xie, K.L. Poh, Y.S. Dai and P. Yang, A model for availability analysis of distributed software/hardware systems, Inform Software Technol 44 (2002), pp.
343–350.
[19] Y. S. Dai and X. L. Wang, “Optimal resource allocation on grid systems for maximizing service reliability using a genetic algorithm,” Reliability Engineering and System Safety, vol. 91, no. 9, pp. 1071–1082,2006.
[20] A. Kumar, R. Pathak and Y. Gupta, Genetic algorithm-based reliability optimization for computer network expansion, IEEE Trans Reliab 44 (1995), pp. 63–72.
[21] D. Coit and A. Smith, Reliability optimization of series-parallel systems using genetic algorithm, IEEE Trans Reliab 45 (1996), pp. 254–266.
[22] Z. Yangping, Z. Bingquan and W. Dongxin, Application of genetic algorithm to fault diagnosis in nuclear power plants, Reliab Eng Syst Saf 67 (2000), pp. 153–160.
[23] M. Marseguerra, E. Zio and M. Cipollone, Designing optimal degradation tests via multi-objective genetic algorithms, Reliab Eng Syst Saf 79 (2003), pp. 87–94.
[24] G. Levitin, Y.S. Dai, M. Xie and K.L. Poh, Optimizing survivability of multi-state systems with multi-level protection by multi-processor genetic algorithm, Reliab Eng Syst Saf 82 (2003), pp. 93–104.