I don't know much about pining threads (or workers) to cores but there's an interesting tutorial presented in PPoPP11 in favor of having such an option.
For the moment, Intel Cilk Plus does not support pinning. There are a couple of issues that need to be worked out.
- Is this application sharing processor resources with other applications?
- If this application is sharing the processor, what happens when other threads get scheduled on the cores we're running on?
- How do we expose this feature to users?
For now, we don't have good answers to these questions, so we haven't supported pinning.
I've done some experimentswithmixed results from pinning. It definitely helps if you can keep the worker threads on the same processor. But if you want more worker threads than will fit on your chip, how do you choose? If you're not using a dedicated machine, the mix of threads on any given processor is changning constantly.