With the end of Dennard scaling, the main way to continue improving raw processor performance is to increase the number of cores per processor. Taking advantage of multiple cores is, however, a programming challenge. In this extended abstract, we describe our approach to eliminating one significant source of overhead, the cost of initiating and controlling multiple threads of control. More important than improving performance, this would allow programmers to write parallel programs without having to expend effort on fine-tuning the grain-size of parallel tasks, without having to subvert transparent synchronization patterns, and without having to worry about data-dependent task sizes. It would also better support performance portability to more cores.
Our goal is for programmers to express all the parallelism in the program. When parallelism is not needed, it should introduce no overhead. When it is needed (either because of data dependencies or to keep the cores busy), it should require as little overhead as possible. In other words, programs should pay the price for parallelism only when it is needed.
Program Display Configuration
Tue 2 Mar
Displayed time zone: Eastern Time (US & Canada)change