SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.

Slides:



Advertisements
Similar presentations
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Advertisements

COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Case Study: The E1 Distributed Operating System Chris Krentz 3/20/2007.
Java Implementation of Petuum Yuxin Su September 2, 2014.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
Games Development 2 Entity / Architecture Review CO3301 Week
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Chapter 7 Designing Classes. Class Design When we are developing a piece of software, we want to design the software We don’t want to just sit down and.
Dr. Ken Hoganson, © August 2014 Programming in R STAT8030 Programming in R COURSE NOTES 1: Hoganson Programming Languages.
Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.
1 Developing Native Device for MPJ Express Advisor: Dr. Aamir Shafi Co-advisor: Ms Samin Khaliq.
Adapting Legacy Computational Software for XMSF 1 © 2003 White & Pullen, GMU03F-SIW-112 Adapting Legacy Computational Software for XMSF Elizabeth L. White.
Introduction to Object-oriented programming and software development Lecture 1.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
1 MDWE'2008, Toulouse, France, September 30, 2008 A Comparative Analysis of Transformation Engines for User Interface Development Juan Manuel González.
CCA Common Component Architecture CCA Forum Tutorial Working Group Components for Scientific.
Architecting Web Services Unit – II – PART - III.
Introduction To System Analysis and Design
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
SIAM Computational Science and Engineering1 10 February Components for Scientific Computing: An Introduction David E. Bernholdt Computer Science.
CCA Common Component Architecture CCA Forum Tutorial Working Group Introduction to Components.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
CSE 219 Computer Science III Program Design Principles.
Accelerating Scientific Exploration Using Workflow Automation Systems Terence Critchlow (LLNL) Ilkay Altintas (SDSC) Scott Klasky(ORNL) Mladen Vouk (NCSU)
Nick Draper 05/11/2008 Mantid Manipulation and Analysis Toolkit for ISIS data.
Component Technology. Challenges Facing the Software Industry Today’s applications are large & complex – time consuming to develop, difficult and costly.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
Components for Beam Dynamics Douglas R. Dechow, Tech-X Lois Curfman McInnes, ANL Boyana Norris, ANL With thanks to the Common Component Architecture (CCA)
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
Center for Component Technology for Terascale Simulation Software CCA is about: Enhancing Programmer Productivity without sacrificing performance. Supporting.
Chapter 18 Object Database Management Systems. McGraw-Hill/Irwin © 2004 The McGraw-Hill Companies, Inc. All rights reserved. Outline Motivation for object.
Functions, Procedures, and Abstraction Dr. José M. Reyes Álamo.
Presented by An Overview of the Common Component Architecture (CCA) The CCA Forum and the Center for Technology for Advanced Scientific Component Software.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Grid-based Collaboration in Interactive Data Language Applications Minjun Wang Department of Electrical Engineering and Computer Science Syracuse University,
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Frameworks CompSci 230 S Software Construction.
Software Design: Principles, Process, and Concepts Getting Started with Design.
MODPI: A parallel MOdel Data Passing Interface for integrating legacy environmental system models A. Dozier, O. David, Y. Zhang, and M. Arabi.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
SOAP-based Web Services Telerik Software Academy Software Quality Assurance.
Distributed Components for Integrating Large- Scale High Performance Computing Applications Nanbor Wang, Roopa Pundaleeka and Johan Carlsson
Connections to Other Packages The Cactus Team Albert Einstein Institute
Scientific Programmes Committee Centre for Aerospace Systems Design & Engineering Amitay Isaacs Department of Aerospace Engineering Indian Institute of.
Toward interactive visualization in a distributed workflow Steven G. Parker Oscar Barney Ayla Khan Thiago Ize Steven G. Parker Oscar Barney Ayla Khan Thiago.
Design Patterns Software Engineering CS 561. Last Time Introduced design patterns Abstraction-Occurrence General Hierarchy Player-Role.
CCA Common Component Architecture CCA Forum Tutorial Working Group An Overview of Components.
 Programming - the process of creating computer programs.
Data Design and Implementation. Definitions Atomic or primitive type A data type whose elements are single, non-decomposable data items Composite type.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
25 April Unified Cryptologic Architecture: A Framework for a Service Based Architecture Unified Cryptologic Architecture: A Framework for a Service.
Fall CSE330/CIS550: Introduction to Database Management Systems Prof. Susan Davidson Office: 278 Moore Office hours: TTh
Chapter 18 Object Database Management Systems. Outline Motivation for object database management Object-oriented principles Architectures for object database.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Satisfying Requirements BPF for DRA shall address: –DAQ Environment (Eclipse RCP): Gumtree ISEE workbench integration; –Design Composing and Configurability,
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Vertical Integration Across Biological Scales A New Framework for the Systematic Integration of Models in Systems Biology University College London CoMPLEX.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
CSC 222: Object-Oriented Programming
Distribution and components
CSC 222: Object-Oriented Programming
University of Technology
MPJ: A Java-based Parallel Computing System
Presentation transcript:

SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney

Scientific Computing and Imaging Institute, University of Utah SCIRun with PtolemyII

