AKULA: A Toolset for Experimenting and Developing Thread Placement Algorithms on Multicore Systems
Multi-core processors have become commonplace in both desktop and servers. A serious challenge with multi-core processors is that cores share on and off chip resources such as caches, memory buses, and memory controllers. Competition for these shared resources between threads running on different cores can result in severe and unpredictable performance degradations. It has been shown in previous work that the OS scheduler can be made shared-resource-aware and can greatly reduce the negative effects of resource contention. The search space of potential scheduling algorithms is huge considering the diversity of available multi-core architectures, an almost in nite set of potential workloads, and a variety of conflicting performance goals.