skip to main content
10.1145/2578903.2579142acmconferencesArticle/Chapter ViewAbstractPublication PagesplopConference Proceedingsconference-collections
research-article

HiLPR: pretty pictures for pretty complicated (parallel) patterns

Published: 21 October 2011 Publication History

Abstract

Users of parallel patterns need to carefully consider many subtle aspects of software design. In particular, implicit relationships with hardware realities coupled with aggressive strategies for optimization are daunting in this domain. This paper proposes a new way to leverage visual cues in HiLPR, a proposed uniform representation for parallel patterns. We show the application of this approach to three design patterns: Sparse Linear Algebra, Pipeline, and Shared Queue. An evaluation of the combination of a pattern's Forces with its Solution within this representation indicates that this approach holds promise in terms of assisting developers in making better-informed decisions about pattern implementation.

References

[1]
E. Agerbo and A. Cornils. How to preserve the benefits of design patterns. In Proceedings of the Conference on Object-Oriented Programming Systems Languages and Applications (OOPSLA), pages 134--143. ACM Press, 1998.
[2]
C. Alexander, S. Ishikawa, and M. Silverstein. A Pattern Language: Towns, Buildings, Construction. Oxford University Press, New York, 1977.
[3]
E. L. Baniassad, G. C. Murphy, and C. Schwanninger. Design pattern rationale graphs: Linking design to source. volume 0, pages 352--362, Los Alamitos, CA, USA, 2003. IEEE Computer Society.
[4]
Berkeley Parallel Computing Lab. A pattern language for parallel programming ver1.0. http://parlab.eecs.berkeley.edu/wiki/patterns/pattern1_0, 2010.
[5]
B. Catanzaro. Opencl optimization case study: Diagonal sparse matrix vector multiplication, 2010. http://developer.amd.com/documentation/articles/Pages/OpenCL-Optimization-Case-Study.aspx.
[6]
N. Chen, R. K. Karmani, A. Shali, B.-Y. Su, and R. Johnson. Collective Communication Patterns. In Workshop on Parallel Programming Patterns (ParaPLOP), 2009.
[7]
S. Clarke and E. Baniassad. Aspect-Oriented Analysis and Design. Addison-Wesley Professional, 2005.
[8]
D. Deugo, M. Weiss, and E. Kendall. Reusable patterns for agent coordination. In Omicini, A., Coordination of Internet Agents, pages 347--368. Springer, 2001.
[9]
E. Gamma, R. Helm, R. E. Johnson, and J. Vlissides. Design patterns: Abstraction and reuse of object-oriented design. In O. Nierstrasz, editor, ECOOP' 93 -- Object-Oriented Programming, volume 707 of Lecture Notes in Computer Science, pages 406--431. Springer Berlin/Heidelberg, 1993.
[10]
E. Gamma, R. Helm, R. E. Johnson, and J. Vlissides. Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley Publishing Company, Reading, Massachusetts, 1995.
[11]
C. Gibbs and Y. Coady. Joining Forces: A RIPPL Effect? A Constraint-Oriented Perspective on a Pervasive Pattern Language. Future Computing, Service Computation, Cognitive, Adaptive, Content, Patterns, Computation World, 0:214--219, 2009.
[12]
C. Gibbs and Y. Coady. Parallelization and the Application Programmer: Random Self-Oscillation or Old Faithful? Reno, NV, USA, 2010.
[13]
J. Hannemann and G. Kiczales. Design pattern implementation in java and aspectj. SIGPLAN Not., 37:161--173, November 2002.
[14]
G. Herriot et al. NFIRAOS: TMT's facility adaptive optics system. In Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series, volume 7736 of Society of Photo-Optical Instrumentation Engineers (SPIE) Conference Series, July 2010.
[15]
Hillside Group. Home of the Design Patterns Library and Host of the PLoP Conferences. http://hillside.net/, 2010.
[16]
R. Johnson. Using a pattern language to design a system. http://www.cincomsmalltalk.com/userblogs/ralph, July 2009.
[17]
R. Johnson, K. Keutzer, and T. Mattson. Mechanisms that separate algorithms from implementations for parallel patterns (paraplop). March 2009.
[18]
R. Johnson, K. Keutzer, and T. Mattson. Workshop on parallel programming patterns (paraplop). March 2010.
[19]
D. Kaminskyj Long, L. Kiemele, C. Gibbs, A. Brownsword, and Y. Coady. Mind the gap!: bridging the dichotomy of design and implementation. In Proceeding of the 4th international workshop on Software engineering for computational science and engineering, SECSE '11, pages 46--55, New York, NY, USA, 2011. ACM.
[20]
K. Keutzer and T. Mattson. A design pattern language for engineering (parallel) software. Intel Technology Journal: Addressing the Challenges of Tera-scale Computing, 13(4), 2010.
[21]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, and W. G. Griswold. An overview of aspectj. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 327--353. Springer-Verlag, 2001.
[22]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. V. Lopes, J. Loingtier, and J. Irwin. Aspect-oriented programming. In ECOOP, pages 220--242, 1997.
[23]
L. Kiemele. Design logbook: Implementation of the sparse linear algebra problem, 2011. http://www.liamkiemele.com/dbook/DesignLogbook.html.
[24]
Y. Lee. Pipeline pattern, 2009. http://parlab.eecs.berkeley.edu/wiki/_media/patterns/pipeline-v1.pdf.
[25]
T. Mattson and K. Keutzer. Our pattern language (opl). In Workshop on Parallel Programming Patterns (ParaPLOP), March 2009.
[26]
T. Mattson and M. Murphy. Sparse linear algebra pattern, 2009. http://parlab.eecs.berkeley.edu/iki/patterns/sparse_linear_algebra.
[27]
T. Mattson, B. Sanders, and B. Massingill. Patterns for Parallel Programming. Addison-Wesley Professional, first edition, 2004.
[28]
T. Mattson, B. Sanders, and B. Massingill. Patterns for parallel programming. Addison-Wesley Professional, first edition, 2004.
[29]
T. Mattson and Y. Yi. Shared queue pattern, 2008. http://parlab.eecs.berkeley.edu/wiki/_media/patterns/sharedqueue.pdf.
[30]
J. Noble, R. Biddie, and E. Tempero. Metaphor and metonymy in object-oriented design patterns. In In Proceedings of Australian Computer Science Conference (ACSC). Australian Computer Society, pages 187--195, 2002.
[31]
H. Ossher and P. Tarr. Using multidimensional separation of concerns to (re)shape evolving software. Communications of the ACM, 44:43--50, October 2001.
[32]
A. D. Robison and R. E. Johnson. Three layer cake for shared-memory programming (paraplop), 2010. http://www.upcrc.illinois.edu/workshops/paraplop10/papers/paraplop10_submission_8.pdf.
[33]
W. W. Royce. Managing the development of large software systems: concepts and techniques. In Proceedings of the 9th international conference on Software Engineering, ICSE '87, pages 328--338, Los Alamitos, CA, USA, 1987. IEEE Computer Society Press.
[34]
P. Tarr, H. Ossher, W. Harrison, and J. Stanley M. Sutton. N degrees of separation: multi-dimensional separation of concerns. volume 0, page 107, Los Alamitos, CA, USA, 1999. IEEE Computer Society.
[35]
J. Vlissides. Composite design patterns (they aren't what you think), June 1998. http://www.research.ibm.com/designpatterns/pubs/ph-jun98.pdf.
[36]
W. Zimmer. Relationships between design patterns. In Pattern Languages of Program Design, pages 345--364. Addison-Wesley, 1994.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
PLoP '11: Proceedings of the 18th Conference on Pattern Languages of Programs
October 2011
362 pages
ISBN:9781450312837
DOI:10.1145/2578903
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 21 October 2011

Check for updates

Author Tags

  1. design patterns
  2. parallel design patterns
  3. visual representations

Qualifiers

  • Research-article

Funding Sources

Conference

PLoP 11
Sponsor:
  • Hillside Group
  • ACM
PLoP 11: Pattern Languages of Programs Conference 2011
October 21 - 23, 2011
Oregon, Portland, USA

Acceptance Rates

Overall Acceptance Rate 28 of 36 submissions, 78%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 64
    Total Downloads
  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 06 Jan 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media