Faster Work Stealing With Return Barriers
نویسندگان
چکیده
Work-stealing is a promising approach for effectively exploiting software parallelism on parallel hardware. A programmer who uses work-stealing explicitly identifies potential parallelism and the runtime then schedules work, keeping otherwise idle hardware busy while relieving overloaded hardware of its burden. However, work-stealing comes with substantial overheads. Our prior work demonstrates that using the exception handling mechanism of modern VMs and gathering the runtime information directly from the victim’s execution stack can significantly reduce these overheads. In this paper we identify the overhead associated with managing the work-stealing related information on a victim’s execution stack. A return barrier is a mechanism for intercepting the popping of a stack frame, and thus is a powerful tool for optimizing mechanisms that involve scanning of stack state. We present the design and preliminary findings of using return barriers on a victim’s execution stack to reduce these overheads. We evaluate our design using classical work-stealing benchmarks. On these benchmarks, compared to our prior design, we are able to reduce the overheads by as much as 58%. These preliminary findings give further hope to an already promising technique of harnessing rich features of a modern VM inside a work-stealing scheduler.
منابع مشابه
Abducing memory barriers
A concurrent work-stealing algorithm is analysed to discover necessary positions for memory barriers. The analysis is targeted at the Power processor, and takes into account both instruction-execution reordering and delayed writes. Formal verifications of the effectiveness of the barriers under instructionexecution reordering are developed, and a semi-formal argument (using formal assertions wi...
متن کاملOn Optimal Strategies for Stealing Cycles in Clusters of Workstations
We study aspects of the parallel scheduling problem for a new modality of parallel computing: having one workstation “steal cycles” from another. We focus on a draconian mode of cycle-stealing, in which the owner of workstation B allows workstation A to take control of B’s processor whenever it is idle, with the promise of relinquishing control immediately upon demand. The costs for such cycle-...
متن کاملThe MuSE System: A Flexible Combination of On-Stack Execution and Work-Stealing
Executing subordinate activities by pushing return addresses on the stack is the most e cient working mode for sequential programs. It is supported by all current processors, yet in most cases is inappropriate for parallel execution of indepented threads of control. This paper describes an approach of dynamically switching between e cient on-stack execution of sequential threads and o -stack sp...
متن کاملOn Optimal Strategies for Stealing Cycles?
The growing importance of networked workstations as a computing milieu has created a new modality of parallel computing, namely, the possibility of having one workstation \steal cycles" from another. In a typical episode of cycle-stealing, the owner of workstation B allows the owner of workstation A to take control of B's processor whenever it is idle, with the promise of relinquishing control ...
متن کاملA Case for Cooperative Scheduling in X10’s Managed Runtime
In this work, we motivate the use of a cooperative runtime to address the problem of scheduling parallel tasks with general synchronization patterns. Current implementations for task-parallel programming models provide efficient support for fork-join parallelism, but are unable to efficiently support more general synchronization patterns that are important for a wide range of applications. In t...
متن کامل