Key points are not available for this paper at this time.
La cinquième version du langage multithread Cilk utilise un algorithme de planification "work-stealing" prouvablement performant, similaire au premier système, mais le langage a été entièrement repensé et le système d'exécution complètement reengineering. L'efficacité de la nouvelle implémentation a été facilitée par une stratégie claire issue d'une analyse théorique de l'algorithme de planification : se concentrer sur la minimisation des surcoûts qui contribuent au travail, même au détriment des surcoûts qui contribuent au chemin critique. Bien qu'il puisse sembler contre-intuitif de déplacer des surcoûts sur le chemin critique, ce principe "work-first" a conduit à une implémentation portable de Cilk-5 dans laquelle le coût typique du lancement d'un thread parallèle est seulement entre 2 et 6 fois le coût d'un appel de fonction C sur une variété de machines contemporaines. De nombreux programmes Cilk s'exécutent sur un processeur avec pratiquement aucune dégradation par rapport à des programmes C équivalents. Cet article décrit comment le principe du "work-first" a été exploité dans la conception du compilateur de Cilk-5 et de son système d'exécution. En particulier, nous présentons la nouvelle stratégie de compilation "two-clone" de Cilk-5 et son protocole d'exclusion mutuelle de type Dijkstra pour implémenter la deque prête dans le planificateur work-stealing.
Frigo et al. (Fri,) ont étudié cette question.