Abstract
How to parallelize programs to reach the performance, reliability and time-to-market requirements is the most critical issue for parallel programmers. Although hardware provides helpful and available supports for parallel computing, the scalability of software still can’t catch up; it has also become the bottleneck for performance concern. To exchange information between various computing units, a C++ communication library--Streaming Remote Procedure Call (SRPCPP)--for parallel programming models is introduced. SRPCPP library is built in a master-slave model; tasks on the slave-cores could be invoked or terminated by the master-core. In addition, SRPCPP provides a streaming mechanism which overlaps the communication and computation. In this way, we can improve the performance when transferring data between cores. In this thesis, we propose a communication library called SRPCPP with Design Patterns on a heterogeneous embedded multi-core system platform. Design Patterns give a name to solutions to recurring problems in a domain where experts gradually learn to “take for granted.” They have been whetting software programmer’s appetite for architecting parallel software in recent years. We will show how to use these patterns with SRPCPP library to parallelize applications in our experiment. We provide a C++ communication library that can be utilized to carry out the parallel programs on heterogeneous multi-core embedded systems. Equally impressive, the employment of design patterns providing methodological approaches aims to architect software systematically for programmers.