An Accelerated Strategic Computing Initiative (ASCI) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical.

Slides:



Advertisements
Similar presentations
An Overview Of Virtual Machine Architectures Ross Rosemark.
Advertisements

Tahir Nawaz Introduction to.NET Framework. .NET – What Is It? Software platform Language neutral In other words:.NET is not a language (Runtime and a.
Software development process. Explanation of the iterative nature of the software development process.
Computers Are Your Future
Programming Logic and Design Fourth Edition, Introductory
ProActive Task Manager Component for SEGL Parameter Sweeping Natalia Currle-Linde and Wasseim Alzouabi High Performance Computing Center Stuttgart (HLRS),
Technical Architectures
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
ARCS Data Analysis Software An overview of the ARCS software management plan Michael Aivazis California Institute of Technology ARCS Baseline Review March.
Using Visual Basic 6.0 to Create Web-Based Database Applications
Telescoping Languages: A Compiler Strategy for Implementation of High-Level Domain-Specific Programming Systems Ken Kennedy Rice University.
Data Grids: Globus vs SRB. Maturity SRB  Older code base  Widely accepted across multiple communities  Core components are tightly integrated Globus.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November.
Java Programming, 3e Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
Chapter 2: Impact of Machine Architectures What is the Relationship Between Programs, Programming Languages, and Computers.
An Accelerated Strategic Computing Initiative (ASCI) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical.
Chapter 10 Application Development. Chapter Goals Describe the application development process and the role of methodologies, models and tools Compare.
1 © Prentice Hall, 2002 The Client/Server Database Environment.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
© 2006, Cognizant Technology Solutions. All Rights Reserved. The information contained herein is subject to change without notice. Automation – How to.
Microsoft Visual Basic 2005 CHAPTER 1 Introduction to Visual Basic 2005 Programming.
Introduction to High-Level Language Programming
INTRODUCTION TO WEB DATABASE PROGRAMMING
Java Programming, 2E Introductory Concepts and Techniques Chapter 1 An Introduction to Java and Program Design.
OpenAlea An OpenSource platform for plant modeling C. Pradal, S. Dufour-Kowalski, F. Boudon, C. Fournier, C. Godin.
ISYS 512 Business Application Design and Development with.Net David Chao.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
MBA 664 Database Management Systems Dave Salisbury ( )
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 10 Architectural Design.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Using Visual Basic 6.0 to Create Web-Based Database Applications
Programming. What is a Program ? Sets of instructions that get the computer to do something Instructions are translated, eventually, to machine language.
An Accelerated Strategic Computing Initiative (ASCI) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical.
Center for Magnetic Reconnection Studies The Magnetic Reconnection Code within the FLASH Framework Timur Linde, Leonid Malyshkin, Robert Rosner, and Andrew.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
JavaDoc1 JavaDoc DEPARTMENT OF COMPUTER SCIENCE AND SOFTWARE ENGINEERING CONCORDIA UNIVERSITY July 24, 2006 by Emil Vassev & Joey Paquet revision 1.2 –
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
1.8History of Java Java –Based on C and C++ –Originally developed in early 1991 for intelligent consumer electronic devices Market did not develop, project.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
CSE 219 Computer Science III Program Design Principles.
1 Chapter 13 Understanding Computers, 11 th Edition 13 Program Development and Programming Languages TODAY AND TOMORROW 11 th Edition CHAPTER.
An Accelerated Strategic Computing Initiative (ASCI) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical.
 Repository Model  Client-Server Model  Layered Model  Modular decomposition styles  Object Models  Function Oriented Pipelining  Control Styles.
_______________________________________________________________CMAQ Libraries and Utilities ___________________________________________________Community.
Advanced Simulation and Computing (ASC) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear.
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
Jian Gui WANG New Implementation of Agriculture Models APAN19---Jan New Implementations of Agriculture Models Using Mediate Architecture.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
Development of a Distributed MATLAB Environment with Real-Time Data Visualization Authors: Joseph Diamond, Richard McEver Affiliation: Dr. Jian Huang,
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
In the Labs… X-Bot 2003 by Overtech Technologies.
Connections to Other Packages The Cactus Team Albert Einstein Institute
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
HPD -- A High Performance Debugger Implementation A Parallel Tools Consortium project
An Accelerated Strategic Computing Initiative (ASCI) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical.
Reconfigurable Communication Interface Between FASTER and RTSim Dec0907.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Microsoft Visual Basic 2015 CHAPTER ONE Introduction to Visual Basic 2015 Programming.
Reference Implementation of the High Performance Debugging (HPD) Standard Kevin London ( ) Shirley Browne ( ) Robert.
Chapter Goals Describe the application development process and the role of methodologies, models, and tools Compare and contrast programming language generations.
NFV Compute Acceleration APIs and Evaluation
Kai Li, Allen D. Malony, Sameer Shende, Robert Bell
CST 1101 Problem Solving Using Computers
Chapter 9: The Client/Server Database Environment
The Client/Server Database Environment
A GUI Based Aid for Generation of Code-Frameworks of TMOs
Presentation transcript:

An Accelerated Strategic Computing Initiative (ASCI) Academic Strategic Alliances Program (ASAP) Center at The University of Chicago The Center for Astrophysical Thermonuclear Flashes Development version of Flash (Flash 2.0) A. Siegel Flash Code Architect Flash Code Group: A. Caceres, A. Calder, T. Dupont, J. Dursi, B. Fryxell, T. Linde, A. Mignone, K. Olson, P. Ricker, R. Rosner, K. Riley, A. Siegel, F. Timmes, H. Tufo, N. Vladimirova, G. Weirs, K. Young, M. Zingale

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Outline qGeneral goals for Flash development qApproach to Flash2.0 development qArchitectural changes in Flash2.0 q Flash2.0 performance (M. Zingale) q Flash2.0 compatibility testing (K. Riley) qAdditional tools in Flash2.0 q New FlashTest Implementation (A. Caceres) q FUI (K. Young) qFlash future

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Outline qGeneral goals for Flash development

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Flash Clients Developers Application Programmers End Users FLASH Framework Modular Design, Development Tools Extensibility Rules Ease of Use Modular testing Reduce learning curve Reduce debugging cycle Swap meshes Add Modules Add data structures Ease of deployment Portability Ease of use

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Minimal impact on performance!

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Outline qGeneral goals for Flash development qApproach to Flash2.0 development

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Flash1.6 Assessment qStrengths q Well tested, working q Easy to use, well documented q Portable q Efficient q Modular algorithmic structure qCompromises q Must be expert to develop q Non-scalable data sharing -> tight coupling q Does not take full advantage of new tools, languages q Overly dependent on Paramesh data management q No explicit extensibility API

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Strategy for migration to Flash2.0 qBuild from previous production version qDo not modify Paramesh qBackward compatibility, incremental testing scheme qWrap existing data structures when possible – minimize untangling of low-level code qMerge ongoing changes to production version qLanguage choices q Python (top level) q Fortran90 (drivers) q Not specified (modules) q Client GUI’s (Java Swing)

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Outline qGeneral goals for Flash development qApproach to Flash2.0 development qArchitectural changes in Flash2.0 q Flash2.0 performance q Flash2.0 compatibility testing

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Architectural Improvements in FLASH 2.0 qComplete restructuring of data sharing architecture q Variable database with simple API q Standardized interfaces for physics modules q Extensive use of class scope variables q Elimination of common data qGreater use of F90 features q Data hiding using private module fields q Structures, Intent statements q Modules attributes define extensibility qPython/autoconf top-level glue

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Hydro3d.f90 computeRHS(arglist); eulerStep(arglist); Physics Modules (easily interchanged) Driver.f90 evolve(); timeStep(); AMR Library (PARAMESH) Variable Database Evolve.f90 hydro3D( ); burn(); Burn.f90 burner(arglist); Class accessor methods Global memory Parameter list Data Flow PPM.f77NetInt.f77 EulerStep.c Top-level code glue (Python) Flash2.0 Architecture Standard interfaces Framework

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Flash2.0 Extensibility qImplement documented F90 Module methods q High-level code qApplication developer supplies hydro_1dModule and implements functions q Communication with code only through argList and database Subroutine hydro_sweep(…) use variable_database use runtime_parameters use hydro_1dModule, ONLY : hydro_1d, update_soln, & update_soln_boun ! … call hydro_1d(argList) call update_soln(argList) call update_soln_boun(argList)

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Outline qGeneral goals for Flash development qApproach to Flash2.0 development qArchitectural changes in Flash2.0 q Flash2.0 performance q Flash2.0 compatibility testing

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Flash2.0 Performance qPotential bottlenecks q Intuitive, string-based database API with error-checking q Numerous database calls q Sharing of module-scope variables – optimization hindrance?

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Flash2.0 Performance qPotential bottlenecks q Intuitive, string-based database API with error-checking q Numerous database calls q Sharing of module-scope variables – optimization hindrance? qPerformance results to date q 10-20% slowdown (worst case) q Comparable scaling

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Outline qGeneral goals for Flash development qApproach to Flash2.0 development qArchitectural changes in Flash2.0 q Flash2.0 performance q Flash2.0 compatibility testing qAdditional tools in Flash2.0 q New FlashTest Implementation (A. Caceres) q FUI (K. Young) qFlash future

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FlashTest Sample output: comparison test report Features: Runs a user-selected list of tests, each test produces an html report. Current tests: comparison, compilation Written in Python Architecture makes it simple to add new types of tests Future: Run tests on multiple hosts (Globus) More types of tests: scaling, performance... A program to automate FLASH verification

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Outline qGeneral goals for Flash development qApproach to Flash2.0 development qArchitectural changes in Flash2.0 q Flash2.0 performance q Flash2.0 compatibility testing qAdditional tools in Flash2.0 q New FlashTest Implementation (A. Caceres) q FUI (K. Young) qFlash future

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago FLASH 2.0 Graphical User Interface (FUI) ASCI Red ASCI Blue CLIENT FUI GUI to setup code o edit Modules/Configs o select compiler flags Copy code to Globus grid machine o select machine to run on o monitor/manage run with GUI Manage Globus commands built with FUI. Transfer output back to FUI for interpretation.

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Outline qGoals for Flash development qCore architectural changes in Flash2.0 qFlash2.0 performance qAdditional tools in Flash2.0 q FlashTest q FUI q Python glue qFlash future

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Flash Future qShort-term q Deploy Flash2.0 q Improve interfaces, enhance database q Complete client/server front-end using Globus q Integrate FlashTest and FUI qLonger term q Incorporate remote visualization tools q Architect for Threading (OpenMP) q Add data structures qOngoing q Build new strategies into framework (Linde, Weirs, Paul Fisher) q Collaboration with CCA Forum to define standard mesh API’s q L. Freitag, R. Loy, R. Lusk q Incorporate new mesh implementations

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Summary qNew version of Flash (nearing deployment) qCompletely overhauled data-flow architecture qFoundation for extensibility API, future Flash development qSpeeds development, debugging qNew tools for ease of use, testing

The ASCI/Alliances Center for Astrophysical Thermonuclear Flashes The University of Chicago Software Architecture Shared Libraries Objects (non-abstract) Components Implementations Frameworks Driver Subdriver config Driver factoryAbstract classes client server