Abstract
Heterogeneous multi-core architectures are the mainstream of processor designs for high-end embedded systems. Although such architectures promise high performance and low power consumption, challenges are raised for how to program such devices. This paper presents “Multi-core Software APIs” (MSA) to address these issues. MSA is a library-based framework based asynchronous remote procedure call (RPC) mechanism. Aiming at distributed memory architectures, which is common in embedded systems, MSA supplies a function-offloading programming model. MSA consists of three modules, RPC module, message module, and streaming module, to provide task offloading, data transmission, and streaming data transmission, respectively. Furthermore, this paper provides two case studies, π calculation and stereo vision, to show how MSA works on building multi-core applications.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Butenhof, D.R.: Programming with POSIX threads. Addison-Wesley, Reading (1997)
Chang, D.C.-W.: PAC digital signal processor. In: Proceedings of Fall Microprocessor Forum (2006)
Chrysanthakopoulos, G., Singh, S.: An asynchronous messaging library for c#. In: Synchronization and Concurrency in Object-Oriented Languages, SCOOL (2005)
Culler, D.E., Dusseau, A., Goldstein, S.C., Krishnamurthy, A., Lumetta, S., von Eicken, T., Yelick, K.: Introduction to split-c. Tech. rep., University of California–Berkeley (April 1995), http://www.cs.cmu.edu/~seth/papers/dusseau-tr92.pdf
Dean, J., Ghemawat, S.: Mapreduce: simplified data processing on large clusters. In: OSDI’04: Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, p. 10. USENIX Association, Berkeley (2004)
Hsieh, K.Y., Liu, Y.C., Wu, P.W., Chang, S.W., Lee, J.K.: Enabling streaming remoting on embedded dual-core processors. In: 37th International Conference on Parallel Processing, ICPP ’08, September 2008, pp. 35–42 (2008)
Huang, C.W., Shih, W.K., Hsu, Y., Lee, J.K.: Configurable sid-based multi-core simulators for embedded system education. In: Workshop on Embedded Systems Education’09, Grenoble, France (2009)
Kuchen, H.: A skeleton library. In: Monien, B., Feldmann, R.L. (eds.) Euro-Par 2002. LNCS, vol. 2400, pp. 620–629. Springer, Heidelberg (2002)
Lai, C., Hsieh, K., Lai, S., Lee, J.: Parallelization of belief propagation method on embedded multicore processors for stereo vision. In: IEEE/ACM/IFIP Workshop on Embedded Systems for Real-Time Multimedia, ESTImedia 2008, pp. 39–44 (2008)
Lin, Y.C., Tang, C.L., Wu, C.J., Hung, M.Y., You, Y.P., Moo, Y.C., Chen, S.Y., Lee, J.K.: Compiler supports and optimizations for PAC VLIW DSP processors. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds.) LCPC 2005. LNCS, vol. 4339, pp. 466–474. Springer, Heidelberg (2006)
Matsuzaki, K., Iwasaki, H.: A library of constructive skeletons for sequential style of parallel programming. In: InfoScale’ 06: Proceedings of the 1st international conference on Scalable information systems. ACM International Conference Proceeding Series, vol. 152, p. 13. ACM Press, New York (2006)
McCool, M.D., Wadleigh, K., Henderson, B., Lin, H.Y.: Performance evaluation of gpus using the rapidmind development platform. In: SC ’06: Proceedings of the 2006 ACM/IEEE conference on Supercomputing, p. 181. ACM, New York (2006)
Murray, A.B., Cole, M., Gilmore, S., Hillston, J.: Flexible skeletal programming with eskel. In: Cunha, J.C., Medeiros, P.D. (eds.) Euro-Par 2005. LNCS, vol. 3648, pp. 761–770. Springer, Heidelberg (2005)
Qualcomm: The snapdragon platform (2010), http://www.qctconnect.com/products/snapdragon.html
Reid, A.D., Flautner, K., Evans, E.G., Lin, Y.: Soc-c: efficient programming abstractions for heterogeneous multicore systems on chip. In: CASES ’08: Proceedings of the 2008 international conference on Compilers, architectures and synthesis for embedded systems, pp. 95–104. ACM, New York (2008)
Reinders, J.: Intel Threading Building Blocks. O’Reilly, Sebastopol (2007)
Sun, J., Zheng, N., Shum, H.: Stereo matching using belief propagation. IEEE Transactions on Pattern Analysis and Machine Intelligence 25(7), 787–800 (2003)
Texas Instruments: OmapTM4 mobile applications platform (2009)
Thies, W., Karczmarek, M., Amarasinghe, S.: Streamit: A language for streaming applications. In: Horspool, R.N. (ed.) CC 2002. LNCS, vol. 2304, pp. 49–84. Springer, Heidelberg (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Li, JJ., Wang, SC., Hsu, PC., Chen, PY., Lee, J.K. (2010). A Multi-core Software API for Embedded MPSoC Environments. In: Hsu, CH., Malyshkin, V. (eds) Methods and Tools of Parallel Programming Multicomputers. MTPP 2010. Lecture Notes in Computer Science, vol 6083. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14822-4_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-14822-4_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-14821-7
Online ISBN: 978-3-642-14822-4
eBook Packages: Computer ScienceComputer Science (R0)