A Brief Introduction to the CSDMS Initiative Dr. Scott Peckham Chief Software Architect for CSDMS October 26, 2007 csdms.colorado.edu CUAHSI Fall 2007.

Slides:



Advertisements
Similar presentations
Earth System Curator Spanning the Gap Between Models and Datasets.
Advertisements

Metadata Development in the Earth System Curator Spanning the Gap Between Models and Datasets Rocky Dunlap, Georgia Tech.
Using R as enterprise-wide data analysis platform Zivan Karaman.
CIM2564 Introduction to Development Frameworks 1 Overview of a Development Framework Topic 1.
Fall 2009 CSDMS WG Update James Syvitski CSDMS Integration Facility Boulder CO.
Contributing source code to CSDMS Albert Kettner.
Coupling the TopoFlow and GC2D Models as CCA Components Scott D. Peckham University of Colorado, Boulder October 26, 2009
Coupling the TopoFlow and GC2D Models as CCA Components Scott D. Peckham University of Colorado, Boulder October 5, 2009
An “IRF Interface” Example Scott D. Peckham CSDMS Integration Facility University of Colorado Joint Meeting of the CSDMS Terrestrial and Coastal Working.
Advantages of Using the Common Component Architecture (CCA) for the CSDMS Project Dr. Scott Peckham Chief Software Architect for CSDMS February 4, 2008.
Intro to C# Language Richard Della Tezra IS 373. What Is C#? C# is type-safe object-oriented language Enables developers to build a variety of secure.
Overview and Demonstration of the Community Surface Dynamics Modeling System CSDMS Terrestrial Working Group Meeting February 2, Boulder, CO. Scott.
CSDMS Update, 2009 Cyber effort to develop, integrate, disseminate & archive software & supporting data, able to simulate the movement of fluids, sediment.
Fall 2009 CSDMS WG Update James Syvitski CSDMS Integration Facility Boulder CO.
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Center for Component Technology for Terascale Simulation Software (aka Common Component Architecture) (aka CCA) Rob Armstrong & the CCA Working Group Sandia.
Commodity Grid (CoG) Kits Keith Jackson, Lawrence Berkeley National Laboratory Gregor von Laszewski, Argonne National Laboratory.
Quality Assurance for Component- Based Software Development Cai Xia (Mphil Term1) Supervisor: Prof. Michael R. Lyu 5 May, 2000.
OpenAlea An OpenSource platform for plant modeling C. Pradal, S. Dufour-Kowalski, F. Boudon, C. Fournier, C. Godin.
NSF NCAR | NASA GSFC | DOE LANL ANL | NOAA NCEP GFDL | MIT Adoption and field tests of M.I.T General Circulation Model (MITgcm) with ESMF Chris Hill ESMF.
119th International Unicode ConferenceSan Jose, California, September 2001 An Overview of ICU Helena Shih Chapman Doug Felt
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
 2002 Prentice Hall. All rights reserved. 1 Introduction to Visual Basic.NET,.NET Framework and Visual Studio.NET Outline 1.7Introduction to Visual Basic.NET.
