Den femte utgåvan av det flertrådiga språket Cilk använder en bevisligen bra "work-stealing" schemaläggningsalgoritm som liknar det första systemet, men språket har helt omdesignats och runtime systemet helt omkonstruerat. Effektiviteten i det nya genomförandet underlättades av en tydlig strategi som härrörde från en teoretisk analys av schemaläggningsalgoritmen: koncentrera dig på att minimera overheads som bidrar till arbetet, även på bekostnad av overheads som bidrar till den kritiska vägen. Även om det kan verka kontraintuitivt att flytta overheads på den kritiska vägen, har denna "arbete-första" princip lett till en bärbar Cilk-5 genomförande där den typiska kostnaden för att leka en parallell tråd är bara mellan 2 och 6 gånger kostnaden för en C-funktion kräver en mängd olika moderna maskiner. Många Cilk program körs på en processor med praktiskt taget ingen nedbrytning jämfört med motsvarande C-program. I detta dokument beskrivs hur den första arbetsprincipen utnyttjades vid utformningen av Cilk-5:s kompilator och dess körtidssystem. Framför allt presenterar vi Cilk-5:s nya "tvåklon"-sammanställningsstrategi och dess Dijkstra-liknande ömsesidigt uteslutande protokoll för att genomföra den färdiga deque i arbets-stjälkning schemaläggaren.
Denna algoritm användes i Cilk-5 flertrådigt språk REF ].
The implementation of the Cilk-5 multithreaded language
{'venue': "PLDI '98", 'journal': None, 'mag_field_of_study': ['Computer Science']}