Sammanfoga Sortera

sammanfoga Sortera parallelliserar väl på grund av användningen av divide-and-conquer-metoden. Flera olika parallella varianter av algoritmen har utvecklats under åren. Några parallella sammanfogningsalgoritmer är starkt relaterade till den sekventiella top-down-sammanfogningsalgoritmen medan andra har en annan allmän struktur och använder k-way-sammanfogningsmetoden.

sammanfoga Sortera med parallell rekursionedit

Sekventiell sammanfogning sorteringsförfarandet kan beskrivas i två faser, delningsfasen och sammanfogningsfasen., Den första består av många rekursiva samtal som upprepade gånger utför samma delningsprocess tills de efterföljanden är trivialt sorterade (innehållande ett eller inget element). Ett intuitivt tillvägagångssätt är parallelliseringen av de rekursiva samtalen. Följande pseudokod beskriver sammanslagningssorteringen med parallell rekursion med gaffeln och gå med i nyckelord:

denna algoritm är den triviala modifieringen av den sekventiella versionen och parallelliserar inte bra. Därför är dess speedup inte särskilt imponerande., Den har ett intervall på Θ (n ) {\displaystyle \Theta ( n)} , vilket bara är en förbättring av Θ (log n ) {\displaystyle \Theta (\log n)} jämfört med den sekventiella versionen (se Introduktion till algoritmer). Detta beror främst på den sekventiella sammanfogningsmetoden, eftersom det är flaskhalsen hos de parallella avrättningarna.

sammanfoga Sortera med parallell sammanslagning

Huvudartikel: sammanfoga algoritm § parallell sammanslagning

bättre parallellitet kan uppnås genom att använda en parallell sammanfogningsalgoritm. Cormen et al. presentera en binär variant som sammanfogar två sorterade delsekvenser till en sorterad utmatningssekvens.,

i en av sekvenserna (ju längre en om ojämn längd) väljs elementet i mittindexet. Dess position i den andra sekvensen bestäms på ett sådant sätt att denna sekvens skulle förbli sorterad om detta element infogades i denna position. Således vet man hur många andra element från båda sekvenserna är mindre och positionen för det valda elementet i utmatningssekvensen kan beräknas. För de partiella sekvenserna av de mindre och större elementen som skapas på detta sätt exekveras kopplingsalgoritmen igen parallellt tills basfallet för rekursionen uppnås.,

följande pseudokod visar den modifierade sorteringsmetoden för parallellkoppling med hjälp av parallellkopplingsalgoritmen (antagen från Cormen et al.).

för att analysera en återkommande relation för det värsta fall span, rekursiva samtal av parallelMergesort måste införlivas endast en gång på grund av deras parallella utförande, erhålla

För detaljerad information om komplexiteten i den parallella sammanfogningsproceduren, se Sammanfogningsalgoritm.,

lösningen av denna upprepning ges av

t sortering = Θ ( log (n) 3) {\textstyle t_ {\infty } ^{\text{sort}}=\Theta \ left (\log (n)^{3} \ right)}.

Parallel multiway merge sortEdit

det verkar godtyckligt att begränsa sorteringsalgoritmerna för sammanfogning till en binär sammanfogningsmetod, eftersom det vanligtvis finns p > 2 processorer tillgängliga. Ett bättre tillvägagångssätt kan vara att använda en k-vägs sammanfogningsmetod, en generalisering av binär sammanfogning, där k {\displaystyle K} sorterade sekvenser slås samman., Denna sammanfogningsvariant är väl lämpad för att beskriva en sorteringsalgoritm på en barnvagn.

grundläggande IdeaEdit

parallell multiway sammanfogar processen på fyra processorer t 0 {\displaystyle t_{0}} till t 3 {\displaystyle t_{3}} .

multisequence selectionEdit

PseudocodeEdit

nedan ges den fullständiga pseudokoden för den parallella multiway merge sorteringsalgoritmen., Vi antar att det finns en barriärsynkronisering före och efter multisequence-valet så att varje processor kan bestämma splittringselementen och sekvenspartitionen ordentligt.

AnalysisEdit

praktisk anpassning och applicationEdit

multiway merge sorteringsalgoritmen är mycket skalbar genom sin höga parallelliseringskapacitet, vilket möjliggör användning av många processorer. Detta gör algoritmen en livskraftig kandidat för att sortera stora mängder data, såsom de som behandlas i datorkluster., Eftersom minnet i sådana system vanligtvis inte är en begränsande resurs är nackdelen med rymd komplexitet av sammanslagningssortering försumbar. Andra faktorer blir emellertid viktiga i sådana system, som inte beaktas vid modellering på en barnvagn. Här måste följande aspekter beaktas: Minneshierarki, när data inte passar in i processorns cache eller kommunikationsöverhead för att utbyta data mellan processorer, vilket kan bli en flaskhals när data inte längre kan nås via det delade minnet.

Sanders et al., har i sitt papper presenterat en bulk synkron parallell algoritm för multilevel multiway mergesort ,som delar p {\displaystyle P} processorer i r {\displaystyle r} grupper av storlek p ’{\displaystyle P’}. Alla processorer sorterar lokalt först. Till skillnad från single level multiway mergesort delas dessa sekvenser sedan in i r {\displaystyle r} – delar och tilldelas lämpliga processorgrupper. Dessa steg upprepas rekursivt i dessa grupper. Detta minskar kommunikationen och undviker särskilt problem med många små meddelanden., Den hierarkiska strukturen i det underliggande verkliga nätverket kan användas för att definiera processorgrupperna (t.ex. rack, kluster,…).

ytterligare VariantsEdit

Merge sort var en av de första sorteringsalgoritmerna där optimal hastighet uppnåddes, med Richard Cole med hjälp av en smart subsampling algoritm för att säkerställa o(1) sammanfoga. Andra sofistikerade parallella sorteringsalgoritmer kan uppnå samma eller bättre tidsgränser med en lägre konstant., Till exempel, 1991 David Befogenheter beskrivs en parallelized quicksort (och relaterade radix sort) som kan fungera i O(log n) tid på en CRCW parallella random-access-maskin (BARNVAGN) med n processorer genom att utföra partitionering implicit. Powers visar vidare att en pipelinerad version av Batchers Bitoniska sammanslagningar vid O ((log n)2) tid på ett fjärilsorteringsnät är i praktiken faktiskt snabbare än hans o(log n) sorterar på en barnvagn, och han ger detaljerad diskussion om de dolda omkostnaderna i jämförelse, radix och parallell sortering.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

Hoppa till verktygsfältet