Jumbler: A lock-contention aware thread scheduler for multi-core parallel machines

Uzair Bin Nisar, Muhammad Aleem, Muhammad Azhar Iqbal, Nguyen‐Son Vo · 2017

On a cache-coherent multi-core multi-processor parallel machine, the execution time of a multi-threaded application with high-lock contention is immensely sensitive to the distribution of application-threads across multiple processors. Improper mapping of threads results in loss of performance due to the frequency of lock transfers between sockets. With increased transfer of lock object among different processors, a large number of last-level cache misses occur. The increase in last-level cache misses negatively affects program execution. Operating system's thread-schedulers are unaware of lock contention and therefore the default execution results in loss of performance especially in the application employing high lock-contention. To mitigate the problem, we propose a novel-scheduling technique as an extension of an existing work called shuffling. Our proposed scheduler migrates and maps the threads of a multi-threaded application across sockets so that the lock-contention threads are mapped on the same socket. The threads mapped together (employing the same lock) yield low number of last-level cache misses. We experiment with the proposed scheduler on a system having 2 sockets with 4 cores each and evaluate it using multithreaded parallel benchmarks. The experiments show that our algorithm achieves reduction in execution time up to 986.7%. Moreover, our algorithm does not require any changes to the application source-code or the operating system kernel.

Read the paper · More papers on PaperTik