Summary: | Various approaches have been proposed to address high performanceparallel computing, among which, data flow paradigm is one particular promis-ing candidate. This thesis work builds a code generator for CAL, one oflanguages supporting data flow paradigm, targeting many-core architecture,namely Epiphany, which is one parallel architecture, and promises to scalethe number of processors horizontally. This project begins with the analy-sis on some existing code generators of CAL targeting multicore architec-ture, adapts a difference approach in code generation, with the rational thatgenerated code should be quite readable as well in mind, and uses ObjectOriented Programming style to remove the code duplication. The defaultbuild method bundled with Epiphany SDK is replaced by one customizedsolution to achieve clean user interface and rapid feedback so that develop-ers react quickly when exceptions happen. The code generator uses actormachine, which is a machine model for data flow actors developed by LundUniversity, for scheduling actions within one actor. CAL supports actorcommunication by passing message, and the generated code uses messagepassing interface like function calls, and they have to be built on top of theshared memory model architecture in order to have the final functional ap-plication on Epiphany. Message passing interface is the main component ofthe runtime system for Epiphany, and three implementations of them havebeen proposed. The performance of different implementations of messagepassing interface is assessed using two dimension inverse discrete cosinetransform (2D-IDCT).
|