Self-timed Scheduling and Execution of Nonlinear Pipelines with Parallel Stages

  • Lars Lucas
  • Tobias Schuele
  • Wolfgang Schwitzer
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8063)

Abstract

Applications that process continuous streams of data, e.g., sensor signals, video images, network packets, etc. are well-suited for pipelined execution on multicore processors. In many cases, however, the applications are subject to real-time constraints, especially in embedded systems. Besides maximizing the throughput, it is therefore important to minimize deviations in the timing. To solve this problem, we propose a method for self-timed scheduling and parallel execution of stream-based applications in soft real-time environments. Our experimental results show significantly lower latencies compared to state-of-the-art approaches, while achieving high throughput.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Sriram, S., Bhattacharyya, S.: Embedded Multiprocessors: Scheduling and Synchronization, 2nd edn. CRC Press (2009)Google Scholar
  2. 2.
    Lee, E., Ha, S.: Scheduling strategies for multiprocessor DSP. In: Global Telecommunications Conference, Dallas, TX, USA. IEEE (1989)Google Scholar
  3. 3.
    Davis, R., Burns, A.: A survey of hard real-time scheduling algorithms and schedulability analysis techniques for multiprocessor systems. Technical Report YCS-2009-443, University of York, Department of Computer Science (2009)Google Scholar
  4. 4.
    Sinnen, O.: Task Scheduling for Parallel Systems. Wiley (2007)Google Scholar
  5. 5.
    Kwok, Y.K., Ahmad, I.: Static scheduling algorithms for allocating directed task graphs to multiprocessors. ACM Computing Surveys 31, 406–471 (1999)CrossRefGoogle Scholar
  6. 6.
    Blumofe, R.D., Leiserson, C.E.: Scheduling multithreaded computations by work stealing. In: Annual Symposium on Foundations of Computer Science (FOCS), Santa Fe, NM, USA, pp. 356–368. IEEE (1994)Google Scholar
  7. 7.
    Mattson, T., Sanders, B., Massingill, B.: Patterns for Parallel Programming. Addison Wesley (2005)Google Scholar
  8. 8.
    Ortega-Arjona, J.: Patterns for Parallel Software Design. Wiley (2010)Google Scholar
  9. 9.
    Stephens, R.: A survey of stream processing. Acta Informatica 34(7), 491–541 (1997)MathSciNetCrossRefMATHGoogle Scholar
  10. 10.
    Aldinucci, M., Torquati, M., Meneghin, M.: FastFlow: Efficient parallel streaming applications on multi-core. Technical Report TR-09-12, Università di Pisa, Dipartimento di Informatica, Italy (September 2009)Google Scholar
  11. 11.
    Otto, F., Pankratius, V., Tichy, W.F.: XJava: Exploiting parallelism with object-oriented stream programming. In: Sips, H., Epema, D., Lin, H.-X. (eds.) Euro-Par 2009. LNCS, vol. 5704, pp. 875–886. Springer, Heidelberg (2009)CrossRefGoogle Scholar
  12. 12.
    Thies, W., Karczmarek, M., Amarasinghe, S.: StreamIt: A language for streaming applications. In: Nigel Horspool, R. (ed.) CC 2002. LNCS, vol. 2304, pp. 179–196. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  13. 13.
    MacDonald, S., Szafron, D., Schaeffer, J.: Rethinking the pipeline as object-oriented states with transformations. In: High-Level Parallel Programming Models and Supportive Environments (HIPS), Santa Fe, NM, USA, pp. 12–21. IEEE Computer Society (2004)Google Scholar
  14. 14.
    Bokhari, S.: Partitioning problems in parallel, pipelined, and distributed computing. IEEE Transactions on Computers 37(1), 48–57 (1988)MathSciNetCrossRefGoogle Scholar
  15. 15.
    Hoang, P., Rabaey, J.: Scheduling of DSP programs onto multiprocessors for maximum throughput. IEEE Transactions on Signal Processing 31(6), 2225–2235 (1993)CrossRefGoogle Scholar
  16. 16.
    Banerjee, S., Hamada, T., Chau, P., Fellman, R.: Macro pipelining based scheduling on high performance heterogeneous multiprocessor systems. IEEE Transactions on Signal Processing 43(6), 1468–1484 (1995)CrossRefGoogle Scholar
  17. 17.
    Wu, M.Y., Gajski, D.: Hypertool: A programming aid for message-passing systems. IEEE Transactions on Parallel and Distributed Systems 1, 330–343 (1990)CrossRefGoogle Scholar
  18. 18.
    Kwok, Y.K., Ahmad, I.: Benchmarking and comparison of the task graph scheduling algorithms. Journal of Parallel and Distributed Computing 59(3), 381–422 (1999)CrossRefMATHGoogle Scholar
  19. 19.
    Schuele, T.: A coordination language for programming embedded multi-core systems. In: International Conference on Parallel and Distributed Computing, Applications and Technologies (PDCAT), Hiroshima, Japan. IEEE (2009)Google Scholar
  20. 20.
    Schuele, T.: Efficient parallel execution of streaming applications on multi-core processors. In: International Conference on Parallel, Distributed and Network-Based Processing (PDP), Ayia Napa, Cyprus. IEEE (2011)Google Scholar
  21. 21.
    Lee, E., Parks, T.: Dataflow process networks. Proceedings of the IEEE 83(5), 773–801 (1995)CrossRefGoogle Scholar
  22. 22.
    Ungerer, T., Cazorla, F., Sainrat, P., Bernat, G., Petrov, Z., Cassé, H., Rochange, C., Quinones, E., Uhrig, S., Gerdes, M., Guliashvili, I., Houston, M., Kluge, F., Metzlaff, S., Mische, J., Paolieri, M., Wolf, J.: MERASA: Multi-core execution of hard real-time applications supporting analysability. IEEE Micro 30(5), 66–75 (2010)CrossRefGoogle Scholar
  23. 23.
    Karcher, T., Schaefer, C., Pankratius, V.: Auto-tuning support for manycore applications: perspectives for operating systems and compilers. ACM SIGOPS Operating Systems Review Archive 43(2), 96–97 (2009)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Lars Lucas
    • 1
  • Tobias Schuele
    • 2
  • Wolfgang Schwitzer
    • 1
  1. 1.Fakultät für InformatikTechnische Universität MünchenGarchingGermany
  2. 2.Corporate TechnologySiemens AGMünchenGermany

Personalised recommendations