An overview of the DANSE software architecture Michael Aivazis Caltech DANSE Kick-Off Meeting Pasadena Aug 15, 2006.

Slides:



Advertisements
Similar presentations
MicroKernel Pattern Presented by Sahibzada Sami ud din Kashif Khurshid.
Advertisements

A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
1 Software & Grid Middleware for Tier 2 Centers Rob Gardner Indiana University DOE/NSF Review of U.S. ATLAS and CMS Computing Projects Brookhaven National.
DANSE Distributed Data Analysis for Neutron Scattering Experiments Michael M. McKerns, Michael A.G. Aivazis, Tim M. Kelley, June Kim, and Brent Fultz.
ARCS Data Analysis Software An overview of the ARCS software management plan Michael Aivazis California Institute of Technology ARCS Baseline Review March.
Software Project Brent Fultz California Institute of Technology Issues Specifications Algorithms Web service model Plan for a plan.
DANSE Central Services Michael Aivazis Caltech NSF Review May 23, 2008.
© , Michael Aivazis DANSE Software Issues Michael Aivazis California Institute of Technology DANSE Software Workshop September 3-8, 2003.
The ARCS Data Analysis Software Michael Aivazis California Institute of Technology.
The ARCS Data Analysis Software Michael Aivazis California Institute of Technology.
© , Michael Aivazis DANSE Software Architecture Challenges and opportunities for the next generation of data analysis software Michael Aivazis.
Jun Peng Stanford University – Department of Civil and Environmental Engineering Nov 17, 2000 DISSERTATION PROPOSAL A Software Framework for Collaborative.
Pyre: a distributed component framework Michael Aivazis Caltech DANSE Developers Workshop January 22-23, 2007.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Data Structures and Programming.  John Edgar2.
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
.NET, and Service Gateways Group members: Andre Tran, Priyanka Gangishetty, Irena Mao, Wileen Chiu.
Slide 1 Copyright © 2003 Encapsule Systems, Inc. Hyperworx Platform Brief Modeling and deploying component software services with the Hyperworx™ platform.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
An Introduction to Software Architecture
NE II NOAA Environmental Software Infrastructure and Interoperability Program Cecelia DeLuca Sylvia Murphy V. Balaji GO-ESSP August 13, 2009 Germany NE.
Company Overview for GDF Suez December 29, Enthought’s Business Enthought provides products and consulting services for scientific software solutions.
Cluster Reliability Project ISIS Vanderbilt University.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
EMI INFSO-RI SA2 - Quality Assurance Alberto Aimar (CERN) SA2 Leader EMI First EC Review 22 June 2011, Brussels.
MathCore Engineering AB Experts in Modeling & Simulation WTC.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Through the development of advanced middleware, Grid computing has evolved to a mature technology in which scientists and researchers can leverage to gain.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
DANSE Central Services Michael Aivazis Caltech NSF Review May 31, 2007.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Chapter 2 Operating System Overview
Nick Draper 05/11/2008 Mantid Manipulation and Analysis Toolkit for ISIS data.
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Policy Based Data Management Data-Intensive Computing Distributed Collections Grid-Enabled Storage iRODS Reagan W. Moore 1.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
GRID Overview Internet2 Member Meeting Spring 2003 Sandra Redman Information Technology and Systems Center and Information Technology Research Center National.
NEES Cyberinfrastructure Center at the San Diego Supercomputer Center, UCSD George E. Brown, Jr. Network for Earthquake Engineering Simulation NEES TeraGrid.
Software Prototyping Rapid software development to validate requirements.
A Software Framework for Distributed Services Michael M. McKerns and Michael A.G. Aivazis California Institute of Technology, Pasadena, CA Introduction.
ProActive components and legacy code Matthieu MOREL.
Scientific Programmes Committee Centre for Aerospace Systems Design & Engineering Amitay Isaacs Department of Aerospace Engineering Indian Institute of.
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
 Programming - the process of creating computer programs.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
SMI 7 May 2008B. Franek SMI++ Framework Knowledge Exchange seminar 1 SMI++ Object-Oriented Framework for Designing and Implementing Distributed Control.
The Integrated Spectral Analysis Workbench (ISAW) DANSE Kickoff Meeting, Aug. 15, 2006, D. Mikkelson, T. Worlton, Julian Tao.
INFSO-RI JRA2 Test Management Tools Eva Takacs (4D SOFT) ETICS 2 Final Review Brussels - 11 May 2010.
David Adams ATLAS ATLAS Distributed Analysis and proposal for ATLAS-LHCb system David Adams BNL March 22, 2004 ATLAS-LHCb-GANGA Meeting.
 Can access all API’s made available by OS vendor.  SDK’s are platform-specific.  Each mobile OS comes with its own unique tools and GUI toolkit.
