Skip to Main Content
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.