Disciplined Multi-core Programming in C.

Pjotr Kourzanov, Orlando Moreira, Henk J. Sips · Parallel and Distributed Processing Techniques and Applications · 2010

The problem of programmability on modern heterogeneous multi-core and future many-core embedded platforms is still not solved satisfactorily: although many existing but incompatible approaches do provide new languages, language extensions and library interfaces that all focus on specific solutions, and powerful analytical models do exist, no single integrated programming model has been proposed yet for software-defined radio applications or embedded parallel algorithms in general. Our API-less programming model, LIME improves upon this situation by decoupling the functional aspects of a radio from hardware-dependent communication or synchronisation aspects. For the former, we use disciplined programming using standard C and associated languagelevel constructs, with certain rules and restrictions. For the latter, we introduce a graph-based model specified using a declarative XML schema. We demonstrate a compiler tool-chain for LIME that can parse, verify, analyse and translate radios implemented in this high-level fashion to low-level primitives found in many embedded platforms via platform-specific code generation. Approach of LIME turns out to be extendible to several disciplined models of computation that are important for radio applications, each of which is easily detectable from syntax and structure of radios. We prove that our approach is effective in practice by porting a radio application to LIME and showing a significant decrease in code complexity with no significant increase in run-time overhead due to code generation. Efficiency is the target of our current efforts.

Read the paper · More papers on PaperTik