Modern homogeneous and heterogeneous multi-core and many-core architectures are now part of the high-end, embedded, and mainstream computing scene and can offer impressive performance for many applications. This architecture trend has been driven by the need to reduce power consumption, increase processor utilization, and deal with the memory-processor speed gap. However, the complexity of these new architectures has created several programming challenges, and achieving performance on these systems is often a difficult task. This topic seeks to explore productive programming of multi- and many-core systems, as well as stand-alone systems with large numbers of cores like GPUs and various types of accelerators. This can also include hybrid and heterogeneous systems with different types of multi-core processors. It focuses on novel research and solutions in the form of programming models, algorithms, languages, compilers, libraries, runtime and analysis tools to increase the programmability of multi-core, many-core, and heterogeneous systems, in the context of general-purpose, high-performance, and embedded parallel computing. It also covers issues such as lock-free algorithms and data structures, transactional memory, static and dynamic analysis and optimization techniques and tools, performance and power trade-offs, scalability aspects, and hardware support for programming models and runtime systems.
展开▼