BROADWAY: A SOFTWARE ARCHITECTURE FOR SCIENTIFIC COMPUTING Samuel Z. Guyer and Calvin Lin The University of Texas.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

IPS: Implementation of Protocol Stacks for Embedded Systems Yan Wang Halmstad University, Sweden The Second Internal EPC Workshop IPS, Halmstad University,
Key-word Driven Automation Framework Shiva Kumar Soumya Dalvi May 25, 2007.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Programming Languages WHY MORE? Wasn’t ONE ENOUGH? Introduction to CS260.
Telescoping Languages: A Compiler Strategy for Implementation of High-Level Domain-Specific Programming Systems Ken Kennedy Rice University.
Reasons to study concepts of PL
The Procedure Abstraction Part I: Basics Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412.
Emergy Berger, Calvin Lin, Samuel Z. Guyer CSE 231 Presentation by Jennifer Grau.
Interpret Application Specifications
Exokernel: An Operating System Architecture for Application-Level Resource Management Dawson R. Engler, M. Frans Kaashoek, and James O’Toole Jr. M.I.T.
Jun Peng Stanford University – Department of Civil and Environmental Engineering Nov 17, 2000 DISSERTATION PROPOSAL A Software Framework for Collaborative.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Who am I? ● Catalin Comanici ● QA for 10 years, doing test automation for about 6 years ● fun guy and rock star wannabe.
L6 - March 1, 2006copyright Thomas Pole , all rights reserved 1 Lecture 6: Software Packaging: Dynamically Integrable Components and Text Ch.
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.
The Old World Meets the New: Utilizing Java Technology to Revitalize and Enhance NASA Scientific Legacy Code Michael D. Elder Furman University Hayden.
HW/SW/FW Allocation – Page 1 of 14CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Allocation of Hardware, Software, and Firmware.
Ceg860 (Prasad)L6MR1 Modularity Extendibility Reusability.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
Requirements Engineering Requirements Elicitation Process Lecture-8.
1 SAM /JUNE/2000 SDL Based Auto Code Generation: A Multi Beneficial Approach Bhaskar Rao.G Software Engineering Group, Motorola India Electronics.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
1 ENERGY 211 / CME 211 Lecture 26 November 19, 2008.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Generative Programming. Automated Assembly Lines.
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
Jan. 29, 2002Grand Challenges in Simulation Issues in Enhancing Model Reuse C. Michael Overstreet Richard E. Nance Osman Balci.
The LC-3 – Chapter 7 COMP 2620 Dr. James Money COMP
1 Optimizing compiler tools and building blocks project Alexander Drozdov, PhD Sergey Novikov, PhD.
Precedence Health Care The MAS – SE Gap: Bridging the Divide Michael Georgeff Precedence Health Care & Monash University Autonomous Agents and Multiagent.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Improving I/O with Compiler-Supported Parallelism Why Should We Care About I/O? Disk access speeds are much slower than processor and memory access speeds.
LESSON 3. Properties of Well-Engineered Software The attributes or properties of a software product are characteristics displayed by the product once.
Chapter One Developments in the Application of Information Technology in Business Presented by James Weimholt.
 Pinpoint Systems Corporation is a provider of marketing solutions and marketing automation software implementation services that help increase the profitability.
