Fussli: A portable framework for exploiting hybrid task, data and pipeline parallelism on multi-cores
Xiaoye Wang, Ting Zhang
Abstract
Xiaoye Wang, Ting Zhang
Abstract
Parallelism is the most important mean to exploit the computation potential of multi-core processors. Real applications, particularly, commercial applications often have strong dependence that has to be respected. In order to achieve reasonably good performance, hybrid parallelism schemes usually need to be applied in these applications. Furthermore, parallel applications with task and pipeline parallelism are often developed in a target-orientated manner. Due to a parallel application is likely to run on different hardware platforms, a portable hybrid parallelism approach is attractive. This paper presents Fussli, a portable framework that allows the programmer to express hybrid parallelism with architecture-independent APIs and the framework the back-end takes advantage of hardware features. Along with parallelism expression provided by Fussli APIs, the profiling-driven parallelism mapper finds optimal parallelism configurations for different platforms. Experimental results on four typical applications and on two different multi-core platforms (an 8-core Intel Xeon a 9-core IBM Cell platforms) demonstrate the effectiveness of Fussli. We are able to obtain comparative or better performance for these applications compared to a recent proposed profiling-driven approach.
OpenAlex reports 2 citations for this work. Citation counts describe recorded attention and do not establish research quality.
A contribution statement is not available in the OpenAlex record.
Method details are not available in the OpenAlex metadata.
Findings are not separately available in the OpenAlex metadata.
Limitations are not available in the OpenAlex metadata.
Application details are not available in the OpenAlex metadata.
Parallelism is the most important mean to exploit the computation potential of multi-core processors. Real applications, particularly, commercial applications often have strong dependence that has to be respected. In order to achieve reasonably good performance, hybrid parallelism schemes usually need to be applied in these applications. Furthermore, parallel applications with task and pipeline parallelism are often developed in a target-orientated manner. Due to a parallel application is likely to run on different hardware platforms, a portable hybrid parallelism approach is attractive. This paper presents Fussli, a portable framework that allows the programmer to express hybrid parallelism with architecture-independent APIs and the framework the back-end takes advantage of hardware features. Along with parallelism expression provided by Fussli APIs, the profiling-driven parallelism mapper finds optimal parallelism configurations for different platforms. Experimental results on four typical applications and on two different multi-core platforms (an 8-core Intel Xeon a 9-core IBM Cell platforms) demonstrate the effectiveness of Fussli. We are able to obtain comparative or better performance for these applications compared to a recent proposed profiling-driven approach.
Key concepts: Computer science, Task parallelism, Data parallelism, Instruction-level parallelism, Parallel computing, Parallelism (grammar), Xeon Phi, Profiling (computer programming)