1 Gaspard Methodology The Y Model approach Models and UML profiles Arnaud CUCCURU, phd student ModEasy meeting, Lille, February 2005.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Automotive Embedded System Development in AUTOSAR
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 1.
School of EECS, Peking University “Advanced Compiler Techniques” (Fall 2011) Parallelism & Locality Optimization.
® IBM Software Group © 2006 IBM Corporation Rational Software France Object-Oriented Analysis and Design with UML2 and Rational Software Modeler 04. Other.
11 1 Hierarchical Coarse-grained Stream Compilation for Software Defined Radio Yuan Lin, Manjunath Kudlur, Scott Mahlke, Trevor Mudge Advanced Computer.
I/O Hardware n Incredible variety of I/O devices n Common concepts: – Port – connection point to the computer – Bus (daisy chain or shared direct access)
1 Input/Output Chapter 3 TOPICS Principles of I/O hardware Principles of I/O software I/O software layers Disks Clocks Reference: Operating Systems Design.
Introduction to Parallel Processing Ch. 12, Pg
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Distribution of Marks Internal Sessional Evaluation Assignments – 10 Quizzes – 10 Class Participation Attendence – 5 Mid – Term Test – 25 External Evaluation.
Lecture 2 – MapReduce CPE 458 – Parallel Programming, Spring 2009 Except as otherwise noted, the content of this presentation is licensed under the Creative.
1 Input/Output. 2 Principles of I/O Hardware Some typical device, network, and data base rates.
2 nd Year - 1 st Semester Asst. Lect. Mohammed Salim
Computer Architecture and Organization
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
An Introduction to Software Architecture
Multiprocessor systems Objective n the multiprocessors’ organization and implementation n the shared-memory in multiprocessor n static and dynamic connection.
The Architecture of Secure Systems Jim Alves-Foss Laboratory for Applied Logic Department of Computer Science University of Idaho By, Nagaashwini Katta.
Computer Architecture and Organization Introduction.
The Grid Component Model: an Overview “Proposal for a Grid Component Model” DPM02 “Basic Features of the Grid Component Model (assessed)” -- DPM04 CoreGrid.
Hinde Bouziane – CBHPC’08 – October 2008 Marco ALDINUCCI and Marco DANELUTTO UNIPI - University of Pisa (Italy) Hinde Lilia BOUZIANE and Christian.
Chapter 1 Introduction. Architecture & Organization 1 Architecture is those attributes visible to the programmer —Instruction set, number of bits used.
Modelling Class T16: Conceptual Modelling – Architecture Image from
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Modeling Component-based Software Systems with UML 2.0 George T. Edwards Jaiganesh Balasubramanian Arvind S. Krishna Vanderbilt University Nashville, TN.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Pipelined and Parallel Computing Data Dependency Analysis for 1 Hongtao Du AICIP Research Mar 9, 2006.
TTCN-3 MOST Challenges Maria Teodorescu
TAL7011 – Lecture 4 UML for Architecture Modeling.
Introduction Computer System “An electronic device, operating under the control of instructions stored in its own memory unit, that can accept data (input),
Introduction Object oriented design is a method where developers think in terms of objects instead of procedures or functions. SA/SD approach is based.
Parallelization of likelihood functions for data analysis Alfio Lazzaro CERN openlab Forum on Concurrent Programming Models and Frameworks.
L/O/G/O Input Output Chapter 4 CS.216 Computer Architecture and Organization.
Open System Interconnection Describe how information from a software application in one computer moves through a network medium to a software application.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Programmable Logic Controllers LO1: Understand the design and operational characteristics of a PLC system.
Computer Science 340 Software Design & Testing Software Architecture.
Outline Why this subject? What is High Performance Computing?
1 Domain Management in a Hierarchical Generic Models Library University Pascal Paoli of Corsica SPE Laboratory Fabrice BERNARDI, Jean-François SANTUCCI.
3/12/2013Computer Engg, IIT(BHU)1 CONCEPTS-1. Pipelining Pipelining is used to increase the speed of processing It uses temporal parallelism In pipelining,
Silberschatz, Galvin, and Gagne  Applied Operating System Concepts Module 12: I/O Systems I/O hardwared Application I/O Interface Kernel I/O.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
MINIX Presented by: Clinton Morse, Joseph Paetz, Theresa Sullivan, and Angela Volk.
Software Connectors. What is a Software Connector? 2 What is Connector? – Architectural element that models Interactions among components Rules that govern.
Chapter 1 Introduction.   In this chapter we will learn about structure and function of computer and possibly nature and characteristics of computer.
Lecture 13 Parallel Processing. 2 What is Parallel Computing? Traditionally software has been written for serial computation. Parallel computing is the.
Topics  Direct Predicate Characterization as an evaluation method.  Implementation and Testing of the Approach.  Conclusions and Future Work.
Parallel Patterns.
Module 12: I/O Systems I/O hardware Application I/O Interface
Module Goals Introduce structural VHDL constructs Use of components
J. Michael, M. Shing M. Miklaski, J. Babbitt Naval Postgraduate School
CS703 - Advanced Operating Systems
Service-centric Software Engineering
Subject Name: Embedded system Design Subject Code: 10EC74
ECEG-3202 Computer Architecture and Organization
Service-centric Software Engineering 1
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
ECEG-3202 Computer Architecture and Organization
An Introduction to Software Architecture
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Software Architecture
Design Yaodong Bi.
Module 12: I/O Systems I/O hardwared Application I/O Interface
Presentation transcript:

1 Gaspard Methodology The Y Model approach Models and UML profiles Arnaud CUCCURU, phd student ModEasy meeting, Lille, February 2005

2 Outline Y Model overview Common modeling paradigms Application modeling Hardware Architecture modeling Association modeling

3 “Y” model overview (1/2)

4 “Y” overview (2/2) Y Component Oriented Modeling Factorization mechanisms Expression of data dependences Data parallelism expression Resource dimensionning Grid modeling Spatial and temporal mapping of an application on an architecture

5 Common modeling paradigms Component oriented modeling Components libraries Factorization mechanisms

6 Common modeling paradigms: Component Oriented Modeling (1/2) Benefits: – Strong encapsulation (to ease reuse) – Hierarchichal description (to handle complexity)

7 Common modeling paradigms: Component Oriented Modeling (2/2) ComponentA ComponentB ComponentC InterfaceB InterfaceZ InterfaceC b : ComponentB c : ComponentC Component = Reusable design element Port = Encapsulation point Required interface = “Messages” that can be emitted Provided Interface = “Messages” that can be received Part = Component instance Connector = Messages media

8 Common modeling paradigms: Components Libraries «Metaclass» ElementaryComponent Predefined components: ElementaryComponent No internal structure description Supposed to be implemented in a library

9 Common modeling paradigms: Factorization mechanisms (1/4) «Metaclass» RepetitiveComponent «Metaclass» RepetitiveConnector Multidimentional Cardinalities Definition of a “repetition space”: RepetitiveComponent Use of multidimentional cardinalities on structural elements (parts and ports) Use of “smart” connectors to interconnect factorized elements: RepetitiveConnector Mechanisms inspired by the Array Oriented Language «Metaclass» ElementaryComponent

10 Common modeling paradigms: Factorization mechanisms (2/4) Component a3 : ComponentAa2 : ComponentAa1 : ComponentA PortsPartsConnectorsPotential factorization:

11 Common modeling paradigms: Factorization mechanisms (2/4) Component a3 : ComponentA a2 : ComponentA a1 : ComponentA PortsPotential factorization: [6] [2] [3] [ ] => Cardinalities

12 Common modeling paradigms: Factorization mechanisms (2/4) Component Potential factorization: [6] [3] a3 : ComponentA a2 : ComponentA a1 : ComponentA [2] [ ] Parts a : ComponentA [3] [2] [ ] => Cardinalities

