http:// www.diachiweb.com Ta thấy đối với ánh xạ và thứ tự thì thời gian tính toán là hằng .Do vậy tổng dộ phức tạp của giải thuật GCLP ở mổi bước là O(N+A).gi thuật chạy N lần vậy tổng thời gian là O(N.(N+A)).kiểu mẩu cho ứng dụng DSP thì A»N như vậy độ phức tạp xấu nhất của giải thuật GCLP là O(N 2 ) 3.Phân tích độ phức tạp cuả giải thuật Bin selection procedure Độ phức tạp của giải thuật được tính toán như sau: COMPLEXITY(BIN SELECTION) S1.Tính toán BFC(Bin Selection Curve):O(B*(N+A)) S1.1.Cho mỗi BIN tính toán BIN FRACTION:O(N+A) S1.1.1.Lượng giá những node di chuyển đến L bin S1.1.2.Tính toán thời gian hoàn thành chính xác công nhận ánh xạ này và lựa chọn bin S2.Tính toán độ nhạy bin:O(B) S3.Tính trọng cuả độ nhạy bin:O(B) S4.Lựa chọn bin Sự tính toán BIN FRACTION trong bước S1.1 thì tương tự như sự tính toán trong GC.Ở đây độ phức tạp của giả thuật BIN FRACTION cho một BIN đặt biệt là O(N+A).Độ phức tạp của bước S1 ở đây là O(B*(N+A)) cho B implementation bin.Độ phức tạp của những bước khác thì đơn giản là thứ tự của số bin.Vậy độ phức tạp của giải thuật ở đây là:O(B.(N+A)). 4.Phân tích độ phức tạp của giải thuật MIBS(Mapping and Bin Seclection) Giải thuật MIBS áp dụng GCLP lựa chọn bin N lần cho tất cả những node trên graph.Độ phức tạp của những bước nhỏ được tính toán như sau: COMPLEXITY(MIBS) S1.Xác đònh ánh xạ cho tất cả các các node free bằng cách chạy GCLP:O(N 2 ). S2.Xác đònh những node sẳn sàng:O(N) S3.Chọn node tagged :O(N). S4.Tính toán hiện thực BIN cho node tagged sử dụng giải thuật BIN SELECTION :O(B*(N+A)) Độ phức tạp của mổi bước cuả giải thuật là:O(N 2 +B.N).Mỗi bước lập lại N lần cho N node .Vậy độ phức tạp của giải thuật là:O(N 3 +B*N 2 ) 5. Giải thuật phát sinh DAG ngẫu nhiên : Procedure Generate_random_Graph /* phát sinh thông số cho DAG */ Input : kích thước của đồ thò N Output : Đồ thò lặp vòng trực tiếp , các cạnh không song song S1 . a= random_int(N,N 2 ) (số cung ) S2 . phát sinh hoán vò ngẫu nhiên 1 N trong dãy “perm” S21 .for(i=0;i<N;i++) {perm[i]=i} S22. For(i=0;i<N;i++){ S221.j=random_int(0,N-1); S222.tmp=perm[i] S223.perm[i]=perm[j]; S224. Perm[j]=tmp; } http:// www.diachiweb.com S3 phát sinh cạng A từ (perm[i],perm[j]),i<j For(i=0;i<A;i++){ Src=ramdom_int(0,N-2); Dest=random_int(src+1,N-1); If(!existsarc(src,dest)) add_arc(src,dest); } S4 phát sinh thông tin bên trong cho mỗi node i :size i ,ts i .th i ,as i ,ah i . S41. Xác đònh nếu node i là extremity node ,repeller node hay normal node S411.y=ran1(); S412. If((y>=0)&&(y<0.33)) i:extremity node S413. If((y>=0.33)&&(y<0.66)) i:repeller node S414. If((y>=0.66)&&(y<1)) i:normal node S42. Thiết lập không gian và thời gian cho node i ; S5.phát sinh những ràng buộc :T,AH,AS S51.T=random_int(sum_th,sum_ts); S52.AH=random_int(ah_low,ah_high); S53.AS=random_int(as_low,as_high); Procedure Generate_extremity_node Input :ts min ,as min ,th min ,ah min , ts max ,as max , th max , ah max ,cutoff threshold Output : ts, th ,ah, as S1.tính toán giá trò threshold ts th ,as th , th th ,ah th (ví dụ :ts th =ts min + cutoff* (ts max –ts min )) S2 tính toán giá trò extremity max ,min S21. xs max =ts max /ah min S22. xs min =ts th /ah th S23.xh max = ah max /ts min S24.xh min =ah th /ts th S25.delta h =xh max –xh min S26.delta s =xs max –xs min S3 xác đònh nếu node là hardware extremity hay software extremity S31.z=ran1(); S32.if(z,0.5) hardware_extremity ;else software_extremity ; S4.phát sinh đo lường extremity trong khoảng (0,0.5); S5.if hardware extremity S51.ah=random_int(ah th ,ah max ); S52.ts=ah/((2*delta h *ex) +xh min ); S53.as=random_int(as min ,as th ); S54.th=random_int(th min ,th th ); S6.if software extremity : S61.ts=random_int(ts th ,ts max ); S62.ah=ts/((2*delta s *ex) +xs min ); S63.as=random_int(as min ,as th ); S64.th=random_int(th min ,th th ); Procedure Generate_repeller_node Output: ts,th, as,ah; http:// www.diachiweb.com S1.phát sinh dãy giá trò TS,TH S2.xác đònh nếu node là software repeller hay hardware repeller S21.z=ran1(); S22if(z<0.5) hardware repeller ;else software repeller ; S3.phát sinh đo lường repeller trong khoảng (0,0.5)(r=ran(0,0.5)) S4.if software repeller : S41.ts=TS[random_int(0,5)]; S42.as=ts/2; S43.ah=(1-r)*as; S44.th=(1+ran1())*ah; S5. If hardware repeller : S51.th=TH[random_int(0,5)]; S52.ah=ah/2; S53.as=(1-r)*ah; S54.ts=(1+ran1())*th; Procedure Generate_normal_node Output ts,th , ah , as S1.ts= random_int(ts min , ts th ) S2.as= ts/2 S3.th=ts/random_int(1,4) S4.ah=th/2; 2.1 Một số thông số ban đầu : · Một DAG gồm : N : tập node A :tập cung · D :thời gian giới hạn khi thực thi · AS :Dung lượng bộ nhớ,kích thước software không được vượt quá AS · AH :Không gian cho phép của hardware ,tổng không gian của các node hardware không vượt quá AH . · ah comm :Không gian hardware yêu cầu truyền nhận dữ liệu . · as comm :Không gian software yêu cầu để truyền nhận dữ liệu . · t comm :Số chu kỳ yêu cầu cho truyền dữ liệu . Trở về trang chủ 2.2 Phân chia nhò phân (binary partitioning) : Vấn đề phân chia nhò phân (P1) :Cho trước một DAG ,lượng giá không gian ,thời gian các node ánh xạ sang hardware ,software ,giá thông tin truyền nhận ,thời gian giới hạn thực thi D. Mi là ánh xạ node i sang hardware hay software ,t I là thời gian bắt đầu của một node ,kết quả cho được tổng không gian hardware là nhỏ nhất. Số trạng thái lớn nhất là O(2 |N| ) Vấn đề ánh xạ sang hardware ,software và sắp xếp thứ tự có thể thành công thức như một chương trình tuyến tính (ILP :integer linear program) và được giải quyềt một cách chính xác ,nhưng những công thức nầy khó đúng cho những ứng dụng có kích thước vừa phải .Một số heuristic cho phép gi quyết những khác nhau cuả vấn đề nầy · Giải thuật phân chia nhò phân :GCLP Algorithm http:// www.diachiweb.com 2.2.1 Cơ sở giải thuật : Cơ sở thứ tự khung công việc trong giải thuật GCLP dựa vào thứ tự duyệt qua một lượt các node từ node nguồn ,với mỗi node chọn ánh xạ mà nó làm nhỏ nhất mục tiêu . P1 có các mục tiêu :thời gian hoàn thành của node là nhỏ nhất (tổng thời gian bắt đầu và thời gian thực thi ) hay là không gian nhỏ nhất của mỗi node (không gian hardware hay kích thước của software ).Vấn đề đạt được các mục tiêu nầy có tính tương đối . Giải thuật GCLP nó lựa chọn và chuyển đổi mục tiêu ở mổi bước để xác đònh ánh xạ và trình tự GC Glocal (time) Criticality measure D Local phase delta 1.GC (Global criticality) :là sự đo lường trước mà nó lượng giá thời gian giới hạn ở mỗi bước của giải thuật .GC sosánh với ngưỡng để xác đònh nếu thời gian là tới hạn .Nếu thời gian là tới hạn , mục tiêu nhiệm vụ là thời gian hoàn thành nhỏ nhất được chọn ,nếu không thì không gian nhỏ nhất được chọn .GC có thể thay đổi ở mỗi bước của giải thuật . 2.Pha cục bộ (local phase):LP là một sự phân loại của những node trên cơ sở tính đồng nhất và thuộc tính bên trong của chúng .Mỗi node được phân loại như extremity (pha 1),hay repeller (pha 2), hay normal (pha 3).Một sự đo lường gọi là delta pha cục bộ xác đònh số lượng ánh xạ cục bộ thích hợp của node để ý đến sự thay đổi ngưỡng được dùng trong so sánh GC .Lưu đồ giải thuật như sau : Obj1 y Min(finish time) n Obj2 Min(% resource consumed ) threshole 0.5 >? + http:// www.diachiweb.com N U =N , N M =Þ i |N| times no Compute GC Identify local phase And compute delta Select mapping Mi find Start time Ti N M {I}, N U =N U \ {I} Update (T remaining ) NU =Þ? Select node among ready nodes Select objective http:// www.diachiweb.com {M i ,t i } (hình 3) Giải thuật GCLP N là tập nodes của DAG . N U là tập nodes chưa được ánh xạ được tính lại tại mỗi vòng lặp . N M là tập nodes được ánh xạ . N U ban đầu được gán là N. N M ban đầu được gán là rổng . Mỗi vòng lặp sẽ ánh xạ một node ,bước đầu tiên của mỗi vòng lặp thời gian giới hạn chung GC được tính toán lại trên cơ sở yêu cầu giới hạn của những node đã được ánh xạ và chưa được ánh xạ .Quá trình được lặp N lần cho đến khi không còn node nào chưa được ánh xạ . 2.2.2 :Giới hạn chung GC : GC là sự đo lường trước mà nó lượng giá thời gian giới hạn ở mỗi bước của giải thuật . Để hiểu vấn đề nầy ta xét ví dụ sau : D H u (a1) u s s N M :những nodes được ánh xạ {1,2,3}. N U :những nodes chưa được ánh xạ {4,5} S:software ,h:hardware .D thời gian giới hạn chung . (a2) Hardware times 1 3 5 4 2 1 3 2 http:// www.diachiweb.com Software T rem D · T rem :thời gian còn lại (remaining time) N S à H b) Hardware times Software T rem D Ts · Ts thời gian chạy của node được ánh xạ sang software N S->H là tập của những node được ánh xạ chuyển từ software sang hardware do vượt quá thời gian giới hạn D . (c) Hardware times Software Th T rem D Hình 4 · T h :thời gian hoàn thành nếu node chuyển từ software sang hardware và được ánh xạ sang hardware å size I i Ỵ N s->H GC= 0<= GC <=1 å size I i Ỵ N u Ở mỗi bước các node đang chuẩn bò được ánh xạ sang hardware hay software .Sử dụng trình tự nầy vàø thời gian giới hạn D ,để đầu tiên xác đònh Trem.Bước tiếp theo tất cả các node chưa 1 3 2 4 5 1 3 2 4 5 http:// www.diachiweb.com được ánh xạ (node 4 và node 5 trong ví dụ ) sẽ được ánh xạ sang software ,lúc nầy thời gian Ts sẽ được tính toán .Giả sử rằng Ts vượt qua giới hạn D.Một số node trong tập node chưa được ánh xạ phải di chuyển từ software sang hardware để thỏa mãn nhỏ hơn giới hạn D .Những node nầy tạo thành tập N S->H (trong ví dụ tập nầy là {5} ).Lúc nầy thời gian hoàn thành Th được tính toán lại .Trong giải thuật GC tại một bước nào đó có thể có nhiều node chưa được ánh xạ và cần phải ánh xạ sang hardware vì vậy phải tìm kết quả khả thi ,(thời gian như là tài nguyên đang bò tranh chấp ). Giải thuật tính toán GC : Procedure Compute_GC ; Input :N M ,N U ,D ,t si ,t hi .size I ,với mọi I thuộc N; Output GC S1 :tìm tập N S->H của những node chưa được ánh xạ mà có thể chuyển tư software sang hardware để thỏa mãn giới hạn D; S11 Lưạ chọn những node trong N U ,dùng ưu tiên Pf di chuyển từ software sang hardware . S12 Tính toán thời gian Thiết kế trên cơ sở node trong tập N S->H được ánh xạ sang hardware S13 Nếu Th > D quay lại S11 å size I iỴN s->H S2 GC= 0<= GC <=1 å size I iỴN u Trong S11 tập những node được chọn di chuyển sang hardware trên độ ưu tiên pf .một cách rõ ràng pf là những node nầy được sắp xếp theo thứ tự giảm dần của ts I (thời gian thực thi bằng software .Một khả năng thứ hai là sử dụng tỉ số (ts i /th I ) để xếp thứ tự ưu tiên các node .Điều nầy cho kết quả tốt nhất về thời gian khi di chuyển sang hardware .Khả năng thứ ba là sắp xếp các node theo chiều tăng của ah I ,những node có không gian hardware nhỏ hơn sẽ được di chuyển khỏi software đầu tiên .Kinh nghiệm chỉ ra rằng tỉ số (ts i /th I ) cho kết quả tốt nhất . S12 được xác đònh hoặc di chuyển node trong tập N s->h đến hardware để thỏa mãn T H .thời gian hoàn thành là O(|A| + |N|) GC được tính toán trong S2 là tỉ số của tổng kích thước của những node trong tập N s->H và tổng kích thước trong tập N u .kích thước của node được xem như số các phép toán nguyên tố (cộng ,nhân,…) trong node .Mỗi node được đại diện bởi kích thước của nó từ những node có thể không đồng nhất trong tổng thể . GC đo lường thời gian giới hạn chung .GC có thể giải thích bằng một cách khác : nó đo lường khả năng (nói đơn giản) là bất cứ node không ánh xạ thì ánh xạ sang hardware .khả năng nầy có thể thay đổi ở mỗi bước của giải thuật . 2.2.3 Pha cục bộ (Local phase) : GC là một đo lường trung bình trên tất cả những node chưa ánh xạ ở mỗi bước .Điều nầy làm giảm tính chính xác đến thuộc tính cục bộ của node đang được ánh xạ .Để nhấn mạnh đặc http:// www.diachiweb.com trưng cục bộ của những node , người ta chia làm 3 loại : extremities (gọi là local phase 1) , repellers (gọi là local phase 2) , normal (gọi là local phase 3). 2.2.3.1 Local phase 1 (extremity nodes ) Những node sử dụng nhiều tài nguyên không cân đối khi ánh xạ so với ánh xạ khác được gọi là extremities .Chẳng hạn như một hardware extremity yêu cầu không gian rộng lớn khi ánh xạ sang hardware nhưng có thể hiện thực bằng software với giá không đắt .Việc ánh xạ thích hợp của những node như vậy được xác đònh bởi extremity measure , làm thay đổi ngưởng dùng trong sosánh GC . Một hardware extremity node là node sử dụng không gian lớn trong hardware , nhưng thời gian trong software tương đối nhỏ . Một software extremity node là node sử dụng nhiều thời gian trong software nhưng sử dụng không gian nhỏ khi ánh xạ sang hardware . Việc di chuyển hardware extremity node sang software extremity node hay ngược lại là rõ ràng cần thiết . Sự chênh lệch trong sử dụng tài nguyên của extremity node I được xác đònh bởi extremity measure E I .extremity measure được sử dụng để thay đổi ngưỡng đưa vào so sánh với GC khi lựa chọn mục tiêu ánh xạ .E I là local phase delta trong hình phần trước . EXTREMITY MEASURE : Procedure Compute_Extremity_measure Input ts I ,ah I ,"iỴ N ,tỉ lệ a,b, Output E I , , " i Ỵ N ,-0.5 <= E I <=0.5 S1 tính toán biểu đồ của tất cả các node chú ý đến thời gian thực thi software(ts I ) và không gian hardware (ah I ) . S2 xác đònh ts( a ), và ah( b ) đáp ứng từ tỉ lệ a và b của t s và a h được chú ý trong biểu đồ . S3 phân loại node vào tập software extremity node (EX s ) và hardware extremity node (EX h ) chú ý : If (ts I >=ts( a ) and ah I <ah( b )) ,i Ỵ EX s If (ah I >= ah( b ) and ts I <ts( a ) ,i Ỵ EX h S4 xác đònh giá trò extremity x I cho node I : If i Ỵ EX s then Ts i /ts max ,x I = ah i /ah max else ah i /ah max x I = Ts i /ts max Trong đó :ts max =max i { ts i } và ah max =max i { ah i } S5 thứ tự những node trong EX s (EH h ) cho bởi x .Trong đó giá tri extremity lớn nhất và giá trò extremity nhỏ nhất là xs max (xh max ) và xs min (xh min ) S6 tính toán extremity measure E I cho node I : http:// www.diachiweb.com If iỴ EX s then x I -xs min E I = -0.5 * ,-0.5 <=E I <=0; xs max -xs min else if iỴEX h then x I -xh min E I = -0.5 * ,0<=E I <=0.5; xh max -xh min Trong s1 tính toán phân phối những node chú ý đến thời gian thực thi software ts I và không gian hardware ah I .thông số a và b đại diện cho tỉ lệ giới hạn của những phân phối nầy. Chẳng hạn như trong S3 một node I được phân loại như là software extremity node , nếu nó vượt tỉ lệ a trong biểu đồ ts (ts I >ts( a )) và dưới tỉ lệ b trong biểu đồ ah (ah I <ah( b )) .Tương tự một node I được phân loại như hardware extremity nếu nó nằm trên tỉ lệ b trong biểu đồ ah (ah I >ah(b)) và dưới tỉ lệ a trong biểu đồ ts (ts I <ts (a)). hình 5 sau trình bày các loại biểu đồ và nhận ra các extremities .Ví dụ ta xem xét giá trò a và b nằm trong khoảng (0.5 ,0.75) được sử dụng . EX h EX s Số node trên ts a Cận trên a ts( a ) ts Số node trên ah b Cận trên b ah( b ) ah . random_int(N,N 2 ) (số cung ) S2 . phát sinh hoán vò ngẫu nhiên 1 N trong dãy “perm” S21 .for(i=0;i<N;i++) {perm[i]=i} S 22. For(i=0;i<N;i++){ S 221 .j=random_int(0,N-1); S 222 .tmp=perm[i] S 223 .perm[i]=perm[j];. thi software( ts I ) và không gian hardware (ah I ) . S2 xác đònh ts( a ), và ah( b ) đáp ứng từ tỉ lệ a và b của t s và a h được chú ý trong biểu đồ . S3 phân loại node vào tập software. S1.phát sinh dãy giá trò TS,TH S2.xác đònh nếu node là software repeller hay hardware repeller S21.z=ran1(); S22if(z<0.5) hardware repeller ;else software repeller ; S3.phát sinh đo