Att stjäla arbete har visat sig vara en effektiv metod för att schemalägga parallella program på flerkärniga datorer. För att uppnå hög prestanda fördelar stöld av arbete uppgifter mellan samtidiga köer, så kallade deques, som tilldelas varje processor. Varje processor fungerar på sin deque lokalt utom när du utför lastbalansering via stjäls. Tyvärr, samtidiga deques lider av två begränsningar: 1) lokala deque operationer kräver dyra minnesstängsel i moderna svaga minnesarkitekturer, 2) de kan vara mycket svårt att utöka för att stödja olika optimeringar och flexibla former av uppgift distributionsstrategier som behövs många tillämpningar, t.ex., de som inte passar fint in i split-and-conquer, nästad data parallell paradigm. Av dessa skäl har det funnits ett stort intresse för implementeringar av arbete stjäla med icke-koncurrent deques, där deques förblir helt privat till varje processor och lastbalansering utförs via meddelande passerar. Privata deques eliminerar behovet av minnesstängsel från lokal verksamhet och gör det möjligt att utforma och implementera effektiva tekniker för att minska aktivitetsskapande overheads och förbättra uppgiftsfördelningen. Dessa fördelar kommer emellertid på bekostnad av kommunikationen. Det är inte känt om arbete som stjäl med privata deques åtnjuter de teoretiska garantierna för samtidiga deques och om de kan vara effektiva i praktiken. I denna uppsats föreslår vi två arbetsstjälande algoritmer med privata deques och bevisar att algoritmerna garanterar liknande teoretiska gränser som arbete stjäla med samtidiga deques. För analysen använder vi en probabilistisk modell och överväger en ny parameter, beräkningsdjupets förgreningsdjup. Vi presenterar en implementering av algoritmen som ett C++-bibliotek och visar att den kan jämföras väl med Cilk på en rad riktmärken. Eftersom vår strategi bygger på privata deques, möjliggör det att genomföra flexibla strategier för skapande och distribution av uppgifter. Som ett specifikt exempel, visar vi hur man genomför uppgiften sammansmältning och stjäla-halv strategier, som kan vara viktigt i finkornig, icke-delad-och-konquer algoritmer såsom graf algoritmer, och tillämpa dem på djup-första-sök problemet.
I vårt genomförande använder vi ett arbete som stjäl algoritmer baserade på privata deques REF ].
Scheduling parallel programs by work stealing with private deques
{'venue': "PPoPP '13", 'journal': None, 'mag_field_of_study': ['Computer Science']}