Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

From patterns to frameworks to parallel programs

Published: 01 December 2002 Publication History
  • Get Citation Alerts
  • Abstract

    Object-oriented programming, design patterns, and frameworks are abstraction techniques that have been used to reduce the complexity of sequential programming. This paper describes our approach of applying these three techniques to the more difficult parallel programming domain. The Parallel Design Patterns (PDP) process, the basis of the CO2P3S parallel programming system, combines these techniques in a layered development model. The result is a new approach to parallel programming that addresses correctness and openness in a unique way. At the topmost developmem layer, a customized framework is generated from a design pattern specification of the parallel structure of the program. This framework encapsulates all of the structural details of the pattern, including communication and synchronization, to prevent programmer errors and ensure correctness. Lower layers are used only for performance tuning to make the code as efficient as necessary. This paper describes CO2P3S, based on the PDP process, and demonstrates it using an example application. We also provide results from a usability study of CO2P3S.

    References

    [1]
    {1} J. Anvik, S. MacDonald, D. Szafron, J. Schaeffer, S. Bromling, K. Tan, Generating parallel programs from the wavefront design pattern, in: Proceedings of 7th International Workshop on High-Level Parallel Programming Models and Supportive Environments, 2002.]]
    [2]
    {2} B. Bacci, M. Danelutto, S. Orlando, S. Pelagatti, M. Vanneschi, P3L: a structured high level parallel language and its structured support, Concurrency: Practice and Experience 7 (3) (1995) 225-255.]]
    [3]
    {3} S. Bromling, Meta-programming with parallel design patterns, Master's thesis, Department of Computing Science, University of Alberta, 2001.]]
    [4]
    {4} F. Budinsky, M. Finnie, J. Vlissides, P. Yu, Automatic code generation from design patterns, IBM Systems Journal 35 (2) (1996) 151-171.]]
    [5]
    {5} K. Chandy, S. Taylor, An Introduction to Parallel Programming, Jones and Bartlett Publishers, 1992.]]
    [6]
    {6} M. Cole, Algorithmic Skeletons: A Structured Approach to the Management of Parallel Computation, MIT Press, 1988.]]
    [7]
    {7} I. Foster, Designing and Building Parallel Programs, Addison-Wesley, 1995.]]
    [8]
    {8} E. Gamma. R. Helm, R. Johnson, J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994.]]
    [9]
    {9} D. Goswami, A. Singh, B. Priess, Using object-oriented techniques for realizing parallel architectural skeletons, in: Proceedings of the Third International Scientific Computing in Object-Oriented Parallel Environments Conference, vol. 1732 of Lecture Notes in Computer Science, Springer-Verlag, 1999, pp 130-141.]]
    [10]
    {10} R. Johnson, Frameworks -- (components + patterns), CACM 40 (10) (1997) 39-42.]]
    [11]
    {11} R. Lavender, D. Schmidt. Active object: an object behavioral pattern for concurrent programming, in: J. Vlissides, J. Coplien, N. Kerth (Eds.), Pattern Languages of Program Design 2, Addison-Wesley, 1996, pp. 483-499 (Chapter 30).]]
    [12]
    {12} D. Lea, Concurrent Programming in Java: Design Principles and Patterns, second ed., Addison-Wesley, 1999.]]
    [13]
    {13} S. MacDonald, From patterns to frameworks to parallel programs. PhD Thesis. Department of Computing Science, University of Alberta, 2002.]]
    [14]
    {14} S. MacDonald, D. Szafron, J. Schaeffer, Object-oriented pattern-based parallel programming with automatically generated frameworks, in: Proceedings of the 5th USENIX Conference on Object-Oriented Technology and Systems, 1999, pp. 29-43.]]
    [15]
    {15} S. MacDonald, D. Szafron, J. Schaeffer, S. Bromling, Generating parallel program frameworks from parallel design patterns, in: Proceedings of the 6th International Euro-Par Conference, vol. 1900 of Lecture Notes in Computer Science, Springer-Verlag, 2000, pp. 95-104]]
    [16]
    {16} B. Massingill, T. Mattson, B. Sanders. Patterns for parallel application programs, in: Proceedings of the Sixth Pattern Languages of Programs Workshop, 1999, Proceedings available at http:// st-www.cs.uiuc.edu/~plop/plop99/proceedings/.]]
    [17]
    {17} F. Matthijs, W. Joosen, B. Robben, B. Vanhaute, P. Verbaeten. Multi-level patterns, in: Object-Oriented Technology (ECOOP'97 Workshop Reader), vol. 1357 of Lecture Notes in Computer Science, Springer-Verlag, 1998, pp. 112-115.]]
    [18]
    {18} J. Schaeffer, D Szafron, G. Lobe, I. Parsons, The Enterprise model for developing distributed applications, IEEE Parallel and Distributed Technology 1 (3) (1993) 85-96.]]
    [19]
    {19} D. Schmidt, The ADAPTIVE communication environment: object-oriented network programming components for developing client/server applications, in: Proceedings of the 12th Sun Users Group Conference, 1994.]]
    [20]
    {20} D. Schmidt, M. Stal, H. Rohnert, F. Buschmann, Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, vol. 2, Wiley & Sons, 2000.]]
    [21]
    {21} M. Sefika, A. Sane, R. Campbell. Monitoring compliance of a software system with its high-level design models, in: Proceedings of the 18th International Conference on Software Engineering, 1996, pp. 387-396.]]
    [22]
    {22} A. Singh, J Schaeffer, M. Green, A template-based approach to the generation of distributed applications using a network of workstations, IEEE Transactions on Parallel and Distributed Systems 2 (1) (1991) 52-67.]]
    [23]
    {23} A. Singh, J. Schaeffer, D. Szafron, Experience with parallel programming using code templates, Concurrency: Practice and Experience 10 (2) (1998) 91-120.]]
    [24]
    {24} S. Siu, M. De Simone, D. Goswami, A. Singh, Design patterns for parallel programming, in: Proceedings of the 1996 International Conference on Parallel and Distributed Processing Techniques and Applications, 1996. pp. 230-240.]]
    [25]
    {25} M. Snir, S, Otto, S. Hess-Lederman, D. Walker, J. Dongarra, MPI: the Complete Reference, MIT Press, 1996.]]
    [26]
    {26} D. Szafron, J. Schaeffer, An experiment to measure the usability of parallel programming systems, Concurrency: Practice and Experience 8 (2) (1996) 147-166.]]
    [27]
    {27} L. Tahvildari, A. Singh, Impact of using pattern-based systems on the qualities of parallel applications, in: Proceedings of the 2000 International Conference on Parallel and Distributed Processing Techniques and Applications, 2000, pp. 1713-1719.]]
    [28]
    {28} G. Wilson, Assessing the usability of parallel programming systems: the Cowichan problems, in: Proceedings of the IFIP Working Conference on Programming Environments for Massively Parallel Distributed Systems, 1994, pp. 183-193.]]
    [29]
    {29} G. Wilson, H. Bal, Using the Cowichan problems to assess the usability of Orca, IEEE Parallel and Distributed Technology 4 (3) (1996) 36-44.]]
    [30]
    {30} A. Witkin, M. Kass, Reaction-diffusion textures, Computer Graphics (SIGGRAPH '91 Proceedings) 25 (4) (1991) 299-308.]]

    Cited By

    View all
    • (2012)Automatic generation of software pipelines for heterogeneous parallel systemsProceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis10.5555/2388996.2389029(1-12)Online publication date: 10-Nov-2012
    • (2011)Intel's Array Building BlocksProceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization10.5555/2190025.2190069(224-235)Online publication date: 2-Apr-2011
    • (2010)A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablersSoftware—Practice & Experience10.5555/1890754.189075740:12(1135-1160)Online publication date: 1-Nov-2010
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image Parallel Computing
    Parallel Computing  Volume 28, Issue 12
    Special issue: Advanced environments for parallel and distributed computing
    December 2002
    195 pages

    Publisher

    Elsevier Science Publishers B. V.

    Netherlands

    Publication History

    Published: 01 December 2002

    Author Tags

    1. design patterns
    2. object-oriented frameworks
    3. parallel programming systems

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 28 Jul 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2012)Automatic generation of software pipelines for heterogeneous parallel systemsProceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis10.5555/2388996.2389029(1-12)Online publication date: 10-Nov-2012
    • (2011)Intel's Array Building BlocksProceedings of the 9th Annual IEEE/ACM International Symposium on Code Generation and Optimization10.5555/2190025.2190069(224-235)Online publication date: 2-Apr-2011
    • (2010)A survey of algorithmic skeleton frameworks: high-level structured parallel programming enablersSoftware—Practice & Experience10.5555/1890754.189075740:12(1135-1160)Online publication date: 1-Nov-2010
    • (2010)An approach for non-intrusively adding malleable fork/join parallelism into ordinary JavaBean compliant applicationsComputer Languages, Systems and Structures10.5555/1752265.175256336:3(288-315)Online publication date: 1-Oct-2010
    • (2009)Deferring design pattern decisions and automating structural pattern changes using a design-pattern-based programming systemACM Transactions on Programming Languages and Systems10.1145/1498926.149892731:3(1-49)Online publication date: 21-Apr-2009
    • (2009)On the exploitation of loop-level parallelism in embedded applicationsACM Transactions on Embedded Computing Systems10.1145/1457255.14572578:2(1-34)Online publication date: 9-Feb-2009
    • (2008)Parallelizing CADProceedings of the 45th annual Design Automation Conference10.1145/1391469.1391475(12-17)Online publication date: 8-Jun-2008
    • (2006)Babylon v2.0Proceedings of the 20th international conference on Parallel and distributed processing10.5555/1898699.1898726(226-226)Online publication date: 25-Apr-2006
    • (2006)Is MPI suitable for a generative design-pattern system?Parallel Computing10.1016/j.parco.2006.06.00832:7(616-626)Online publication date: 1-Sep-2006
    • (2006)Modeling master/worker applications for automatic performance tuningParallel Computing10.1016/j.parco.2006.06.00532:7(568-589)Online publication date: 1-Sep-2006
    • Show More Cited By

    View Options

    View options

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media