Skip to main content

Building Parallel Applications Using Design Patterns

  • Chapter
Advances in Software Engineering

Abstract

Parallel application design and development is a major area of interest in the domain of high-performance scientific and industrial computing. In fact, parallel computing is becoming an integral part in several major application domains such as space, medicine, cancer and genetic research, graphics and animation, image processing, to name a few. With the advent of fast interconnecting networks of workstations and PCs, it is now becoming increasingly possible to develop high-performance parallel applications using the combined computing powers of these networked resources, at no extra cost. Contrast this to the situation until the early 90s, where parallel computing was mostly confined only to special-purpose parallel computers that were unaffordable by small research institutions. Nowadays, high-speed networks and fast general-purpose computers are aiding in the mainstream adoption of parallel computing at a much more affordable cost.

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

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.95
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

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Bartoli, A., Corsini, P., Dini, G., and Prete, C. (1995). Graphical design of distributed applications through reusable components. IEEE Parallel and Distributed Technology, 3 (1): 37–50.

    Article  Google Scholar 

  • Browne, J., Azam, M., and Sobek, S. (1989). Code: A unified approach to parallel programming. IEEE Software, 6 (4): 10–18.

    Article  Google Scholar 

  • Browne, J., Hyder, S., Dongarra, J., Moore, K., and Newton, P. (1995). Visual programming and debugging for parallel computing. IEEE Parallel and Distributed Technology,3(1):75–83.

    Article  Google Scholar 

  • Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA.

    Google Scholar 

  • Goswami, D. (2000). Parallel Architectural Skeletons: The Re-Usable Building Blocks in Parallel Applications. PhD thesis, Department of Electrical and Computer Engineering, University of Waterloo. In preparation.

    Google Scholar 

  • Goswami, D., Singh, A., and Preiss, B. (1999a). Architectural skeletons: The reusable building-blocks for parallel applications. In 1999 International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’99),Las Vegas, NV.

    Google Scholar 

  • Goswami, D., Singh, A., and Preiss, B. (1999b). Using object-oriented techniques for realizing parallel architectural skeletons. In The Third International Symposium on Computing in Object-oriented Parallel Environments (ISCOPE’99),San Francisco, CA. In Lecture Notes in Computer Science, Vol. 1732, pp 130–141.

    Google Scholar 

  • Gropp, W., Lusk, E., and Skjellum, A. (1994). Using MPI: Portable Parallel Programming with the Message-Passing Interface. MIT Press, Cambridge, MA.

    Google Scholar 

  • Halstead, M. (1977). Elements of Software Science. Elsevier North-Holland.

    MATH  Google Scholar 

  • McCabe, T. and Butler, C. (1989). Design complexity measurement and testing. Communications of the ACM, 32 (12): 1415–1425.

    Article  Google Scholar 

  • Meszaros, G. and Doble, J. (1997). A pattern language for pattern writing. In Pattern Languages of Program Design-3,Software Patterns Series. Addison-Wesley, Reading, MA.

    Google Scholar 

  • Schaeffer, J., Szafron, D., Lobe, G., and Parsons, I. (1993). The enterprise model for developing distributed applications. IEEE Parallel and Distributed Technology, 1 (3): 85–96.

    Article  Google Scholar 

  • Schmidt, D. (1994). ACE: an object-oriented framework for developing distributed applications. In Proceedings. of the Sixth USENIX C++ Technical Conference,Cambridge, MA.

    Google Scholar 

  • Singh, A., Schaeffer, J., and Green, M. (1991). A Template-Based Approach to the Generation of Distributed Applications Using a Network of Workstations. IEEE Transactions on Parallel and Distributed Systems, 2 (1): 52–67.

    Article  Google Scholar 

  • Singh, A., Schaeffer, J., and Szafron, D. (1998). Experience with parallel programming using code templates. Concurrency: Practice and Experience, 10 (2): 91–120.

    Article  MATH  Google Scholar 

  • Siu, S. and Singh, A. (1997). Design patterns for parallel computing using a network of processors. In Sixth IEEE International Symposium on High Performance Distributed Computing, pp. 293–304.

    Google Scholar 

  • Tahvildari, L. (1998). Assessing the impact of using design-pattern-based systems. Master’s thesis, Department of Electrical and Computer Engineering, University of Waterloo.

    Google Scholar 

  • Tahvildari, L. and Singh, A. (2000). Impact of using pattern-based systems on the qualities of parallel applications. In Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications (PDPTA’2000),Las Vegas, NV.

    Google Scholar 

  • Wall, L., Christiansen, T., and Schwartz, R. (1996). Programming Perl O’Reilly & Associates.

    Google Scholar 

Download references

Authors

Editor information

Hakan Erdogmus Oryal Tanir

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer Science+Business Media New York

About this chapter

Cite this chapter

Goswami, D., Singh, A., Preiss, B.R. (2002). Building Parallel Applications Using Design Patterns. In: Erdogmus, H., Tanir, O. (eds) Advances in Software Engineering. Springer, New York, NY. https://doi.org/10.1007/978-0-387-21599-0_12

Download citation

  • DOI: https://doi.org/10.1007/978-0-387-21599-0_12

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4419-2878-8

  • Online ISBN: 978-0-387-21599-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics