• 沒有找到結果。

第五章 範例

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 Ei1 Ei)的演算法,包含 演算法程序與範例。

Algorithm 2. 計算Pr(E1Λ Λ ⋅⋅⋅E2 Ei1 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,⋅⋅⋅,MRSTi1其中一條失敗,而MRST 成功運作的條件元件 i

6. CV

用來記錄條件元件結果 [1, ]

km

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,⋅⋅⋅,MRSTi1中,將與MRST 相同且工作時間大於i MRST 的元件,記i 錄下來。在這些相同元件中,依工作時間,由小到大依序排序並記錄之。滿足這 些條件的元件,稱為條件元件(能使MRST1,⋅⋅⋅,MRSTi1其中一條失敗,而MRST 成i 功運作)。

假 設 條 件 元 件 共 有 m 個 , 其 中MRST 的 元 件 j , 工 作 時 間 為i w 。 若i j,

1, 2

i i

MRST MRST 的 元 件 j 的 工 作 時 間 分 別 為 wi1,jwi2,j 均 大 於 wi j, , 且

2, 1,

i j i j

w >w 。我們使用下面的圖 11.來幫助說明

j

wi, j

wi1,

j

wi2,

圖 11. MRST ,i MRSTi1,MRSTi2的元件 j 的工作時間

完 成MRST ,i MRSTi1MRSTi2 運 作 的 元 件 j 的 個 別 工 作 時 間 分 別 為

, , 1,

i j i j

w wwi2,j。因為MRST 是成功運作的,因此在i w 這段工作時間內,元件i j, j 是成功運作的。而在(wi1,jwi j, )這段時間內,元件 j 有可能運作失敗而導致

1

MRSTiMRSTi2運作失敗。因此起始時間Tb =wi j, ,終止時間Te=wi1,j,條件 元件的可靠度R m( )=eλ( )(j TeTb)。接下來 m=m+1,而在(wi2,jwi1,j)這段時間內,

元件 j 有可能運作失敗而導致MRSTi2運作失敗。 Tb =wi1,jTe=wi2,j,依此類 推,直到求出所有 ( )R m 。

使 用 二 元 搜 尋 樹 來 搜 尋 這 些 條 件 元 件 可 以 使MRST1,⋅⋅⋅,MRSTi1失 敗 而 MRST 成 功 的 所 有 可 能 組 合 , 將 所 求 得 的 機 率 累 加 起 來 , 即 為i

1 2 1

Pr(EΛ Λ ⋅⋅⋅E Ei Ei)。

III. 執行步驟

Procedure Pr(E1Λ Λ ⋅⋅⋅E2 Ei1 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。 tOSt>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 TeTb)

CEV m[ ]←{ ,k T m T m R mb( ), e( ), ( )}

If tOSt>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, ] km

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.

相關文件