Metadata Creation with the Earth System Modeling Framework Ryan O’Kuinghttons – NESII/CIRES/NOAA Kathy Saint – NESII/CSG July 22, 2014.
NeSC Grid Apps Workshop Exposing Legacy Applications as OGSI Components using pyGlobus Keith R. Jackson Distributed Systems Department Lawrence Berkeley.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
NE II NOAA Environmental Software Infrastructure and Interoperability Program Cecelia DeLuca Sylvia Murphy V. Balaji GO-ESSP August 13, 2009 Germany NE.
Update on CSDMS Adoption (and Infiltration) of CCA Dr. Scott Peckham Chief Software Architect for CSDMS January 17, 2008 csdms.colorado.edu CCA Winter.
TRACEREP: GATEWAY FOR SHARING AND COLLECTING TRACES IN HPC SYSTEMS Iván Pérez Enrique Vallejo José Luis Bosque University of Cantabria TraceRep IWSG'15.
Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri.
CoG Kit Overview Gregor von Laszewski Keith Jackson.
Fundamentals of Database Chapter 7 Database Technologies.
Programming language A programming language is an artificial language designed to communicate instructions to a machine,languageinstructionsmachine particularly.
BLU-ICE and the Distributed Control System Constraints for Software Development Strategies Timothy M. McPhillips Stanford Synchrotron Radiation Laboratory.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
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.
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)
Building an Electron Cloud Simulation using Bocca, Synergia2, TxPhysics and Tau Performance Tools Phase I Doe SBIR Stefan Muszala, PI DOE Grant No DE-FG02-08ER85152.
Center for Component Technology for Terascale Simulation Software CCA is about: Enhancing Programmer Productivity without sacrificing performance. Supporting.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
The Technology Behind the Community Surface Dynamics Modeling System (CSDMS) Scott D. Peckham Chief Software Architect for CSDMS October 10, 2008 csdms.colorado.edu.
Presented by An Overview of the Common Component Architecture (CCA) The CCA Forum and the Center for Technology for Advanced Scientific Component Software.
McGraw-Hill/Irwin Copyright © 2013 by The McGraw-Hill Companies, Inc. All rights reserved. Chapter 4 Computer Software.
Commodity Grid Kits Gregor von Laszewski (ANL), Keith Jackson (LBL) Many state-of-the-art scientific applications, such as climate modeling, astrophysics,
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
May 2003National Coastal Data Development Center Brief Introduction Two components Data Exchange Infrastructure (DEI) Spatial Data Model (SDM) Together,
Presentation Name / 1 Visual C++ Builds and External Dependencies NAME.
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.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
Distributed Components for Integrating Large- Scale High Performance Computing Applications Nanbor Wang, Roopa Pundaleeka and Johan Carlsson
Scientific Programmes Committee Centre for Aerospace Systems Design & Engineering Amitay Isaacs Department of Aerospace Engineering Indian Institute of.
ESMF,WRF and ROMS. Purposes Not a tutorial Not a tutorial Educational and conceptual Educational and conceptual Relation to our work Relation to our work.
© Copyright AARNet Pty Ltd PRAGMA Update & some personal observations James Sankar Network Engineer - Middleware.
A Brief Introduction to the CSDMS Initiative Dr. Scott Peckham Chief Software Architect for CSDMS July 19, 2007 csdms.colorado.edu.
Center for Component Technology for Terascale Simulation Software (CCTTSS) 110 April 2002CCA Forum, Townsend, TN This work has been sponsored by the Mathematics,
1/30/2003 Los Alamos National Laboratory1 A Migration Framework for Legacy Scientific Applications  Current tendency: monolithic architectures large,
A Quick Tour of the NOAA Environmental Software Infrastructure and Interoperability Group Cecelia DeLuca Dr. Robert Detrick visit March 28, 2012
Introduction to Visual Basic. NET,. NET Framework and Visual Studio
CMPE419 Mobile Application Development
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Status for Endeavor 6: Improved Scientific Data Access Infrastructure
Quality Assurance for Component-Based Software Development
Metadata Development in the Earth System Curator
CMPE419 Mobile Application Development
C++/Java/COM Interoperability
Presentation transcript:

A Brief Introduction to the CSDMS Initiative Dr. Scott Peckham Chief Software Architect for CSDMS October 26, 2007 csdms.colorado.edu CUAHSI Fall 2007 Regional Meeting Boise, Idaho

What is CSDMS ? Stands for “Community Surface Dynamics Modeling System” (acronym can be pronounced “systems” or spelled out) A recently-awarded NSF cooperative aggreement, initially for 5 years, with Prof. James Syvitski as PI and Executive Director An effort to bring together a diverse community of surface dynamics modelers and model users, as has been done successfully in other communities (e.g. climate modeling) About 140 members (so far) divided into 5 working groups, with governance by Executive & Steering committees, and support from NSF/EAR/OCE, USGS, NOAA, and others A facility located at the University of Colorado in Boulder, with a staff of 7 to 10 people

Key Goals of the CSDMS Promote code sharing and re-use (open source) Develop a review process for contributions Promote recognition of contributors Develop a “library” of low-level software tools and higher-level models that can be linked as easily as possible into new applications Provide resources to simplify the efforts of surface dynamics modelers Provide an organized, searchable repository of surface dynamics models and tools

