3 ms·
Data locality is everything for computational throughput. Having all data private to a single core is extraordinarily efficient compared to sharing data, and pa
by jandrewrogers 6y ago
Data locality is everything for computational throughput. Having all data private to a single core is extraordinarily efficient compared to sharing data, and particularly mutable data, across cores.
This creates a new problem: how do you balance load across cores? What if the workload is not evenly distributed across the data held by each core? Real workloads are like this! Fortunately, over the last decade, architectures and techniques for dynamic cross-core load shedding have become smooth and efficient while introducing negligible additional inter-core coordination. At this point, it is a mature way of designing extremely high throughput software.
- anonymousDan 6y agoCan you point to any references/resources summarizing the latest cross-core dynamic load shedding techniques? Are they old techniques just now being applied in practice, or has something new been proposed?
- electricshampo1 6y agoI don't know about latest; but try look at Scheduling Parallel Programs by Work Stealing with Private Deques https://hal.inria.fr/file/index/docid/863028/filename/full.pdf https://hal.inria.fr/file/index/docid/863028/filename/full.p...
- cwalv 6y agoI'd like to learn more about the architectures and techniques developed over the last decade for this; can you recommend a few links or keywords to search?