Issue No. 12 - Dec. (2012 vol. 23)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TPDS.2012.41
Haitao Wei , HuaZhong University of Science and Technology, Wuhan
Junqing Yu , Huazhong University of Science and Technology, Wuhan
Huafei Yu , HuaZhong University of Science and Technology, Wuhan
Mingkang Qin , HuaZhong University of Science and Technology, Wuhan
Guang R. Gao , University of Delaware, Newark
Stream programming model has been productively applied to a number of important application domains. Software pipelining is an important code scheduling technique for stream programs. However, the multicore evolution has presented a new dimension of challenges: that is how to orchestrate the best software pipelining schedule in the face of resource constrained architectures (e.g., number of cores, available memory, and bandwidth)? In this paper, we proposed a new solution methodology to address the problem above. Our main contributions include the following. A unified Integer Linear Programming (ILP) formulation has been proposed that combines the requirement of both rate-optimal software pipelining and the minimization of intercore communication overhead. Next, an extended formulation has been proposed to formulate the schedule under memory size constrained systems. It orchestrates the rate-optimal software pipelining execution for stream programs with strict memory, processor cores, and communication constraints. A solution testbed has been implemented for the proposed problem formulations. This has been realized by extending the Brook programming environment with our software pipelining support—named DFBrook. An experimental study has been conducted to verify the effectiveness of the proposed solutions.
Schedules, Resource management, Pipeline processing, Memory management, Multicore processing, resource constrained, Multicore, stream programs, software pipelining
M. Qin, G. R. Gao, H. Wei, J. Yu and H. Yu, "Software Pipelining for Stream Programs on Resource Constrained Multicore Architectures," in IEEE Transactions on Parallel & Distributed Systems, vol. 23, no. , pp. 2338-2350, 2012.