Professional Documents
Culture Documents
chia s d liu gia chng. May mn thay, nhiu phng php cho php cc nh
pht trin tp trung vo mc cao hn ca thit k ng dng v li cc
c ch qun l ch v chia s d liu vi thi gian chy cc th vin v cc
trnh bin dch. Trong mt trng hp l tng, trnh bin dch qun l tt c mi
th, t vic xc cc b phn ca cc m chy song song thng qua vic cung
cp cc c ch h tr song song . Tuy nhin, nu khng c s gip t cc
nh pht trin, cng ngh trnh bin dch hin ti s him khi c th khai thc tt
c cc x l song song trong mt ng dng. Vic m rng ngn ng thng dng
nht v thng c sn cho x l song song l OpenMP API.
Cc c im k thut OpenMP nh ngha mt API cho php cc nh pht trin
thm ch th m ni tip ca h s gy ra cc trnh bin dch sn xut
mt phin bn song song ca cc ng dng. Chng ny m t c hai song song
t ng c cung cp bi nhiu trnh bin dch v lm th no cc API OpenMP
c th sn xut cc ng dng song song t cc m s serial.
S dng song song t ng sn xut mt ng dng song song.
Hu ht cc trnh bin dch c th thc hin mt s mc song song t ng.
Trong mt th gii l tng, song song t ng s ch l mt ti u ha trnh bin
dch, nhng hin ti c nhng hn ch ng k vo nhng g c th t c.
y l ndoubtedly mt khu vc m s ci thin trong thi gian. Tuy nhin, trong
nhiu trng hp, n c th h tr cc trnh bin dch trong vic a ra cc m
song song.
Trong phn ny, chng ta s khm ph nhng kh nng ca c Oracle Solaris
Studio v Intel trnh bin dch thc hin song song t ng. Cng nh kh
nng thc hin song song t ng, n cng quan trng cho cc trnh bin dch
c th cung cp thng tin phn hi trn cc phn ca m c song song v
nhng g c ch song song ca cc khu vc khc ca m.
Trnh bin dch hin ti ch c th t ng parallelize vng. Loops l mt mc tiu
rt tt cho song song bi v chng thng c nhc i nhc li, v vy cc khi
m do s tch ly thi gian ng k. Nh tho lun trc , bt k khu vc
song song phi thc hin cc cng vic quan trng vt qua bt k chi ph m
phi gnh chu song song.
Trnh bin dch Solaris Studio C s dng l c xautopar cho php t ng song
song v c xloopinfo bo co thng tin v mc song song c. Bng lit
k 7.2 cho thy kt qu bin dch on m ny.
Bng lit k 7.6 cho thy kt qu ca bin dch m ny vi trnh bin dch Solaris
Studio.
Trnh bin dch khng cng nhn mt trong cc vng lp for nh vng m c th
c song song. L do cho iu ny l kh nng kh rng ca gia cc ca hng
ra [i] v cc gi tr c s dng xc nh cc vng rng buc, * hng * v
col. Mt yu cu trnh bin dch t ng parallelize vng lp l cc gii hn
vng lp phi duy tr lin tc. Mt ca hng cho mt trong nhng ranh gii vng
lp s vi phm hn ch . V vy, n khng phi l mt hnh thc ca vng lp
c th c t ng song song. L mt lp trnh, n s l bt thng vit m
m da vo cc ca hng cc phn t trong mng thay i ranh gii vng lp,
nhng i vi cc trnh bin dch, cc gi nh an ton duy nht l nhng sc
mnh b danh.
Cch mc ch chung nht ca sa cha ny l t cc gii hn vng lp thnh
cc bin cc b tm thi. iu ny loi b kh nng rng cc gii hn vng lp
sc b danh vi mt trong cc ca hng trong vng lp. i vi cc m trong Lit
k 7.5, n rt d dng thc hin cc thay i tng ng v vt qua cc
gii hn vng lp theo gi tr ch khng chuyn chng nh con tr n cc gi
tr. Bng lit k 7.7 cho thy cc vng lp sa i
Lit k 7.8 cho thy sn lng t cc trnh bin dch khi bin th mi ca m l
bin son.
Trnh bin dch Solaris Studio to ra hai phin bn ca vng lp, mt phin bn
song song v mt phin bn ni tip. Khi chy, cc trnh bin dch s xc nh
xem s lng chuyn i ca vng lp l cao cho cc phin bn song song
chy nhanh hn so vi cc phin bn ni tip.
Trnh bin dch bo co rng cc vng lp dng 8 trong Lit k 7.9 c mt s
ph thuc khng an ton, ng l do cho quyt nh ny s c tho lun trong
phn tip theo, "Xc nh v Gim parallelizing."
Trong hai vng trong cc m, cc trnh bin dch song song qu trnh vng ngoi
nhng khng phi cc vng trong. y l quyt nh tt nht lm cho hiu
sut. Cc ch thc hin cc cng vic cn song song ng b ha mt khi
cng vic hon thnh song song. Nu cc vng ngoi l song song, sau cc
ch cn phi ng b ha ch mt ln cc vng ngoi hon tt. Nu cc
vng trong c thc hin song song, sau cc ch s phi ng b ha
mi ln mt ln lp ca vng lp bn ngoi hon thnh. S lng cc s kin
ng b ha s bng vi s ln m cc vng ngoi l iterated.Hence, l hiu
qu hn lm cho cc vng ngoi song song
Xc nh v parallelizing Gim
Khi mt vng lp lm gim mt s lng ln cc d liu xung mt tp hp nh
hn cc gi tr, cc hot ng c gi l gim. Cc v d in hnh ca vic
gim c tnh tng ca mt dy s, nh th hin trong Lit k 7.11.
Cc u ra trnh bin dch cho thy rng n cng nhn cc vng trong dng 8
v khng khai bo n mt ph thuc khng an ton. Thay vo , vng lp c
bo co l khng c li parallelize. y l hnh vi d kin; nh chng ta
tho lun trc y, l hiu qu hn nhiu parallelize cc vng ngoi v ri
khi vng lp bn trong nh m ni tip.
Gim c hin din nhiu m, v n thng thch hp parallelize h min
l cc nh pht trin l nhn thc c rng iu ny c th gy ra mt s khc
bit trong kt qu to ra.
T ng song song ca cc Codes Cha cuc gi.
Chng ti tho lun v tc ng n hiu sut ca cc cuc gi n cc thi
quen khc trong Chng 2, "M ha cho hiu sut." Vn c bn vi chc nng
gi khc l trnh bin dch khng c tng nhng g thng thng m c th
lm-n c th thay i d liu ton cu hoc c l khng bao gi quay tr li. V
l do ny, mt vng lp cha cc cuc gi chc nng c th khng, ni chung,
c t ng song song.
R rng, s hn ch ny c th ngn cn mt s lng ln cc vng m nu
khng c th c song song mt cch an ton. Ni hin nhin nht, ni y s
l mt vn s c ku gi cc hm ton hc. Hn ch ny c th c chng
minh bng cch s dng phin bn sa i ca m ma trn vector t Lit k 7.9.
Listing 7.13 hin th m ny c sa i.
Trnh bin dch Solaris Studio coi sin () l mt "xy dng trong chc nng", nhng
v
mt nh pht trin c th cung cp mt thc hin thay th hoc c th xen vo
cc cuc gi chc nng, n khng nhn cc cuc gi tr khi c bo lm nh
vy. L c cho php nhn c xy dng trong cc chc nng c xbuiltin.
Khi c ny c cung cp, sn lng t cc trnh bin dch c hin th trong
Lit k 7.15.
dch cung cp thng tin v song song n c thc hin. Listing 7.23 cho thy
sn lng ca bin dch v chy chng trnh ny. Mi mt trong hai ch thc
hin cc khu vc song song v in ra .
Tuy nhin, song song lng nhau rt phc tp, do , cuc tho lun chi tit
c tri vi cc vn bn chuyn v ch ca OpenMP.
S dng OpenMP cho ng xc nh nhim v song song
Cc c im k thut OpenMP 3,0 gii thiu nhim v. Mt nhim v l
mt khi m s c
thc hin ti mt s im trong tng lai bng mt trong nhng i bng
ca ch . Mi ln ch th nhim v l gp phi trong thi gian chy, mt nhim
v mi c to ra v thm vo danh sch cc cng vic hy vng s hon thnh.
C s ny cho php OpenMP gii quyt nhiu vn m trc y ch c th
c gii quyt bng cch s dng thanh lch . Nh mt v d, n c th
towrite mt phin bn ca my ch ting vng t Chng 5, "S dng POSIX
Threads," s dng nhim v OpenMP. V d ny kt hp song song gia cc vng,
phn song song, v song song lng nhau, cng vi ng dng tasks.The song
song s dng cc phn song song bt u c mt khch hng v mt si li
xe.
Listing 7.38 cho thy m ngun lm iu ny. Code ny s dng song
song lng nhau, v vy iu ny cn phi c kch hot mt cch r rng bng
cch gi OMP b lng vo nhau () vi mt gi tr khc. Phn song song r rng
yu cu hai ch bng cch s dng cc ch num (2) khon. Lu rng
thc hin chnh xc, m da trn vic c t nht hai CPU o. Nu ang chy trn
mt h thng ch vi mt CPU o duy nht, m s khng hot ng chnh xc bi
v n s b tr hon trong khi thc hin cc echothread () m v s khng bao gi
c c thc hin cc driverthread ().
Listing 7.60 cho thy nh hng ca s thay i ny trong lch trnh. Nng
ng, lp k hoch gy ra hai ch lm vic vi cc kch thc on mc
nh ca mt s lp li duy nht, do , hai ch lun phin thc hin lp i lp
li
Hai dng khc cho thy cc hot ng ca hai ch . Ngi u cho thy
thread ch hot ng trong ton b thi gian chy, nh l c mong i
ca cc m hnh thc hin OpenMP. Cc ch th hai l hot ng ch trong 8,5
giy u tin ca chy. iu ny khng nh rng t l ngi ngho l v mt s
phn phi khng ng u v cng tc gia hai ch .
N rt d dng hiu c s mt cn bng khi lng cng vic ny
xut pht t khi thc t hnh nh ang c tnh ton c xem. Hnh 7.2 cho
thy nhng hnh nh ang c computed.One c tnh ton mt na
tri, khc na bn phi. i vi mt s lng ln cc thepoints, mu en trong
hnh nh, n ch mt mt vi ln lp xc nh thepoint khng phi l trong
b ny. Tuy nhin, n c gii hn ti a v s ln lp xc nh rng mt im
l, hoc c th l, trong tp; nhng im ny c mu trng.
Cc khu vc c t mu en trong hnh chp tng i vi ln lp v tnh
ton mt cch nhanh chng. Cc khu vc c t mu trng mt nhiu ln lp li
v do mt mt thi gian tnh ton. So snh hai na tri v bn phi ca
hnh nh, n l r rng rng na bn phi cha cc im nh mu en hn mt
na tri. iu ny c ngha thatthe tnh ton mt na bn phi s mt t thi
gian hn vi thread tnh ton mt na tri. y l ngun gc ca s mt cn
bng khi lng cng vic gia hai ch . Sa cha cc s mt cn bng khi
lng cng vic tng i d dng v n ch l mt vn thay i mnh lch
trnh cho m song song. D lch trnh nng ng hoc c hng dn Ould c
s dng. Listing 7.67 cho thy m sa i s dng lp lch nng ng
Listing 7.68 cho thy cc nhn rng kt qu t m ny. Vi lch trnh nng
ng,cng vic c phn b u trn cc ch , dn n tng hiu sut gn
nh tuyn tnh nh s lng cc tng.
tm lc
Chng ny tho lun lm th no cc trnh bin dch c th kch hot
song song hoc l t ng hoc bng cch thm ch th OpenMP vo m ngun.
By gi bn cn phi lm quen vi nhng gii hn song song t ng v cc vn
in hnh trong cc m ngun lm gim kh nng ca trnh bin dch t
ng parallelize m. Bn cng s c th xc nh v khc phc nhng vn
ny, dn n m vi ci tin rng.