Polyhedral Process Networks

  • Sven Verdoolaege


Reference implementations of signal processing applications are often written in a sequential language that does not reveal the available parallelism in the application. However, if an application satisfies some constraints then a parallel specification can be derived automatically. In particular, if the application can be represented in the polyhedral model, then a polyhedral process network can be constructed from the application. After introducing the required polyhedral tools, this chapter details the construction of the processes and the communication channels in such a network. Special attention is given to various properties of the communication channels including their buffer sizes.



This work was supported by FWO-Vlaanderen, project G.0232.06N. The author would like to thank Maurice Bruynooghe and Sjoerd Meijer for their feedback on earlier versions of this chapter.


  1. 1.
    Amarasinghe, S.P., Anderson, J.M., Lam, M.S., Tseng, C.W.: The SUIF compiler for scalable parallel machines. In: Proceedings of the Seventh SIAM Conference on Parallel Processing for Scientific Computing (1995)Google Scholar
  2. 2.
    Bastoul, C.: Code generation in the polyhedral model is easier than you think. In: PACT ’04: Proceedings of the 13th International Conference on Parallel Architectures and Compilation Techniques, pp. 7–16. IEEE Computer Society, Washington, DC, USA (2004). DOI 10.1109/PACT. 2004.11Google Scholar
  3. 3.
    Clauss, P., Fernández, F.J., Gabervetsky, D., Verdoolaege, S.: Symbolic polynomial maximization over convex sets and its application to memory requirement estimation. IEEE Transactions on Very Large Scale Integration (VLSI) Systems 17, 983–996 (2009)Google Scholar
  4. 4.
    Cook, W., Rutherford, T., Scarf, H.E., Shallcross, D.F.: An implementation of the generalized basis reduction algorithm for integer programming. ORSA Journal on Computing 5(2) (1993)Google Scholar
  5. 5.
    Darte, A., Schreiber, R., Villard, G.: Lattice-based memory allocation. IEEE Trans. Comput. 54(10), 1242–1257 (2005). DOI 10.1109/TC.2005. 167CrossRefGoogle Scholar
  6. 6.
    Devos, H., Van Campenhout, J., Stroobandt, D.: Finding bounds on ehrhart quasi-polynomials. In: Architecture and Compilers for Embedded Systems (ACES 2007), Edegem. 2007 (2007). DOI 1854/11101Google Scholar
  7. 7.
    Feautrier, P.: Parametric integer programming. Operationnelle/Operations Research 22(3), 243–268 (1988)MathSciNetMATHGoogle Scholar
  8. 8.
    Feautrier, P.: Dataflow analysis of array and scalar references. International Journal of Parallel Programming 20(1), 23–53 (1991)MATHCrossRefGoogle Scholar
  9. 9.
    Geilen, M., Basten, T.: Kahn process networks and a reactive extension. In: S.S. Bhattacharyya, E.F. Deprettere, R. Leupers, J. Takala (eds.) Handbook of Signal Processing Systems, second edn. Springer (2013)Google Scholar
  10. 10.
    Grosser, T., Zheng, H., A, R., Simbürger, A., Grösslinger, A., Pouchet, L.N.: Polly - polyhedral optimization in LLVM. In: First International Workshop on Polyhedral Compilation Techniques (IMPACT’11). Chamonix, France (2011)Google Scholar
  11. 11.
    Kahn, G.: The semantics of a simple language for parallel programming. In: Proc. of the IFIP Congress 74, pp. 471–475. North-Holland Publishing Co. (1974)Google Scholar
  12. 12.
    Kelly, W., Maslov, V., Pugh, W., Rosser, E., Shpeisman, T., Wonnacott, D.: The Omega library. Tech. rep., University of Maryland (1996)Google Scholar
  13. 13.
    Kelly, W., Pugh, W., Rosser, E.: Code generation for multiple mappings. In: Frontiers’95 Symposium on the Frontiers of Massively Parallel Computation. McLean (1995)Google Scholar
  14. 14.
    Kienhuis, B., Rijpkema, E., Deprettere, E.: Compaan: Deriving process networks from Matlab for embedded signal processing architectures. In: CODES ’00: Proceedings of the eighth international workshop on Hardware/software codesign, pp. 13–17. ACM Press, New York, NY, USA (2000). DOI 10.1145/334012.334015Google Scholar
  15. 15.
    Meijer, S., Nikolov, H., Stefanov, T.: Throughput modeling to evaluate process merging transformations in polyhedral process networks. In: Proceedings of the Conference on Design, Automation and Test in Europe, DATE ’10, pp. 747–752. European Design and Automation Association, 3001 Leuven, Belgium (2010)Google Scholar
  16. 16.
    Meister, B., Verdoolaege, S.: Polynomial approximations in the polytope model: Bringing the power of quasi-polynomials to the masses. In: J. Sankaran, T. Vander Aa (eds.) Digest of the 6th Workshop on Optimization for DSP and Embedded Systems, ODES-6 (2008)Google Scholar
  17. 17.
    Pop, S., Cohen, A., Bastoul, C., Girbal, S., Jouvelot, P., Silber, G.A., Vasilache, N.: Graphite: Loop optimizations based on the polyhedral model for GCC. In: 4th GCC Developer’s Summit. Ottawa, Canada (2006)Google Scholar
  18. 18.
    Schrijver, A.: Combinatorial Optimization - Polyhedra and Efficiency. Springer (2003)Google Scholar
  19. 19.
    Schweitz, E., Lethin, R., Leung, A., Meister, B.: R-stream: A parametric high level compiler. In: J. Kepner (ed.) Proceedings of HPEC 2006, 10th Annual Workshop on High Performance Embedded Computing. Lincoln Labs, Lexington, MA (2006)Google Scholar
  20. 20.
    Turjan, A.: Compaan - A Process Network Parallelizing Compiler. VDM Verlag (2008)Google Scholar
  21. 21.
    Verdoolaege, S.: isl: An integer set library for the polyhedral model. In: K. Fukuda, J. Hoeven, M. Joswig, N. Takayama (eds.) Mathematical Software - ICMS 2010, Lecture Notes in Computer Science, vol. 6327, pp. 299–302. Springer (2010)Google Scholar
  22. 22.
    Verdoolaege, S.: Counting affine calculator and applications. In: First International Workshop on Polyhedral Compilation Techniques (IMPACT’11). Chamonix, France (2011)Google Scholar
  23. 23.
    Verdoolaege, S., Beyls, K., Bruynooghe, M., Catthoor, F.: Experiences with enumeration of integer projections of parametric polytopes. In: R. Bodik (ed.) Proceedings of 14th International Conference on Compiler Construction, Edinburgh, Scotland, Lecture Notes in Computer Science, vol. 3443, pp. 91–105. Springer-Verlag, Berlin (2005). DOI 10.1007/ b107108Google Scholar
  24. 24.
    Verdoolaege, S., Nikolov, H., Stefanov, T.: pn: A tool for improved derivation of process networks. EURASIP Journal on Embedded Systems, special issue on Embedded Digital Signal Processing Systems 2007 (2007). DOI 10.1155/2007/75947Google Scholar
  25. 25.
    Verdoolaege, S., Seghir, R., Beyls, K., Loechner, V., Bruynooghe, M.: Counting integer points in parametric polytopes using Barvinok’s rational functions. Algorithmica 48(1), 37–66 (2007). DOI 10.1007/ s00453-006-1231-0MathSciNetMATHCrossRefGoogle Scholar
  26. 26.
    Ziegler, G.M.: Lectures on Polytopes. Springer-Verlag, Berlin (1995)MATHCrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2013

Authors and Affiliations

  1. 1.Department of Computer ScienceKatholieke Universiteit LeuvenLeuvenBelgium

Personalised recommendations