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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
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.
Browne, J., Azam, M., and Sobek, S. (1989). Code: A unified approach to parallel programming. IEEE Software, 6 (4): 10–18.
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.
Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1994). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading, MA.
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.
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.
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.
Gropp, W., Lusk, E., and Skjellum, A. (1994). Using MPI: Portable Parallel Programming with the Message-Passing Interface. MIT Press, Cambridge, MA.
Halstead, M. (1977). Elements of Software Science. Elsevier North-Holland.
McCabe, T. and Butler, C. (1989). Design complexity measurement and testing. Communications of the ACM, 32 (12): 1415–1425.
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.
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.
Schmidt, D. (1994). ACE: an object-oriented framework for developing distributed applications. In Proceedings. of the Sixth USENIX C++ Technical Conference,Cambridge, MA.
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.
Singh, A., Schaeffer, J., and Szafron, D. (1998). Experience with parallel programming using code templates. Concurrency: Practice and Experience, 10 (2): 91–120.
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.
Tahvildari, L. (1998). Assessing the impact of using design-pattern-based systems. Master’s thesis, Department of Electrical and Computer Engineering, University of Waterloo.
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.
Wall, L., Christiansen, T., and Schwartz, R. (1996). Programming Perl O’Reilly & Associates.
Editor information
Rights 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