Increase the concurrency for multi-core systems through collision array based workload assignment
Zhou He, Linda S. Powers, Janet Meiling Roveda · 2014
Simply upgrading to multi-core systems has been proven to provide only minor speedup compared with single core systems. However, because multi-core systems use shared memory, the bottleneck for speedup lies in the memory I/O. The only way to fully utilize multiple cores is to increase parallelism and concurrency. This paper proposes a new collision array based workload assignment to increase data request cancellation. Through a task flow partitioning algorithm, we minimize sequential data access and then dynamically schedule tasks while increasing the data request cancellations. We have shown experimentally that this method can boost general system throughput by 3 times and reduce the execution time by an average of 27.6%. For a 3×3 multi-core system, if all nine cores are utilized, the speedup can reach 5.0 times. If only three cores are utilized to reduce communication and power, the proposed method can obtain 2.3 times speedup.