Skip to main content

Improving the Performance of Parallel Programs: The Analytical Approach

  • Chapter
Multicore Programming Using the ParC Language

Part of the book series: Undergraduate Topics in Computer Science ((UTICS))

  • 1409 Accesses

Abstract

In this chapter we will examine the gap between the expected execution time of a parallel algorithm and the actual running time achieved by executing its encoding as a ParC program in an actual shared memory machine. Though there is such a gap for sequential programs, it is more problematic with parallel programs where users often encounter cases of parallel programs that fail to run fast enough or as fast as expected. In particular, a parallel program that runs on a parallel machine with P processors is expected to run about P times faster than its sequential version. There are two issues involved with this problem:

  • Determining the execution time of a parallel program and comparing it with a desired execution time.

  • If there is a significant gap between the two, we need to identify which factors in the parallel program should be corrected so that the performance is improved.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 49.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  • Amdahl, G.M.: Validity of the single processor approach to achieving large scale computer capabilities. In: AFIPS Spring Joint Comput. Conf., vol. 30, pp. 483–485 (1967)

    Google Scholar 

  • Ben-Asher, Y., Haber, G.: On the usage of simulators to detect inefficiency of parallel programs caused by bad schedulings: the simparc approach. J. Syst. Softw. 33, 313–327 (1996)

    Article  Google Scholar 

  • Eager, D.L., Zahorjan, J., Lazowska, E.D.: Speedup versus efficiency in parallel systems. IEEE Trans. Comput. 38(3), 408–423 (1989)

    Article  Google Scholar 

  • Flatt, H.P.: Further results using the overhead model for parallel systems. IBM J. Res. Dev. 35(5/6), 721–726 (1991)

    Article  Google Scholar 

  • Gehani, N.H., Roome, W.D.: Concurrent C. Softw. Pract. Exp. 16(9), 821–844 (1986)

    MATH  Google Scholar 

  • Gottlieb, A., Lubachevsky, B., Rudolph, L.: Basic techniques for the efficient coordination of very large numbers of cooperating sequential processes. ACM Trans. Program. Lang. Syst. 5(2), 164–189 (1983)

    Article  MATH  Google Scholar 

  • Jaja, J.: An Introduction to Parallel Algorithms. Addison-Wesley, Reading (1992)

    MATH  Google Scholar 

  • Johnson, D.S.: The NP-completeness column: An ongoing guide. J. Algorithms 4(2), 189–203 (1983). (about parallel scheduling)

    Article  MathSciNet  MATH  Google Scholar 

  • Karp, A.H., Flatt, H.P.: Measuring parallel processor performance. Commun. ACM 33(5), 539–543 (1990)

    Article  Google Scholar 

  • Kruskal, C.P.: Performance bound on parallel processors: An optimistic view. In: Broy, M. (ed.) Control Flow and Data Flow: Concepts of Distributed Programming. NATO ASI Series, vol. F-14, pp. 331–344. Springer, Berlin (1985)

    Google Scholar 

  • Kruskal, C.P., Rudolph, L., Snir, M.: A complexity theory of efficient parallel algorithms. Theor. Comput. Sci. 71(1), 95–132 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  • Kuehn, J.T., Siegel, H.J.: Extensions to the C programming language for SIMD/MIMD parallelism. In: Intl. Conf. Parallel Processing, pp. 232–235 (1985)

    Google Scholar 

  • Papadimitriou, C.H., Yannakakis, M.: Towards an architecture-independent analysis of parallel algorithms. SIAM J. Comput. 19(2), 322–328 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  • Rose, J.R.: C*: A C++-like language for data parallel computation. In: USENIX Proc. C++ Workshop, pp. 127–134 (1987)

    Google Scholar 

  • Sun, X.H., Gustafson, J.L.: Toward a better parallel performance metric*. Parallel Comput. 17(10–11), 1093–1109 (1991)

    Article  MATH  Google Scholar 

  • Sun, X.H., Ni, L.M.: Another view on parallel speedup. In: Proceedings of Supercomputing’90, pp. 324–333. IEEE, New York (2002). ISBN 0818620560

    Google Scholar 

  • Wieland, F., Reiher, P., Jefferson, D.: Experiences in parallel performance measurement: The speedup bias. In: Symp. Experiences with Distributed & Multiprocessor Syst., pp. 205–215. USENIX, Berkeley (1992)

    Google Scholar 

  • Williams, E., Bobrowicz, F.: Speedup predictions for large scientific parallel programs on Cray X-MP like architectures. In: Intl. Conf. Parallel Processing, pp. 541–543 (1985)

    Google Scholar 

  • Zhang, X.: Performance measurement and modeling to evaluate various effects on a shared memory multiprocessor. IEEE Trans. Softw. Eng. 87–93 (1991)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yosi Ben-Asher .

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag London

About this chapter

Cite this chapter

Ben-Asher, Y. (2012). Improving the Performance of Parallel Programs: The Analytical Approach. In: Multicore Programming Using the ParC Language. Undergraduate Topics in Computer Science. Springer, London. https://doi.org/10.1007/978-1-4471-2164-0_5

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-2164-0_5

  • Publisher Name: Springer, London

  • Print ISBN: 978-1-4471-2163-3

  • Online ISBN: 978-1-4471-2164-0

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics