OPL: Our Pattern Language. Background Design Patterns: Elements of Reusable Object-Oriented Software o Introduced patterns o Very influential book Pattern.

Slides:



Advertisements
Similar presentations
© 2005 by Prentice Hall Appendix 3 Object-Oriented Analysis and Design Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
Advertisements

Parallel Programming Patterns Ralph Johnson. Why patterns? Patterns for Parallel Programming The road ahead.
IMS1805 Systems Analysis Topic 3: Doing Analysis (continued from previous weeks)
Creating Computer Programs lesson 27. This lesson includes the following sections: What is a Computer Program? How Programs Solve Problems Two Approaches:
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
A system Performance Model Instructor: Dr. Yanqing Zhang Presented by: Rajapaksage Jayampthi S.
Weekly Report Ph.D. Student: Leo Lee date: Oct. 9, 2009.
Summary Background –Why do we need parallel processing? Applications Introduction in algorithms and applications –Methodology to develop efficient parallel.
Design Creative Process of transferring the problem into a solution
1 K. Yelick Teaching and Research in Computer Science Prof. Kathy Yelick EECS.
Data Parallel Algorithms Presented By: M.Mohsin Butt
Unified Modeling (Part I) Overview of UML & Modeling
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
CISC 879 : Software Support for Multicore Architectures John Cavazos Dept of Computer & Information Sciences University of Delaware
1 CMSC 132: Object-Oriented Programming II Software Development IV Department of Computer Science University of Maryland, College Park.
Establishing the overall structure of a software system
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
“Evaluating MapReduce for Multi-core and Multiprocessor Systems” Colby Ranger, Ramanan Raghuraman, Arun Penmetsa, Gary Bradski, Christos Kozyrakis Computer.
Client/Server Software Architectures Yonglei Tao.
© 2009 Mathew J. Sottile, Timothy G. Mattson, and Craig E Rasmussen 1 Concurrency in Programming Languages Matthew J. Sottile Timothy G. Mattson Craig.
Telecom Grade Cloud Computing László Szilágyi 26 April 2013.
Lecture 29 Fall 2006 Lecture 29: Parallel Programming Overview.
Development in hardware – Why? Option: array of custom processing nodes Step 1: analyze the application and extract the component tasks Step 2: design.
Thinking in Parallel Adopting the TCPP Core Curriculum in Computer Systems Principles Tim Richards University of Massachusetts Amherst.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
An Introduction to Software Architecture
1-1 © Prentice Hall, 2007 Chapter 1: The Object-Oriented Systems Development Environment Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
Unified Modeling Language, Version 2.0
Eng. Mohammed Timraz Electronics & Communication Engineer University of Palestine Faculty of Engineering and Urban planning Software Engineering Department.
EEL Software development for real-time engineering systems.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
Analysis of algorithms Analysis of algorithms is the branch of computer science that studies the performance of algorithms, especially their run time.
Jeff Marino & Ron Reed. Main Concepts Object-oriented programming is programming that is based on using premade objects and writing code for the objects.
UHD::3320::CH121 DESIGN PHASE Chapter 12. UHD::3320::CH122 Design Phase Two Aspects –Actions which operate on data –Data on which actions operate Two.
2 2009/10 Object Oriented Technology 1 Topic 2: Introduction to Object-Oriented Approach Reference: u Ch.16 Current Trends in System Development (Satzinger:
Processes Introduction to Operating Systems: Module 3.
Group 3: Architectural Design for Enhancing Programmability Dean Tullsen, Josep Torrellas, Luis Ceze, Mark Hill, Onur Mutlu, Sampath Kannan, Sarita Adve,
Summary Background –Why do we need parallel processing? Moore’s law. Applications. Introduction in algorithms and applications –Methodology to develop.
SOFTWARE DESIGN. INTRODUCTION There are 3 distinct types of activities in design 1.External design 2.Architectural design 3.Detailed design Architectural.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas -A large element is use of UML as.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Conceptual design Tells the customer what the system will do Tells the customer what the system will do Answers: Answers: Where will the data come from?
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
1 Unified Modeling Language, Version 2.0 Chapter 2.
A System Performance Model Distributed Process Scheduling.
Weekly Report- Reduction Ph.D. Student: Leo Lee date: Oct. 30, 2009.
CES 592 Theory of Software Systems B. Ravikumar (Ravi) Office: 124 Darwin Hall.
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
A Survey of Object-Oriented Concepts, by Oscar Nierstrasz Reviewed by Odd Petter N. Slyngstad for DT8100, 27/1/2005.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Parallel Programming Models EECC 756 David D. McGann 18 May, 1999.
What Do Computers Do? A computer system is
TensorFlow– A system for large-scale machine learning
Parallel Patterns.
AP Computer Science Principles
COMPUTATIONAL MODELS.
Design Patterns Damian Gordon.
Abstract Major Cloud computing companies have started to integrate frameworks for parallel data processing in their product portfolio, making it easy for.
Genomic Data Clustering on FPGAs for Compression
Business System Development
Summary Background Introduction in algorithms and applications
User Interface Design and Evaluation
Introduction to CUDA.
Use-Case Design in Context
Appendix 3 Object-Oriented Analysis and Design
Introduction to Computers
Presentation transcript:

OPL: Our Pattern Language

Background Design Patterns: Elements of Reusable Object-Oriented Software o Introduced patterns o Very influential book Pattern Language for Parallel Programming o Tim Mattson o Attempted to do for parallel software what other book did for Object-Oriented software o Low level focus

Background Berkeley Motifs o Berkeley ParLab o High level patterns OPL: Our Pattern Language o ParLab & Mattson o Unified approach o Architecture for software o Language to communicate

Top Level patterns Structural very high level how software is organized interaction identify the most computation Computational core of computation where what pattern how good efficiency related to structural patterns

Lower level patterns Algorithm o just lower than structural and computational o exploit concurrency o start to consider hardware limits Implementation o more specific technologies o writing pseudo-code Parallel Execution o lowest level o "hidden" o optimization o real machine actions

DNA Example Problem o Determine how similar genes are o Start with a strand of DNA o Deal with mutations in gene o Need to be able to compare many Approach o Parallelize for more comparisons o Allow for easy changing of comparison of genes o Dynamic Programming approach

DNA Example Patterns Structural: Map-Reduce Computational: Dynamic Programming Algorithm: Geometric Decomposition Implementation: Bulk Synchronous Processing Parallel Execution: Data Flow

DNA Example Code