Abstract
We present development and runtime support for building application specific data processing pipelines out of sequential code, and for executing them on a general purpose platform that features a reconfigurable Parallel Processor Array (PPA). Our approach is to let the programmer annotate the source of the application to indicate the desired pipeline stages and associated data flow, with little code restructuring. A pre-processor is then used to transform the annotated program into different code segments according to the indicated pipeline structure, generate the corresponding executable code, and produce a bundled application package containing all executables and deployment information for the target platform. There are special mechanisms for setting up the application-specific pipeline structure on the PPA and achieving integrated execution in the context of a general-purpose operating system, enabling the pipelined application to access the usual system peripherals and run concurrently with other conventional programs. To verify our approach, we have built a prototype system using soft processor arrays on an embedded FPGA platform, and transformed a well-known application into a pipelined version that executes successfully on our prototype.
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
Butts, M., Jones, A.M., Wasson, P.: A structural object programming model, architecture, chip and tools for reconfigurable computing. In: FCCM 2007 (2007)
Atmark Techno Inc., http://www.atmark-techno.com Suzaku Series
Williams, J.: The Microblaze-uClinux kernel port Project, http://www.itee.uq.edu.au
Syrivelis, D., Lalis, S.: System- and application-level support for runtime hardware reconfiguration on soc platforms. In: USENIX ATC, General Track, pp. 315–327 (2006)
Mattson, T.G.: How good is openmp. Sci. Program. 11(2), 81–93 (2003)
Nethercote, N., Seward, J.: Valgrind: a framework for heavyweight dynamic binary instrumentation. SIGPLAN Not. 42(6), 89–100 (2007)
xiph open source community, T.: Tremor Ogg Vorbis decoder, http://wiki.xiph.org
Gschwind, M.: Chip multiprocessing and the cell broadband engine. In: CF 2006: Proceedings of the 3rd conference on Computing frontiers, pp. 1–8 (2006)
Gschwind, M., Erb, D., Manning, S., Nutter, M.: An open source environment for cell broadband engine system software. Computer 40(6), 37–47 (2007)
Thies, W., Karczmarek, M., Amarasinghe, S.P.: Streamit: A language for streaming applications. In: Computational Complexity, pp. 179–196 (2002)
Forum, M.P.I.: MPI: A message-passing interface standard. Technical Report UT-CS-94-230 (1994)
Mueller, F.: A library implementation of posix threads under unix. In: In Proceedings of the USENIX Conference, pp. 29–41 (1993)
Thies, W., Chandrasekhar, V., Amarasinghe, S.: A practical approach to exploiting coarse-grained pipeline parallelism in c programs. In: MICRO, pp. 356–369 (2007)
Bridges, M.J., Vachharajani, N., Zhang, Y., Jablin, T., August, D.I.: Revisiting the sequential programming model for multi-core. In: MICRO (2007)
Vachharajani, N., Rangan, R., Raman, E., Bridges, M.J., Ottoni, G., August, D.I.: Speculative decoupled software pipelining. In: PACT (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Syrivelis, D., Lalis, S. (2009). Extracting Coarse-Grained Pipelined Parallelism Out of Sequential Applications for Parallel Processor Arrays. In: Berekovic, M., Müller-Schloer, C., Hochberger, C., Wong, S. (eds) Architecture of Computing Systems – ARCS 2009. ARCS 2009. Lecture Notes in Computer Science, vol 5455. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00454-4_4
Download citation
DOI: https://doi.org/10.1007/978-3-642-00454-4_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00453-7
Online ISBN: 978-3-642-00454-4
eBook Packages: Computer ScienceComputer Science (R0)