skip to main content
article

Classifying interprocess communication in process network representation of nested-loop programs

Authors Info & Claims
Published:01 May 2007Publication History
Skip Abstract Section

Abstract

New embedded signal-processing architectures are emerging that are composed of loosely coupled heterogeneous components like CPUs or DSPs, specialized IP cores, reconfigurable units, or memories. We believe that these architectures should be programmed using the process network model of computation. To ease the mapping of applications, we are developing the Compaan compiler that automatically derives a process network (PN) description from an application written in Matlab or C. In this paper, we investigate a particular problem in nested loop programs, which is about classifying the interprocess communication in the PN representation of the nested loop program. The global memory arrays present in the code have to be replaced by a distributed communication structure used for communicating data between the network processes. We show that four types of communication exist, each exhibiting different requirements when realizing them in hardware or software. We first present two compile time tests that are based on integer linear programming to decide the type of the communication. In the second part of this paper, we present alternative classification techniques that have polynomial complexity. However, in some cases, those techniques do not give a definitive answer and the ILP tests have to be applied. All present tests are combined in a hybrid classification scheme that correctly classifies the interprocess communication. In only 5% of the cases to classify, we have to rely on integer linear programming while, in the remaining 95%, the alternative techniques presented in this paper are able to correctly classify each case. The hybrid classification scheme has become an important part of our Compaan compiler.

References

  1. Basten, T. and Hoogerbrugge, J. 2001. Efficient execution of process networks. In Communicating Process Architectures---2001, Proceedings. Bristol. 1--14.Google ScholarGoogle Scholar
  2. Clauss, P. 1996. Counting solutions to linear and nonlinear constraints through ehrhart polynomials: Applications to analyse and transform scientific programs. In 10th International Conference on Supercomputing, Philadelphia, PA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Davis, Jr, II, J., Hylands, C., Kienhuis, B., Lee, E. A., Liu, J., Liu, X., Muliadi, L., Neuendorffer, S., Tsay, J., Vogel, B., and Xiong, Y. 2001. Heterogeneous concurrent modeling and design in java. Tech. Rep. Memorandum UCB/ERL M01/12 (Mar.), University of California, Dept EECS, Berkeley, CA 94720.Google ScholarGoogle Scholar
  4. De Greef, E., Catthoor, F., and De Man, H. 1977. Memory size reduction through storage order optimization for embedded parallel multimedia applications. In Parallel Processing and Multimedia. Geneva.Google ScholarGoogle Scholar
  5. De Kock, E., Essink, G., Smits, W., van der Wolf, P., Brunel, J.-Y., Kruijtzer, W., Lieverse, P., and Vissers, K. 2000. YAPI: Application modeling for signal processing systems. In Proc. 37th Design Automation Conference (DAC'2000). Los Angeles, CA. 402--405. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Feautrier, P. 1988. Parametric Integer Programming. In RAIRO Recherche Op?rationnelle, 22, 3, 243--268.Google ScholarGoogle Scholar
  7. Kahn, G. 1974. The semantics of a simple language for parallel programming. In Proc. of the IFIP Congress 74. North-Holland, Amsterdam.Google ScholarGoogle Scholar
  8. Kienhuis, B., Rypkema, E., and Deprettere, E. 2000. Compaan: Deriving process networks from matlab for embedded signal processing architectures. In Proceedings of the 8th International Workshop on Hardware/Software Codesign (CODES). San Diego, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Kienhuis, B., Deprettere, E., van der Wolf, P., and Vissers, K. 2002. A Methodology to Design Programmable Embedded Systems. LNCS, vol. 2268. Springer Verlag, New York, 18--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Lefebvre, V. and Feautrier, P. 1998. Automatic storage management in paralel programs. Vol. 24. Parallel Computing. 649--671. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Nemhauser, G. and Wolsey, L. 1988. Integer and Combinatorial Optimization. Wiley-Interscience, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Parks, T. 1995. Bounded scheduling of process networks. Ph.D. thesis, EECS Department, University of California, Berkeley. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. PicoChip. 2000. http://www.picochip.com.Google ScholarGoogle Scholar
  14. Pugh, W. 1992. The Omega test: A fast and practical integer programming algorithm for dependence analysis. Communications of the ACM 35, 8, 102--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Quillere, F. and Rajopadhye, S. 2000. Optimizing memory usage in the polyhedral model. In ACM Transactions on Programming Languages and Systems. Vol. 22. 773--815. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Rijpkema, E. 2002. Modeling task level parallelism in piece-wise regular programs. PhD thesis, Leiden Institute of Advanced Computer Science, Leiden Univerity, The Netherlands.Google ScholarGoogle Scholar
  17. Schrijver, A. 1986. Theory of Linear and Integer Programming. Wiley, New York. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Stefanov, T. and Deprettere, E. 2003. Deriving process networks from weakly dynamic applications in system-level design. In Proc. IEEE-ACM-IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES + ISSS'03). Newport Beach, CA. 90--96. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Stefanov, T., Zissulescu, C., Turjan, A., Kienhuis, B., and Deprettere, E. 2004. System design using kahn process networks: The compaan/laura approach. In Proceedings of DATE2004. Paris. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Stravers, P. and Hoogerbrugge, J. 2001. Homogeneous multiprocessoring and the future of silicon design paradigms. In Proceedings of the Int. Symposium on VLSI Technology, Systems, and Applications.Google ScholarGoogle Scholar
  21. Teich, J. and Thiele, L. 1993. Partitioning of processor arrays: A piecewise regular approach. Integration, the VLSI Journal 14, 297--332. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Turjan, A. and Kienhuis, B. 2003. Storage management in process networks using the lexicographically maximal preimage. In Proceedings of the IEEE 14th Int. Conf. on Application-specific Systems, Architectures and Processors (ASAP'03). The Hague.Google ScholarGoogle Scholar
  23. Turjan, A., Kienhuis, B., and Deprettere, E. 2002. A compile time based approach for solving out-of-order communication in kahn process networks. In Proceedings of the IEEE 13th International Conference on Application-specific Systems, Architectures and Processors (ASAP'02). San Jose, CA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Turjan, A., Kienhuis, B., and Deprettere, E. 2004. Translating affine nested loops to Process Networks. In International Conference on Compilers, Architectures and Synthesis for Embedded Systems (CASES). Washington D.C. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Wilde, D. and Rajopadhye, S. 2002. Memory reuse in the polyhedral model. In In Proc. Euro-Par96. Lyon, France. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Xilinx. 2000. http://www.xilinx.com.Google ScholarGoogle Scholar
  27. Zissulescu, C., Stefanov, T., Kienhuis, B., and Deprettere, E. 2003. LAURA: Leiden architecture research and exploration tool. In Proc. 13th Int. Conference on Field Programmable Logic and Applications (FPL'03).Google ScholarGoogle Scholar

Index Terms

  1. Classifying interprocess communication in process network representation of nested-loop programs

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!