13 Common modeling paradigms: Factorization mechanisms (2/4) Component Potential factorization: [6] [3] a : ComponentA [3] [2] [ ] Connectors «RepetitiveConnector» => RepetitiveConnector Several informations (vectors) are associated to Repetitive Connectors to describe connection patterns between ports: Origin, Paving, Fitting

14 Common modeling paradigms: Factorization mechanisms (2/4) Component [6] [3] a : ComponentA [3] [2] [ ] «RepetitiveConnector» RepetitiveComponent Factorization expressed In the context of a repetitive component Note: A repetitive component contains a repetition of a single part

15 Common modeling paradigms: Factorization mechanisms (3/4) Component a3 : ComponentA a2 : ComponentA a1 : ComponentA Basic idea: Handle ports with cardinalities as arrays of ports Dependences can be defined between patterns inside ports in the boundaries, and ports of the repeated parts

16 Common modeling paradigms: Factorization mechanisms (3/4) Component a3 : ComponentA a2 : ComponentA a1 : ComponentA Paving vector => identifies origin of each pattern inside the array of ports at the boundary, from a given Origin vector Paving limit is given by the cardinality associated to the repeated part (in this case 3) Origin = {0} Paving = {2} Origin = {0} Paving = {1}

17 Common modeling paradigms: Factorization mechanisms (3/4) Component a3 : ComponentA a2 : ComponentA a1 : ComponentA An index vector is implicitely associated to each repetition of the part (Coordinates in the repetition space) Origin of the pattern associated to each part = origin + index x paving Origin = {0} Paving = {2} Origin = {0} Paving = {1} {2} {1} {0}

18 Common modeling paradigms: Factorization mechanisms (3/4) Component a3 : ComponentA a2 : ComponentA a1 : ComponentA Fitting vector => determines the ports that belong to a given pattern inside of an array (from the origin of the pattern given by the Paving) Fitting limit is given by the cardinality associated to the ports of the repeated part Origin = {0} Paving = {2} Origin = {0} Paving = {1} Fitting = {1} Fitting = {}

19 Common modeling paradigms: Factorization mechanisms (3/4) [6] [3] a : ComponentA [3] [2] [ ] «RepetitiveConnector» Origin={0} Paving={2} Fitting={1} «RepetitiveConnector» Origin={0} Paving={1} Ftting={} RepetitiveComponent Final compact representation

20 Common modeling paradigms: Factorization mechanisms (4/4) «Metaclass» RepetitiveComponent «Metaclass» RepetitiveConnector Expression of connections between repeated instances: SelfConnector = Connection between different points of the repetition space «Metaclass» SelfConnector «Metaclass» ElementaryComponent

21 Common modeling paradigms: Factorization mechanisms (4/4) Component a3 : ComponentA a2 : ComponentA a1 : ComponentA Example: Ring topology Each instance is able to communicate with its neighbour provreq provreq provreq

22 Common modeling paradigms: Factorization mechanisms (4/4) RepetitiveComponent a : ComponentA [3] Factorization of parts in the context of a RepetitiveComponent Connection between points of the repetition space = Connection between different instances of the repeated part => SelfConnector provreq «SelfConnector» RepetitionSpaceDependance = {1} Modulo = true

23 Common modeling paradigms: Factorization mechanisms (4/4) RepetitiveComponent index of the “neighbour” = index + RepititionSpaceDependence mod RepetitionSpace size (i.e. Cardinality of the repeated part) a3 : ComponentAa2 : ComponentAa1 : ComponentA provreq provreq provreq {2} {1}{0} {0} + {1} mod {3} {1} + {1} mod {3} {2} + {1} mod {3}

24 Application modeling Data Parallelism expression Spatial and temporal dimensions unification Inter-repetition dependences

25 Application modeling AppComponent ~= Function Ports ~= Data handled (mainly multidimentional arrays) Connectors ~= Data dependencies => Expression of applications via expression of Data dependencies

