Abstract
Manycore architectures are gaining attention as a means to meet the performance and power demands of high-performance embedded systems. However, their widespread adoption is sometimes constrained by the need for mastering proprietary programming languages that are low-level and hinder portability.
We propose the use of the concurrent programming language occam-pi as a high-level language for programming an emerging class of manycore architectures. We show how to map occam-pi programs to the manycore architecture Platform 2012 (P2012). We describe the techniques used to translate the salient features of the language to the native programming model of the P2012. We present the results from a case study on a representative algorithm in the domain of real-time image processing: a complex algorithm for corner detection called Features from Accelerated Segment Test (FAST). Our results show that the occam-pi program is much shorter, is easier to adapt and has a competitive performance when compared to versions programmed in the native programming model of P2012 and in OpenCL.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Welch, P.H., Barnes, F.R.M.: Communicating mobile processes Introducing occam-pi. In: Abdallah, A.E., Jones, C.B., Sanders, J.W. (eds.) Communicating Sequential Processes. LNCS, vol. 3525, pp. 175–210. Springer, Heidelberg (2005)
Hoare, C.A.R.: Communicating Sequential Processes. Prentice-Hall (1985)
Milner, R., Parrow, J., Walker, D.: A Calculus of Mobile Processes Part I. Information and Computation 100(1) (1989)
Zain-ul-Abdin, Svensson, B.: Using a CSP based programming model for reconfigurable processor arrays. In: International Conference on Reconfigurable Computing and FPGAs (2008)
Zain-ul-Abdin, Svensson, B.: Occam-pi as a high-level language for coarse-grained reconfigurable architectures. In: 18th International Reconfigurable Architectures Workshop (RAW 2011) in conjunction with International Parallel and Distributed Processing Symposium (IPDPS 2011) (May 2011)
STMicroelectronics and CEA.: Platform 2012: A manycore programmable accelerator for ultra-efficient embedded computing in nanometer technology (November 2010)
Rosten, E., Drummond, T.: Fusing points and lines for high performance tracking. In: Proceedings of 10th IEEE International Conference on Computer Vision, vol. 2, pp. 1508–1515 (2005)
Chamberlain, B., Callahan, D., Zima, H.: Parallel Programmability and the Chapel Language. International Journal of High Performance Computing Applications 21(3), 291–312 (2007)
Steele Jr., G.L.: Parallel programming and parallel abstractions in fortress. In: IEEE PACT, p. 157 (2005)
Charles, P.C., Grothoff, S.V., Donawa, C., Kielstra, A., Ebcioglu, K., von Praun, C., Sarkar, V.: X10: an object-oriented approach to non-uniform cluster computing. SIGPLAN Not. 40(10), 519–538 (2005)
Axelsson, E., Claessen, K., Devai, G., Horvath, Z., Keijzer, K., Lyckegård, B., Persson, A., Sheeran, M., Svenningsson, J., Vajda, A.: Feldspar: A domain specific language for digital signal processing algorithms. In: 8th IEEE/ACM International Conference on Formal Methods and Models for Codesign (MEMOCODE), pp. 169–178 (July 2010)
Eker, J., Janneck, J.W.: CAL language report. Technical Report, UCB/ERL M03/48 (2003)
Püschel, M., Moura, J., Johnson, J., Padua, D., Veloso, M., Singer, B., Xiong, J., Franchetti, F., Gacic, A., Voronenko, Y., Chen, K., Johnson, R.W., Rizzolo, N.: Spiral: Code generation for DSP transforms. In: EEE Special Issue on Program Generation, Optimization, and Platform Adaptation (2005)
Occam® 2.1 Reference Manual, SGS-Thomson Microelectronics Limited (1995)
Welch, P.H., Barnes, F.R.M.: Prioritised dynamic communicating processes: Part II. In: Communicating Process Architectures, pp. 353–370. IOS Press (2002)
The MIND Project (December 15, 2011), http://mind.ow2.org
Kent.: Tock: Translator from Occam to C (December 15, 2011), http://projects.cs.kent.ac.uk/projects/tock/trac/
Zain-ul-Abdin, Svensson, B.: Occam-pi for programming of massively parallel reconfigurable architectures. In: International Journal of Reconfigurable Computing 2012, Article ID 504815 (2012)
Rosten, E., Porter, R., Drummond, T.: FASTER and better: A machine learning approach to corner detection. IEEE Transactions on Pattern Analysis and Machine Intelligence 32, 105–119 (2010)
The Khronos Group, OpenCL 1.0 (December 21, 2012), http://www.khronos.org/opencl
Melpignano, D., Benini, L., Flamand, E., Jego, B., Lepley, T., Haugou, G., Clermidy, F., Dutoit, D.: Platform 2012, a many-core computing accelerator for embedded SoCs: performance evaluation of visual analytics applications. In: 49th Annual Design Automation Conference (2012)
Zain-ul-Abdin, Gebrewahid, E., Svensson, B.: Managing Dynamic Reconfiguration for Fault-tolerance on a Manycore Architecture. In: 19th International Reconfigurable Architectures Workshop (RAW 2011) in conjunction with International Parallel and Distributed Processing Symposium (IPDPS 2011), pp. 312–319 (May 2012)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Gebrewahid, E. et al. (2013). Programming Real-Time Image Processing for Manycores in a High-Level Language. In: Wu, C., Cohen, A. (eds) Advanced Parallel Processing Technologies. APPT 2013. Lecture Notes in Computer Science, vol 8299. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45293-2_29
Download citation
DOI: https://doi.org/10.1007/978-3-642-45293-2_29
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45292-5
Online ISBN: 978-3-642-45293-2
eBook Packages: Computer ScienceComputer Science (R0)