1/30/2003 Los Alamos National Laboratory1 A Migration Framework for Legacy Scientific Applications  Current tendency: monolithic architectures large,
CPSC 872 John D. McGregor Session 31 This is it..
Software Design and Development Development Methodoligies Computing Science.
By Jeremy Burdette & Daniel Gottlieb. It is an architecture It is not a technology May not fit all businesses “Service” doesn’t mean Web Service It is.
A service Oriented Architecture & Web Service Technology.
The Structuring of Systems Using Upcalls By David D. Clark Presented by Samuel Moffatt.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
Migration of Legacy Software to Service Oriented Architecture Edward Stehle, Brian Pyles, Jonathon Max- Sohmer, Kevin Lynch.
1 CASE Computer Aided Software Engineering. 2 What is CASE ? A good workshop for any craftsperson has three primary characteristics 1.A collection of.
Advanced Software Engineering Dr. Cheng
DDC 2223 SYSTEM SOFTWARE DDC2223 SYSTEM SOFTWARE.
Definition of CIM “CIM is the integration of the total manufacturing enterprise through the use of integrated systems and data communications coupled.
Software Architecture and Quality BY
The Development Process of Web Applications
Distribution and components
1.1 Reasons to study concepts of PLs
Business Rule Based Configuration Management and Software System Implementation Using Decision Tables Olegas Vasilecas, Aidas Smaizys VGTU, Vilnius, Lithuania.
Calpa: A Tool for Automating Dynamic Compilation
Chapter 7 –Implementation Issues
MIT AI Lab: B. Williams, H. Shrobe, R. Laddaga
Mark McKelvin EE249 Embedded System Design December 03, 2002
The Software Development Process
Quality-aware Middleware
Software Development Chapter 1.
Reasons To Study Programming Languages
Presentation transcript:

BROADWAY: A SOFTWARE ARCHITECTURE FOR SCIENTIFIC COMPUTING Samuel Z. Guyer and Calvin Lin The University of Texas

MOTIVATION  Efficient runtime algorithms and efficient memory usage are critical Temps programmers to emphasize performance over clarity Temps programmers to emphasize performance over clarity Often complicates long term maintenance and portability of scientific code. Often complicates long term maintenance and portability of scientific code.  Practitioners of scientific computing are typically unwilling to try novel languages or use sophisticated design methodologies  Deep knowledge of scientific domain is required

BROADWAY COMPILER SYSTEM ARCHITECTURE Library Annotations Header flies Source Code Application Source code Application Source code Integrated and optimized code Integrated and optimized code Broadway Compiler

Performance problems caused by use of software libraries  Different clients have different needs  “Separation of concerns” inhibits information flow across interfaces  Worst case assumptions provide generality at the expense of performance  Modular structure leads to poor resource management  No performance portability  Premature optimization complicates maintenance  Interface bloat defeats modularity

LIBRARY LEVEL OPITIMIZATIONS  Replace general purpose routines with customized routines that run much faster. Can make stronger assumptions about calling context, allowing for more efficient execution Can make stronger assumptions about calling context, allowing for more efficient execution Avoid interface bloat Avoid interface bloat  Use of annotated language to describe domain specific information  Optimization requires application programmer to have little knowledge of library  Broadway compiler can specialize library routines in ways that the library designer did not foresee.

BROADWAY AS A META INTERFACE Application Base Interface Black Box  Use of black boxes leads to performance problems Implementation and interface that black boxes provide will inevitably be inappropriate for some client Implementation and interface that black boxes provide will inevitably be inappropriate for some client

BROADWAY AS A META INTERFACE  Solution: provide 2 interfaces, a base, which most clients use, and a separate meta interface, which allows the black box to adapt to the needs of different clients Application Base Interface Black Box Meta- Interface Meta- Program

Experimental Results Benefit of Automated Approach Tedious transformations can be applied uniformly and completely!

Conclusion  Provided mechanism for improving performance Create different library implementations and interfaces for different clients Create different library implementations and interfaces for different clients Conveys library-specific information to the compiler and use this information to customize the library for different users. Conveys library-specific information to the compiler and use this information to customize the library for different users. Replaces invocations of general routines with invocations of specialized routines, thereby relaxing worst case assumptions. Replaces invocations of general routines with invocations of specialized routines, thereby relaxing worst case assumptions.  Improves the maintenance and portability of applications  Enhances the value of legacy codes  Provides clean division of labor

Discussion  What are the possible downfalls?  Meta-Object Protocols Provide mechanism to change the way a language is compiled. Provide mechanism to change the way a language is compiled.  Future optimizations?