Exploring Coordination of Threads in Multi-Core Libraries
Exploring Coordination of Threads in Multi-Core Libraries
复制标题
探索多核库中线程的协调
DOI:
--
复制
发表时间:
2010
期刊:
影响因子:
--
通讯作者:
Milo M. K. Martin
中科院分区:
文献类型:
--
作者:
Michajlo P. Matijkiw;Milo M. K. Martin
Modern multi-core libraries do an excellent job of abstracting the details of thread programming away from the programmer, delivering a convenient interface for developing portable parallel applications. With a rich collection of synchronization primitives and lock-free data structures, these libraries allow the programmer to easily manage their programs. Their weakness, however, is that at initialization these applications typically launch as many threads as there are processors, so if there were two instances of the library present there would be twice as many threads as CPUs, in addition to any other processes running on the system. The result would be decreased performance for all applications on the system due to overloading of the CPU. Applications using shared resources are especially effected. Improving lock performance has been the traditional approach to improving performance in systems under high load. While it has proven helpful in the past, such an approach only scales well to a certain point, and still may not provide optimal performance. As we are reaching a point where parallel applications will be commonplace on general purpose machines, care must be taken to make sure that they cooperate. We propose that we can improve the performance and scalability of multi-core libraries by dynamically preventing overs-subscription of the CPU at runtime. Such an approach would greatly improve the scalability of multi-core libraries and make them much more attractive for common workloads.