Anda di halaman 1dari 4

Lesson13MergeSortNotes

MergeSortAnimations

ComparatorNetworks

Sortingnetwork:afixednetworkthatsortsitinputsusingacomparator.
Apluscomparatorputsthesmallerinputonthetopoutput(min(x,y))
Aminuscomparatorputsthelargerinputonthetopoutput(max(x,y))

Acircuitwith3comparatorswillhaveadepthof3.

Question:Supposeyoureonlyallowedtouseplusorminuscomparators,isthereawaytosort
threeelementsusingfewercomparatorsorthathasashortercriticalpath?

Sort4Values
Question:Basedonthecircuitshown,eliminatethelasttwocomparators.Willthecircuitsort
anyorderofinputs?

BitonicSequences

Thefirststepinthesortingcircuitresultsinthefirsthalfincreasingandthesecondhalf
decreasing.ThisiscalledaBITONICSequence.

Doyouhaveabitonicsequence?

Asequenceisbitonicifitgoesup,thendown.

(a
,a
,,a
)isbitonicif.
0
1
n1

a
a
a
anda
0
1
i
i+1 a
n1

Thebitonicsequenceisinitiallynondecreasing,thennonincreasing.Thisconditionmayhold
fortheinitialsequenceorforacircularshiftofthesequence.

BitonicSplits

Onceasequenceisbitonicitiseasytosort.

Tosplit:
1. splitthesequenceintotwoparts,onethatincreasesandonethatdecreases.
2. pairtheelementsineachpart.Beginwith(a
,a
).
0
n/2
3. Nowtaketheminimumofeachpair.min(a
,a
),etc.
0
n/2
4. Theseminimumswillformanewbitonicsubsequence.

5. Nowlookatthemaximumsofeachpair.max(a
,a
),etc.
0
n/2
6. Themaximumswillalsoformabitonicsubsequence.

Thisisabitonicsplit.

Inabitonicsplitallelementsofthemaxsubsequencearegreaterthanallelementsofthemin
subsequence.

Thiswillleadtoadivideandconquerscheme.
Thesplitcanbedonewithoutextrastorage.

Sotheresultofabitonicsplitonabitonicsequenceistwobitonicsequences.

BitonicSplits:AParallelScheme
AbitonicsplitcanbeviewedasaDAGofindependentcomparators.
Thiswillleadtothefollowingparallelscheme:

Asubtlepoint:thefixedsizecircuithasaconstantdepthorspan.

BitonicMerge
Givenabitonicsequence,ifyouperformthemaximumnumberofbitonicsplitsonit,youwill
achieveabitonicmerge.meaningthebitonicsequenceisnowsortedinorder.

Thebitonicmergepseudocode:

BitonicMergeNetwork
Abitonicmergeisasequenceofsplits.Asequenceofsplitsisasetofmin/maxpairs.
Comparethecircuitwiththepseudocode.

GenerateaBitonicSequence
Tocreateamoregenericbitonicsequencenetwork:
1. Useplusandminuscomparators
2. Thefirstsetofcomparatorsiscreatingaseriesofupdownpairs.
3. Thiswillmakethefirstfourelementsofaneightitemsequencebitonic.
4. Itwillalsomakethesecondfourelementsbitonic.
5. Nowturnoneintoanincreasingsubsequenceandtheotherintoadecreasing
subsequence.

Insummarytocreateabitonicsequence:
1. startwithanarbitraryinput.
2. runplus/minusbitonicmergesofsize2.
3. runplus/minusbitonicmergesofsize4.
4. continueuntildone.

Conclusion:
Thebitonicmergehasafixedregularstructurethatlendsitselftoanaturalimplementationwith
aprogrammablegatearray,etc.

ItalsomeansitwillmapwelltofixeddataparallelhardwarelikeSIMD,etc.

Thedownsideis.itisNOTworkoptimal.Sotradeoffswillhavetobemade.

Anda mungkin juga menyukai