© 2009 Artisan Software Tools. All rights reserved. Testing Solutions with UML/SysML Andrew Stuart, Matthew Hause.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
The Post Windows Operating System
VisIt Project Overview
Prototyping in the software process
GeoFramework: Example of using frameworks in geophysics
Introduction to Operating System (OS)
Introduction to Software Testing
Module 01 ETICS Overview ETICS Online Tutorials
An Introduction to Software Architecture
Building Pyre Applications
Presentation transcript:

An overview of the DANSE software architecture Michael Aivazis Caltech DANSE Kick-Off Meeting Pasadena Aug 15, 2006

2 User stereotypes Visiting scientist occasional user of prepackaged and specialized analysis tools Instrument specialist author of prepackaged specialized tools Expert scientist prospective author/reviewer of PRL paper Analysis expert author of analysis, modeling or simulation software Software integrator responsible for extending software with new technology Framework maintainer responsible for maintaining and extending the DANSE infrastructure

3 Distributed services Workstation Front end Compute nodes launcher journal monitor solid fluid

4 Pyre: the integration architecture Pyre is a software architecture: a specification of the organization of the software system a description of the crucial structural elements and their interfaces a specification for the possible collaborations of these elements a strategy for the composition of structural and behavioral elements Pyre is multi-layered flexibility complexity management robustness under evolutionary pressures Pyre is a component framework application-general application-specific framework computational engines

5 Overview Projects Caltech ASC Center (DOE) Geodynamics (NSF): GeoFramework: $3M ITR, currently in its last year CIG ( $6.67M over 5 yearswww.geodynamics.org Radar interferometry (ROI_PAC) NASA and JPL internal funds Portability: languages: C, C++, F77, F90 compilers: all native compilers on supported platforms, gcc, Absoft, PGI platforms: all common Unix variants, OSX, Windows Statistics: 1200 classes, 75,000 lines of Python, 30,000 lines of C++ Largest run: nirvana at LANL, 1764 processors for 24 hrs, generated 1.5 Tb

6 Component architecture component bindings library extension component bindings custom code core facility framework facility component bindings custom code service requirement implementation package The integration framework is a set of co-operating abstract services FORTRAN/C/C++ python

7 Writing python bindings Given a “low level” routine, such as and a wrapper double danse::stableTimeStep(const char *); char pydanse_stableTimestep__name__[] = "stableTimestep"; PyObject * pydanse_stableTimestep(PyObject *, PyObject * args) { double dt = danse::stableTimeStep("deformation"); return Py_BuildValue(“d”, dt); } dt = danse.stableTimestep() one can place the result of the routine in a python variable The general case is not much more complicated than this

8 Encapsulating critical technologies Extensibility new algorithms and analysis engines technologies and infrastructure High end visualization easy access to large data sets single runs, backgrounds, archived data metadata distributed computing parallel computing Flexibility: interactivity: web, GUI, scripts must be able to do almost everything on a laptop

9 Quality assessment Correctness Logical coherence Robustness core dumps in the analysis codes prevent, handle environment errors outages misconfigurations Usability making everybody happy… Aesthetics

10 Maintenance and support Source control Robust and portable software build procedure Modern software design and implementation practices documentation of requirements, use cases, design, algorithms agile programming: “test before you implement” Quality control automation: regular (nightly) builds of the software base unit testing regression testing Tracking of bug and feature requests Release management Strong community involvement electronic notebooks, wiki, …

11 Support for concurrent applications Python as the driver for concurrent applications that are embarrassingly parallel have custom communication strategies sockets, ICE, shared memory Excellent support for MPI mpipython.exe : MPI enabled interpreter (needed only on some platforms) mpi : package with python bindings for MPI support for staging and launching communicator and processor group manipulation support for exchanging python objects among processors mpi.Application : support for launching and staging MPI applications descendant of pyre.application.Application auto-detection of parallelism fully configurable at runtime used as a base class for user defined application classes

12 Support for distributed computing We are in the process of migrating the existing support for distributed processing into gsl, a new package that completely encapsulates the middleware Provide both user space and grid-enabled solution User space: ssh, scp pyre service factories and component management Web services pyglobus Advanced features dynamic discovery for optimized deployment reservation system for computational resources

13 Status Leveraging pyre: large number of existing services component cores integration strategy well understood component harnesses support for user configurable properties is complete data transport Under construction user interfaces two application-generic prototypes under construction engines for analysis, simulation and modeling application-specific UI tests, of all sorts… documentation training materials