International Journal of Reconfigurable Computing (Jan 2012)
Occam-pi for Programming of Massively Parallel Reconfigurable Architectures
Abstract
Massively parallel reconfigurable architectures, which offer massive parallelism coupled with the capability of undergoing run-time reconfiguration, are gaining attention in order to meet the increased computational demands of high-performance embedded systems. We propose that the 𝚘𝚌𝚌𝚊𝚖-𝚙𝚒 language is used for programming of the category of massively parallel reconfigurable architectures. The salient properties of the 𝚘𝚌𝚌𝚊𝚖-𝚙𝚒 language are explicit concurrency with built-in mechanisms for interprocessor communication, provision for expressing dynamic parallelism, support for the expression of dynamic reconfigurations, and placement attributes. To evaluate the programming approach, a compiler framework was extended to support the language extensions in the 𝚘𝚌𝚌𝚊𝚖-𝚙𝚒 language and a backend was developed to target the Ambric array of processors. We present two case-studies; DCT implementation exploiting the reconfigurability feature of 𝚘𝚌𝚌𝚊𝚖-𝚙𝚒 and a significantly large autofocus criterion calculation based on the dynamic parallelism capability of the 𝚘𝚌𝚌𝚊𝚖-𝚙𝚒 language. The results of the implemented case studies suggest that the 𝚘𝚌𝚌𝚊𝚖-𝚙𝚒-language-based approach simplifies the development of applications employing run-time reconfigurable devices without compromising the performance benefits.