A Portable and Efficient User Dispatching Mechanism for Multicore Systems
Date Issued
2009
Date
2009
Author(s)
Tu, Tang-Hsun
Abstract
In multicore environment, using multiple threads is a common useful approach to improve application performance. Nevertheless, even in many simple applications, the performance might degrade when the number of threads increases. Users usually impute this phenomenon to the overhead of creation or termination of threads. However, in our observation, the more significant effect is the dispatching of threads. We discuss the problems on using threads, and present a novel User Dispatching Mechanism (UDispatch) that provides controllability in user space to improve application performance. Since user threads cannot directly control system resources, a virtual device is adopted between user space and operating system for portability and efficiency instead of adding new system calls through kernel modification. We provide an application programming interface (API) for users to manipulate UDispatch through modification of application source codes. To avoid source code modification, a command-line UDispatch Loader (UDLoader) is also provided to help users bind threads to specific cores directly. We implement UDispatch on two multimedia applications of multi-threading. The results show that a skip-line application speeds up to 171.8% and 111.6% on a 4-core machine and an 8-core machine, respectively, and an optimized H.264/AVC decoder speeds up to 20.1% on a 4-core machine.
Subjects
Threading
Scheduling
Dispatching
Anomaly
Multicore
System Call
Virtual Device
Loader
Type
thesis
File(s)![Thumbnail Image]()
Loading...
Name
ntu-98-R96944013-1.pdf
Size
23.32 KB
Format
Adobe PDF
Checksum
(MD5):704ade1bc43232f428cfcae0b8f3cd6f
