bài tập môn xử lý song song

20 293 2
bài tập môn xử lý song song

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Bài 1.1 n ca kin trúc máy tính tun t ca von Neuman - Máy tính Von Neumann là h tht b x lý. - Không cho phép thc hin nhiu công vic cùng mt lúc. - Ti mi thm, máy tính ch thc hic mt phép toán nên khi phi x lý mt khng d liu rt ln thì s mt rt nhiu th gii quyt. - T x lý ca các b x lý theo kin tin ti gii hn, không th ci tic. c xây dng t các kh : - B nh  d liu; -  logic và s hc: thc hic ký hiu là ALU; - Các phn t x u khin CU và truyn d liu vào/ra; - ng truyn d liu. S khác nhau chính ca các máy tính là s liên kt gia các khi nhau. Trong các h thng máy tính truyn thng có hai khi quan trng nht là b nh và BXL. BXL thao tác trên các d li trong b nh thông qua các ch th (câu lnh). Các câu l nh c chuyn t b nh t thc hin. D liu di chuyn trong h thng theo c hai chic và ghi vào b nh. Hình 1-1 mô t hong ca mô hình máy tính kiu von Neumann M rng mô hình von Newmann là mi nút là mt máy tính có th c lp v khác. Mng máy tính có th t cha lý. 1.2: Các kin trúc máy tính có th c phân lo nào? da vào nhng yu t  phân loi? Mt h th c gi là máy tính song song? Kin trúc máy tính nghiên cu cách t ch liên kt các thành phn ca các h thng máy tính. V c xây dng t các kh  B nh (Memory):   d liu trong quá trình x lý d liu.  logic và s hc (ALU): Nhm thc hin các phép toán logic và phép toán s hc. Khu khin (CU): u khin và truyn d liu vào/ra. ng truyn d liu (BUS). Da vào kin trúc trên thì có nhi phân loi các ki cách thông dng nht là dc tính v s ng b x lý (BXL), s  thc hing thi, cu trúc b nh B nh B x lý Ghi d liu c d liu Câu lnh 2 Cách phân lo    c nhi i chp nhn:  ng lng d liu là loi máy tính ch có mt CPU,  mi thm ch thc hin một lệnh và ch c hoc ghi một mục dữ liệu.  ng lng d liu là loi máy tính có nhiều đơn vị xử lý thc hin theo một luồng các câu lệnh. CPU phát sinh tín hiu khin tt c các phn t x lý, nhng b x lý này cùng thc hin mt phép toán trên các mc d lii b x lý có lung d liu riêng.  ng lng d liu là loi máy tính có th thc hin nhiều chương trình (nhiều lệnh) trên cùng một mục dữ liệu. Loc chia thành hai lp: o Lp các máy tính yêu cu nh x lý khác nhau có th nhc nhng ch l thc hin trên cùng mt mc d liu. o Lp các máy tính có các lung d lic chuyn tun t theo dãy các CPU liên tip. CU 1 Phn t x lý 2 Lung lnh 1 Phn t x lý n Phn t x lý 1 . . . CU 2 CU n . . . Lung lnh 2 Lung lnh n Lung d liu  u khin (CU) Phn t x lý 1 Tín hiu u khin Phn t x lý n Phn t x lý 2 . . . Tín hiu u khin  u khin B nh BXL s hc Lung lnh Lung d liu Lung kt qu Tín hiu u khin 3  MIMD ng lng d liu là loi máy tính đa bộ xử lýi b x lý có th thc hin nhng lung lcác luồng dữ liệu riêng. Mt h thng có th u thành các bài toán con nh  thc hin (gii quyng thng hp các kt qu  các bài toán  c kt qu cu. H thc gi là máy tính song song. Vi khái niy thì ta thy hai loi kin trúc máy tính SIMD và MIMD có th  Câu 1.4: Máy tính kiu MIMD khác vi m nào? MIMD Mng các máy tính  x i b x lý có th thc hin nhng lung l trên các lung d liu riêng. + i li vi nhau + Có b nh  truy cp vào c b nh chung (global) khi cn, do vy gim thic s i gia các BXL trong h thng. + B nh riêng a ch o chung + Ma ch riêng + X lý phân tán trên mt s c lp + X lý phân tán trên các máy +Mc lp và có th thc hin ng thi vi nhau. + Mi máy trong mc lp và có th thc hing thi vi nhau + Mi BXL chy m + Mi máy chy m CU 1 Phn t x lý 2 Lung lnh 1 Phn t x lý n Phn t x lý 1 . . . CU 2 CU n . . . Lung lnh 2 Lung lnh n Lung d liu 1 Lung d liu 2 Lung d liu n 4 Bài 1.5 Nêu nguyên lý x lý theo hình ng. Nhng bài toán có nhng tính cht gì thì thích hp vi kin trúc x lý hình ng? Nguyên lý hình ng (pipelined) dn hoc chia nh mt tin trình tính toán thành mt s n nh  thc hin trong các pha liên tip. Tt c n ca mt tic thc hin tun t, khi thc hin xong thì bu thc hin ca tin trình tip theo. Mi pha thc hin xong s truyn kt qu cho pha tip theo. y, trong cách thc hin theo nguyên lý hình ng, khi mn công vi thc hin thì mn khác có th np d liu vào, và d liu vào cn này có th là kt qu cc nó. Ví d, hình 1-10 mô t mt tin thc hin tun t,  thc hin song song theo nguyên lý hình   tính toán khi phi thc hin nhiu ti. Mt tin: Thc hin tun t hai tin trình phn: Thc hin theo hình ng hai tin trình trên ch cn tri qua 5 gin: Hình 1-10: Thc hin tun t và hình ng ca hai tin trình gn Nu ký hiu S i là thi gian cn thi thc hin th i thì: Tng thi gian tính toán tun t là: 2 * (S 1 + S 2 + S 3 + S 4 ) Tng thi gian tính toán hình ng là: S 1 + S 2 + S 3 + S 4 + S 4 Nguyên lý hình ng có th áp dng theo hai mc:  Hình  s hc:  s hc t chc thành mc thc hin theo nguyên lý hình ng (hình (a)).  Hình  câu lnh:  u khin và t chc theo hình ng (hình (b)). Hình 1-11: (a) X lý hình ng theo ALU, (b) X lý hình ng theo CU Pha 1 Pha 2 Pha 3 Pha 4 Pha 1 Pha 2 Pha 3 Pha 4 Pha 1 Pha 2 Pha 3 Pha 4 Pha 1 Pha 2 Pha 3 Pha 4 Pha 1 Pha 2 Pha 3 Pha 4 CU ALU ALU . . . ALU B nh CU . . . CU CU ALU B nh 5 t, vic x lý theo hình ng c s d thc hin gu nhiu pha thc hin các câu lnh liên tip và s truyn thông d liu. Do vy có th xây dng hình ng vòng tròn gia các BXL, b nh và mng liên kt  Các phép toán thc hin bi CU theo kin trúc này có th n: c d liu: c d liu t b nh chia s. n 2. Chuyn ti d liu: chuyn d liu t b nh ti các phn t x lý PE thông qua mc (Read Network). n 3. Thc hin câu lnh: s d thc hin các câu lnh. n 4. Chuyn ti d liu: chuyn các kt qu t các PE ti b nh thông qua mng ghi (Write Network).  d liu : ghi li các kt qu vào b nh chia s. Nói chung, nguyên lý hình ng cho phép nhiu thao tác gu nhau thc hing thi và h tr  c kh a kin trúc song song theo các mc khác nhau.  Mc câu lnh. Tng câu lnh chuyn vào cho mn trong chu trình thc hin nh vào hình ng thì chúng s thc hin lp li theo tng chu k.  Mc h thng con. Nhiu phép toán có th thc hin theo hình    ng có trong nhiu kin trúc ca máy tính. Nhng phép c s dng theo hình ng rng xuyên.  Mc h thng. Nhin trong hình ng không cn phi thc hin  mc phn cng mà có th  mc phn mm. Kt qu nguyên lý hình c ng d thit k nhiu h  CDC STAR 100, Texas Instruments ASC, Cray 1, v.v. Bài 1.7. Mt công vic chia thành m công vic con, mi công vi hi m th thc hin. Hi c th h hình ng gm m-b x lý tuyn tính (gm m pha thc hin) thc hic nhim v cho c? Cách 1: Theo kin trúc ca b x lý hình ng m b x lý tuyn tính thì vi nhim v c chia thành m công viy s m th thc hin. Cách 2: Gi s có n công vic vi mt công vic chia thành m công vic con, mi công vic coi m th thc hin. Nu x lý theo kiu tun t thì m thi gian x lý. Nu S dng nguyên lý hình ng mt m+n - thi gian x lý. Write Network Shared Memory Shared Memory Read Network 6 Nu mt công vic chia thành m công vic con, mi công vii mt  th thc hin thì c thi gian x lý. Bài 2.1 Nêu nhng v cn quan tâm khi thit k kin trúc máy tính song song  S dng tp nhiu thanh ghi: s làm gim hiu ng ph ca các thanh ngt  S dng không gian nh ln: làm gim hiu ng ph ca s i chu qu i d liu ca h thng.  Lp lch cho BXL: v là xây dng b lch cp phát hu hiu các BXL cho tng nhim v  mng dng yêu cu.  ng b các BXL: u khin nhiu tin trình hong thi, cùng truy cp n mt s hu hn các tài nguyên chung, ví d  nhm bc s tc nghn (deadlock)  Thit k cu hình mng liên kt: tp trung vào vic kt ni BXL vi BXL, BXL vi b nh trong h thng. Cu hình tôpô ca mng kt ni là v rt quan trng trong thit k h thng song song.  n: nh m song song trong các thu c các lung x ng thi. S n có th thc hin  nhiu mc khác nhau: mc lnh, mc th tc, hoc m  m bo tin cy: v dung th lm bo nu có mt BXL c hic thì công vic mà nó phm nhim s c giao cho BXL khác thc hi m bo trong mi tình hu công vic chung vn c hoàn thành. Bài 2.2: B nh kt hp là gì? nêu nguyên lý hng ca b nh kt hp. B nh (Memory) là mt trong nhng thành phn quan trng nht ca kin trúc máy tính John von Neumann. B nh kt hp (AM  Associative Memory) bao gm các ô nh (gi là cell) và logic kt hp. Mi ô nh c Các đầu vào của mỗi ô nhớ bao gồm:  i s a. s k q a R/W m Kt qu i sánh Chn Khóa i s c/Ghi Cấu trúc của ô nhớ AM 7  c/ghi R/W nhng cn thc hin.  Bit khóa k.  Bit la chn s  nh ô nh thích hp cho vic thc hic/ghi. Hai kết quả ở đầu ra bao gồm:  i sánh m ch ra d li nh c vi s a hay không.  Bit ra kt qu q. Nguyên lý hong ca b nh kt hp: Tt c các b nh kt hc t chc thành các t (wordc xây dng thành mng các ô gi mt b nh kt hp có n t và mi t có m bit. Mi ô trong s m*n ô nh có mt mch vòng  i s vi giá tr r trong các ô nhng thi ch ra kt qu i sánh thành công. H th      i s, m    u nhng ng ca mi t mà b nh ci sánh) ch ra nhng t tìm thy. Argument Register Mask Register Buffer Register  Output Input Input 0 1 . . m-1 Tags Mask Register 0 1 n-1 Cấu trúc của bộ nhớ kết hợp 8 Bài 2.4: Da mng liên kt hình kh xây dng cu trúc tôpô cho mng liên kt hình khi cho 16 b x lý. Câu 2.7 Xây dng mng liên kt theo mô hình xáo trn hoàn ho cho 16 phn t 3.1nh s ph thuc d liu ca các lnh trong chu trình sau: Do i = 1 to N e[i] = x[i]  z[i] (S1) a[i+1] = e[i] + 2*d[i] (S2) a[i] = e[i] (S3) end  DEF(S1)   : ph thuc dòng d liu gia câu lnh S1 và S2.  DEF(S1)   ): ph thuc dòng d liu gia câu lnh S1 và S3.  USE(S2)   : ph thuc d liu vào gia lnh S2 và S3 0 3 2 1 5 4 6 7 P 0000 P 0001 P 0011 P 0111 P 0110 P 0010 P 0100 P 0101 8 11 10 9 13 12 14 15 P 1000 P 1001 P 1011 P 1111 P 1110 P 1010 P 1100 P 1101 9 T  th ph thuc d li Câu 3.2   ni dung tính toán hay không? Hãy bình lun v kh c hin song song c 1. Do i = 1 to N a[i] = a[i + 1] + i end 2. Do i = N downto 1 a[i] = a[i + 1] + i end -  ni dung tính toán vì Chu trình 1 : giá tr phn t mng th i bng giá tr phn t mng th i + 1 cng vi ch s  phn t mng th i + 1 không b  Chu trình 2 : Giá tr phn t mng th i bng giá tr phn t mng th i + 1 cng vi ch s  phn t mng th   - Chu trình 1 có th thc hic vì Chu trình 1 làm nhim v sao tt c các phn t ca mt mng sang chính m vi ch s git và giá tr ca mc cng thêm giá tr chính bng ch s mng, i thc hin tun t. Nu hai mng ngun ca chu trình trên là khác nhau thì bng cách to ra mt bn sao ca mng g 1.1. Do i = 1 to N a1[i] = a[i]; end Do i = 1 to N a[i] = a1[i + 1] + i ; end c hai chu trình trên là kh song song. Nu chúng ta có N b x lý thì ch c v thi gian ca CPU là thc hic chu trình trên. - Chu trình 2 không th thc hin song song vì 10 Chu trình 2 có th khai trin thành a[N] = a[N + 1] + N; a[N  1] = a[N] + N  1;  a[i] = a[i + 1] + i  a[j] = a[j + 1] + j (gi s i > j)  kim tra s ph thuc ca các lnh trên chúng ta tính DEF và USE USE(i) = {a[i + 1]} DEF(i) = {a[i]} USE(j) = {a[j + 1]} DEF(j) = {a[j]} Ta nói rng vòng lp th i và th j là ph thuc dòng d liu, nu DEF(i) và USE(j) có cha bin chung. Trong chu trình trên, hai tp DEF(i) = {a[i]} và USE(j) = {a[j + 1]} có cha phn t chung khi i = j + 1. Theo gi thic tri trình i = j + 1 có vô s nghi kt lun chu trình 2 không th thc hin song song. Câu 3.3 : nh tt c các s ph thuc d li int a[MAX]; read(a); for(i = 0; i < N; i++) for(j = 0; j < i; j++){ S1: a[i] = max(a[i], a[j]); S2: a[j] = min(a[i], a[j]); }  nh khai báo mng a và lc d liu vào cho m Tuy nhiên hai lnh này không n s ph thuc d liu nên ta ch n các lnh gán  hai chu trình lng nhau theo các bin i và j. DEF(S 1 ) = {a[i]}, USE(S 1 ) = {a[i], a[j]} DEF(S 2 ) = {a[j]}, USE(S 2 ) = {a[i], a[j]} Ta có các ph thuc d liu sau : DEF(S 1 )  USE(S 2  suy ra S 1 và S 2 ph thuc dòng d liu. DEF(S 2 )  USE(S 1  suy ra S 1 và S 2 phn ph thuc d liu. [...]... hiện song song tính z[i] được mà ta chỉ có thể thực hiện song song các bước tính tổng như sau: Int z[100],j; z[0] = 0; For(j=1; j . create_process(2); Switch(id){ Case 1: *tong += z[j-1]*z[j-1]*z[j-1]; Break; 16 Case 2: *tong += (c-1)*z[j-1]; Break; Case 3: *tong += -c; Break; } Join_process(3,id); z[j] = *tong;. + (c-1)z i  c  0 = 0, c là s phnh t cm nh. n t: z[0] = 0; For (int j=1; j<=n; j++) { z[j] = z[j-1]*z[j-1]*z[j-1] + (c-1)*z[j-1]. z[j] = z[j-1]*z[j-1]*z[j-1] + (c-1)*z[j-1]  c; } + Nhn xét: Ta thy muc z[i] thì phi bit z[i-1], muc z[i-1] thì phi bit z[i-c là có s phn ph thuc d

Ngày đăng: 02/06/2015, 16:14

Tài liệu cùng người dùng

Tài liệu liên quan