Some of the Key Properties of Surface Systems

Diversity of Existing Modeling Efforts

Tentative Functional Specs for the CSDMS Support for multiple operating systems (especially Linux, Mac OS X and Windows) Support for parallel (multi-proc.) computation (via MPI standard) Language interoperability (e.g. CCA is language neutral) to support code contributions written in C, Fortran as well as more modern object-oriented languages (e.g. Java, C++, Python) Support for both legacy (non-protocol) code and more structured code submissions (procedural and object-oriented) Should be able to interoperate with other coupling frameworks Support for both structured and unstructured grids Platform-independent GUI (e.g. via wxPython) Large collection of open-source tools

ESMF (Earth System Modeling Framework) maplcode.org/maplwikiwww.esmf.ucar.edu PRISM (Program for Integrated Earth System Modeling) (uses OASIS4) OpenMI (Open Modeling Interface) CCA (Common Component Architecture) Others: GoldSim ( commercialwww.goldsim.com FMS ( GFDLwww.gfdl.noaa.gov/~fms “Coupling Frameworks”

Widely used by U.S. climate modelers Based on Fortran90 (efforts underway for C coupling) Components follow the Initialize, Run, Finalize scheme Has a new development tool called MAPL Started with NASA, now has buy-in from NOAA, DoD, DOE, NSF. May be adopted by CCSM; see: Overview of ESMF Parallel-computing friendly (MPI) Compatible with PRISM & CCA. Many useful tools in its Infra- structure & Superstructure Mainly structured grids so far

Developed by hydrologic community in Europe with corporate buy-in (e.g. Delft Hydraulics) Based on Microsoft’s C# (similar to Java) and support for Java is under development by HydroliGIS (Italy) Components follow the Initialize, Run, Finalize scheme Emphasizes support for data formats (e.g. WML) Currently incompatible with non-Windows computers, so language and platform specific Designed for a single-processor environment Funding future is currently uncertain Does not seem to have the maturity or buy-in of ESMF & CCA. Overview of OpenMI

Widely used at DOE labs (e.g. LLNL, ANL, Sandia) for a wide variety of projects (e.g. fusion, combustion) Language neutral; Components can be written in C, C++, Fortran 77-95, Java, or Python; supported via a compiler called Babel, using SIDL / XML metadata Interoperable with ESMF, PRISM, MCT, etc. Has a development tool called BOCCA (& Eclipse) Similar to CORBA & COM, but science app support Can be used for single or multiple-processor systems, distributed or parallel, MPI, high-performance (HPC) Structured, unstructured & adaptive grids Has DOE / SciDAC ( funding supportwww.scidac.gov Overview of CCA

CBSE = Component-Based Software Engineering Support for Java & Python makes it possible to add components with GUIs, graphics or network access anywhere in the application (e.g. via wxPython). Python code can be compiled to Java with Jython. (See for details) Python is used by Google and is the new ESRI scripting language. It is entirely open-source and a large number of components are available (e.g. XML parser) Currently has over one million users and growing. Overview of CCA (continued)

is Middleware for HPC CORBACOM.NETBabel BlueGene, Cray, Linux, AIX, & OS X No Yes* FortranNoLimited Yes Multi-Dim ArraysNo Yes Complex NumbersNo Yes LicensingVendor Specific Closed Source Open Source 2006 “The world’s most rapid communication among many programming languages in a single application.” Million calls/sec CORBA Babel.NET COM Performance (in process) CCA: The Babel Tool

Language interoperability is a powerful feature of the CCA framework. Components written in different languages can be rapidly linked with hardly any performance cost. This allows us to “shop” for open-source solutions (e.g. libraries), gives us access to both procedural and object-oriented strategies (legacy and modern code), and allows us to add graphics & GUIs at will.

The CCA framework includes a graphical tool called Ccaffeine for linking together model components. CCA: The Ccaffeine Tool

Conclusions Component-based software design is taking off in several different scientific communities. There are a large number of relatively mature and increasingly user-friendly tools and frameworks for developing and linking component-based software. The CCA framework looks particularly promising and is likely to be adopted by the CSDMS. However, it is interoperable with ESMF and would also be interoperable with a Java version of OpenMI. The Babel tool could potentially add support for C#.