UDispatch+: A User Dispatching tool with automatic binding

In multicore environment, multithreading is often used to improve application performance. However, there are some unexpected anomalies which degrade the performance of multithreading applications. Some of the unexpected anomalies come from inappropriate thread dispatching by operating system. To solve this problem, a novel User Dispatching Mechanism (UDispatch) was proposed. Through modification of application source codes with the UDispatch application programming interface (API), the application performance can be improved significantly. However, most of the time, the application source codes are not available, or it might not be suitable to do the modification of source codes. Therefore, we provide another tool to dispatch threads without any modification of application source codes, called User Dispatching Plus (UDispatch+). It can bind the application threads automatically and dispatch to specific cores at the discretion of users. We experiment UDispatch+ on multithreading multimedia applications. The results show that a more parallelized skip-line application can speed up to 171.8% on a 4-core machine, and a more dependent optimized H.264/AVC decoder can speed up to 20.1% on a 4-core machine.