26 Application modeling: Data parallelism expression (1/2) Example: Computations on a 4x4 array to produce a 2x2 Input and output arrays can be decomposed into patterns array pattern array

27 Application modeling: Data parallelism expression (1/2) Example: Computations on a 4x4 array to produce a 2x2 Input and output arrays can be decomposed into patterns Each pattern can be computed independently: Potential Data Parallelism => Represented with the common factorization mechanisms array 1,1 0,1 1,0 0,0 Origin = {0,0} Paving = {{2,0},{0,2}} Fitting = {{1,0},{0,1}} Origin = {0,0} Paving = {{1,0},{0,1}} Fitting = {{},{}}

28 Application modeling: Data parallelism expression (2/2) array pattern array

29 Application modeling: Data parallelism expression (2/2) array pattern array RepetitiveComponent

30 Application modeling: Data parallelism expression (2/2) array pattern array RepetitiveComponent p : Part

31 Application modeling: Data parallelism expression (2/2) RepetitiveComponent p : Part [4,4][2,2] [ ] [2,2]

32 Application modeling: Data parallelism expression (2/2) RepetitiveComponent p : Part [2,2] [4,4][2,2] [ ] [2,2] «RepetitiveConnector»

33 Application modeling: Spatial and Temporal dimensions unification (1/2) Example: Signal processing application: Infinite stream of data consumed and produced Idea: Infinite stream = Infinite dimension of an Array Spatial and temporal dimension in an array => Modeling of time and space dependences with the same formalism Infinite vector

34 Application modeling: Spatial and Temporal dimensions unification (2/2) RepetitiveComponent p : Part [*] [*][*][*][*] [*][*] [*][*] «RepetitiveConnector» Origin = {0} Paving = {1} Fitting = {} Origin = {0} Paving = {1} Fitting = {}

35 Application modeling: Inter repetition dependences (1/2) Inter repetition dependences

36 Application modeling: Inter repetition dependences (2/2) RepetitiveComponent p : Part [3] [3][1] [3] «RepetitiveConnector» Origin = {0} Paving = {1} Fitting = {} Origin = {0} Paving = {1} Fitting = {} «SelfConnector» RepetitionSpaceDependance = {1} Modulo = false

37 Hardware Architecture modeling Resources classification Complex connection patterns expression “Grid” topologies modeling

38 Hardware Architecture modeling HwComponent = Hardware resource

39 Hardware Architecture modeling: Resources classification Passive: to support data. Example: RAM, ROM, SAM… Active: able to read or write in passive resources, with or without modifications, and to sequence operations. Example: CPU, DMA. Interconnect: interconnection between passive and active elements, or active and active. Example: Bus, static/dynamic interconnection networks,…

40 Hardware Architecture modeling: Complex connection patterns (1/2) : Crossbar2x2 «CompoundHwComponent » Omega8x8

41 Hardware Architecture modeling: Complex connection patterns (2/2) «HwRepetitiveComponent » OmegaStage : Crossbar2x2 [2,2] [8] [2] [8] origin = {0} paving = {{2},{2}} fitting = {1} origin = {0} paving = {{4},{1}} fitting = {2} «RepetitiveConnector»

42 Hardware Architecture modeling: “Grid” topologies modeling (1/2) Example: 4x4 cyclic grid of communicating PEs

43 Hardware Architecture modeling: “Grid” topologies modeling (2/2) Example: 4x4 cyclic grid of communicating PEs pe : PE [4,4] « HwRepetitiveComponent » CyclicGrid4x4 «SelfConnector» RepetitionSpaceDependance = {1,0} Modulo = true «SelfConnector» RepetitionSpaceDependance = {1,0} Modulo = true

44 Association modeling In progress…

45 Association modeling Association = distribution + scheduling – distribution = spatial mapping code on active (and passive) data on passive communications on paths – scheduling = temporal mapping for tasks memory allocation