Scientific Computing and Imaging Institute, University of Utah SCIRun with PtolemyII SCIRunJNIActor declares native methods implemented in SCIRun Ptolemy package using JNI interface Actor accepts ObjectToken encapsulating SCIRunData class: contains type information and raw data Actor calls native functions that access data object in Java

Scientific Computing and Imaging Institute, University of Utah SCIRun with PtolemyII SCIRun contains modules that: Convert multi-dimensional arrays from Java object to nrrd (nearly raw raster data) format (Ptolemy package) Convert nrrd data to SCIRun types (Teem package) Example of data stored in a nrrd Arrow points to the module that reads data from Java

Scientific Computing and Imaging Institute, University of Utah Nearly Raw Raster Data (NRRD) Format Library and file format that supports image processing involving N-dimensional raster data and supports a large range of data types Distributed with Gordon Kindlmann’s Teem library Teem is used for manipulation of structured scientific data Can be thought of as wrappers for raw data and are easier to create than SCIRun data objects for simple datatypes SCIRun’s Teem interface has modules that convert nrrds to SCIRun data types

Scientific Computing and Imaging Institute, University of Utah Current Status Simple initial test case randomly generated mesh converted to SCIRun mesh via Teem nrrd to field converter requires pre-existing SCIRun network file containing instance of Ptolemy converter module (name and path of saved network set by SCIRunJNIActor)

Scientific Computing and Imaging Institute, University of Utah Current Caveats SCIRun thread library vs. native threads used by JNI: interface is currently somewhat unstable Data from other actors must be encapsulated in SCIRun data object Teem package converters may limit access to full range of SCIRun datatypes

Scientific Computing and Imaging Institute, University of Utah Next Steps Insert SCIRun into SPA workflow Target specific workflows Expand support for SCIRun data types Improve SCIRun synchronization with Java Add ability to send data from SCIRun to Java actors Increase efficiency of reading large data sets from Java Allow processing of multiple data sets in one iteration or over multiple iterations

Scientific Computing and Imaging Institute, University of Utah What are Components? No universally accepted definition in computer science research …yet A unit of software development/deployment/reuse i.e. has interesting functionality Ideally, functionality someone else might be able to (re)use Can be developed independently of other components Interacts with the outside world only through well-defined interfaces Implementation is opaque to the outside world Can be composed with other components “Plug and play” model to build applications Composition based on interfaces

Scientific Computing and Imaging Institute, University of Utah What is a Component Architecture? A set of standards that allows: Multiple groups to write units of software (components)… And have confidence that their components will work with other components written in the same architecture These standards define… The rights and responsibilities of a component How components express their interfaces The degree to which components are protected from each other The environment in which are composed to form an application and executed (framework) The rights and responsibilities of the framework

Scientific Computing and Imaging Institute, University of Utah What is the CCA? CCA is a specification of a component environment designed for high performance scientific computing Specification is decided by the CCA Forum ­CCA Forum membership open to all “CCA-compliant” just means conforming to the specification ­Doesn’t require using any of our code! A tool to enhance the productivity of scientific programmers Make the hard things easier, make some intractable things tractable Support & promote reuse & interoperability Not a magic bullet

Scientific Computing and Imaging Institute, University of Utah CCA Philosophy and Objectives Local and remote components Support local, HPC parallel, and distributed computing High Performance Design should support high-performance mechanisms wherever possible (i.e. minimize copies, extra communications, extra synchronization) Support SPMD and MPMD parallelism Allow user to choose parallel programming models Heterogeneity Multiple architectures, languages, run-time systems used simultaneously in an application Integration Components should be easy to make and easy to use Openness and simplicity CCA spec should be open & usable with open software

Scientific Computing and Imaging Institute, University of Utah CCA Concepts: Language Interoperability Existing language interoperability approaches are “point- to-point” solutions Babel provides a unified approach in which all languages are considered peers Babel used primarily at interfaces C C++ f77 f90 Python Java Babel C C++ f77 f90 Python Java Few other component models support all languages and data types important for scientific computing

Scientific Computing and Imaging Institute, University of Utah CCA Implementations Caffeine (SCMD parallel, Babel or C++) SCIRun2 (Distributed, MCMD parallel, Babel or C++, incomplete) XCAT (Grid-based, C++) LegionCCA (Grid-based, uses Legion) Decaf (Single process, Babel)

Scientific Computing and Imaging Institute, University of Utah CCA myths (debunked) CCA is too complicated No, code integration is complicated Producing quality reusable code is complicated CCA makes both easier Some implementations are more complicated than they should be CCA is buggy No, but some (all) of the implementations are Some are better than others CCA has high overheads No, this has been measured to be about the cost of a C++ virtual function call for most cases CCA is a data model No, but you could use CCA to build one CCA is a workflow engine No, but you could use CCA to build one CCA is perfect No, but it is an open forum

Scientific Computing and Imaging Institute, University of Utah Should I use CCA? Of course! If you care about interoperable software for high- performance computing It won’t solve all of your problems If you are trying to build a complex system involving multiple languages If you don’t, you might end up creating something just like it Please participate in CCA forum and help us improve the specification

Scientific Computing and Imaging Institute, University of Utah