TerascaleSimulation Tools and Technologies Tutorial: Presenter Institution.

Slides:



Advertisements
Similar presentations
Institute of Computer Science AGH Towards Multilanguage and Multiprotocol Interoperability: Experiments with Babel and RMIX Maciej Malawski, Daniel Harężlak,
Advertisements

Three types of remote process invocation
C Module System C and Data Structures Baojian Hua
CCA Common Component Architecture CCA Forum Tutorial Working Group Language Interoperable.
GridRPC Sources / Credits: IRISA/IFSIC IRISA/INRIA Thierry Priol et. al papers.
Implementing Remote Procedure Calls Andrew Birrell and Bruce Nelson Presented by Kai Cong.
Common Object Request Broker Architecture (CORBA) By: Sunil Gopinath David Watkins.
Tammy Dahlgren, Tom Epperly, Scott Kohn, and Gary Kumfert Center for Applied Scientific Computing Common Component Architecture Working Group October 3,
6/11/2015Page 1 Web Services-based Distributed System B. Ramamurthy.
C Module System C and Data Structures Baojian Hua
Divorcing Language Dependencies from a Scientific Software Library Gary Kumfert, with Scott Kohn, Jeff Painter, & Cal Ribbens LLNLVaTech.
Combining Static and Dynamic Data in Code Visualization David Eng Sable Research Group, McGill University PASTE 2002 Charleston, South Carolina November.
How Does Remote Method Invocation Work? –Systems that use RMI for communication typically are divided into two categories: clients and servers. A server.
Practical Issues of RPCCS-4513, D-Term Remote Procedure Call Practical Issues CS-4513 Distributed Computing Systems (Slides include materials from.
Introduction to the JDK Java for Computational Finance
UFCFX5-15-3Mobile Device Development UFCFX Mobile Device Development An Introduction to the Module.
Lecture Roger Sutton CO530 Automation Tools 5: Class Libraries and Assemblies 1.
C++ Programming. Table of Contents History What is C++? Development of C++ Standardized C++ What are the features of C++? What is Object Orientation?
A Simplified Approach to Web Service Development Peter Kelly Paul Coddington Andrew Wendelborn.
High-Performance Component- Based Scientific Software Engineering Boyana Norris Argonne National Laboratory CSDMS Meeting:
1 8/29/05CS360 Windows Programming Professor Shereen Khoja.
Appendix D: Microsoft.NET Framework Overview. Overview.NET Framework Architecture.NET Namespaces.
Gary Kumfert with Bill Bosl, Tammy Dahlgren, Tom Epperly, Scott Kohn, & Steve Smith Achieving Language Interoperability with.
Grid Computing, B. Wilkinson, 20043b.1 Web Services Part II.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
CCA Common Component Architecture CCA Forum Tutorial Working Group Language Interoperable.
Tamara Dahlgren, Tom Epperly, Scott Kohn, & Gary Kumfert Center for Applied Scientific Computing.
Service-enabling Legacy Applications for the GENIE Project Sofia Panagiotidi, Jeremy Cohen, John Darlington, Marko Krznarić and Eleftheria Katsiri.
CS 584 Lecture 18 l Assignment » Glenda assignment extended to the Java RMI Deadline » No Java RMI Assignment l Test » Friday, Saturday, Monday.
VDM++ Tutorial Implementing in Java. Overview Introduction Overview of Java code generation Options for Java code generation Keep tags POP3 Example.
CCA Common Component Architecture CCA Forum Tutorial Working Group Contributors: Language Interoperability Using Gary.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
1.NET FRAMEWORK CE-105 Spring 2007 Engr. Faisal ur Rehman.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
Shannon Hastings Multiscale Computing Laboratory Department of Biomedical Informatics.
ACS Error System APIs: C++ Bogdan Jeram European Southern Observatory July 2005ESO.
Introduce Grid Service Authoring Toolkit Shannon Hastings, Scott Oster, Stephen Langella, David Ervin Ohio State University Software Research Institute.
Distributed Programming CSCI 201L Jeffrey Miller, Ph.D. HTTP :// WWW - SCF. USC. EDU /~ CSCI 201 USC CSCI 201L.
Java Dynamic Proxy Bibliography: reflection/proxy.html
Javadoc A very short tutorial. What is it A program that automatically generates documentation of your Java classes in a standard format For each X.java.
Scott Kohn with Tammy Dahlgren, Tom Epperly, and Gary Kumfert Center for Applied Scientific Computing Lawrence Livermore National Laboratory October 2,
Python/Tango Client Binding Swig ( Vs Boost (
May 2003National Coastal Data Development Center Brief Introduction Two components Data Exchange Infrastructure (DEI) Spatial Data Model (SDM) Together,
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
The course. Description Computer systems programming using the C language – And possibly a little C++ Translation of C into assembly language Introduction.
 Common Object Request Broker Architecture  An industry standard developed by OMG to help in distributed programming.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
Getting Started with SIDL using the ANL SIDL Environment (ASE) ANL SIDL Team MCS Division, ANL April 2003 The ANL SIDL compilers are based on the Scientific.
WSDL : Web Service Definition Language Dr. Yuhong Yan NRC-IIT-Fredericton Internet logic.
1 FESA architecture v.1.0 Framework Configuration & Data-entry Tool 5 th December 2003.
CCA Common Component Architecture CCA Forum Tutorial Working Group Writing Components.
1 G52IWS: Web Services Description Language (WSDL) Chris Greenhalgh
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
Lecture Set 1 Part B: Understanding Visual Studio and.NET – Structure and Terminology 1/16/ :04 PM.
CCA Common Component Architecture CCA Forum Tutorial Working Group Writing Components.
CCA Common Component Architecture CCA Forum Tutorial Working Group Writing Components.
CCA Distributed Framework Interoperability. Goals Assume you have two (or more) framework instances. –Assume it contains a network of component instances.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Performance-Driven Interface Contract Enforcement for Scientific Components 10th International Symposium on Component-Based Software Engineering Medford,
CORBA Alegria Baquero.
CE-105 Spring 2007 Engr. Faisal ur Rehman
CORBA Alegria Baquero.
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Introduction to Web Services
Distributed System using Web Services
Presented By: Kwangsung Oh
CS 584 Lecture 18 Assignment Glenda assignment extended to the Java RMI Deadline No Java RMI Assignment Test Friday, Saturday, Monday.
Presentation transcript:

TerascaleSimulation Tools and Technologies Tutorial: Presenter Institution

2 C C++ f77 f90 Python Java vs. Java C C++ f77 f90 Python Babel Scientific Language Interoperability Language-neutral interface descriptions Native basic scientific data types –Complex numbers –Multi-dimensional, multi-strided arrays Automatic wrapper generation

3 IOR = Intermediate Object Representation Object-Oriented Middleware Python Stubs Skeletons Implementations IORs TSTT Implementation (any supported language) C Stubs C++ Stubs F77 Stubs F90 Stubs Java Stubs Implementation Clients

4 SIDL interface description Babel Compiler C++ F77 F90 Python C XML Java Application HTML SIDL = Scientific Interface Definition Language Babel Runtime SIDL Descriptions  Wrappers Supported on Linux, AIX, and Solaris 2.7, works on OSX; C (ANSI C), C++ (GCC), F77 (g77, Sun f77), F90 (Intel, Lahey, GNU, Absoft), Java (1.4)

5 package SimpleMesh version 1.0 { [Fill in details here] } package SimpleMesh version 1.0 { [Fill in details here] } Start with SIDL description SimpleMesh.sidl

6 1.Execute `babel --server=C++ SimpleMesh.sidl` 2.Fill in the details to dispatch to the existing mesh library 3.Compile and link into a library/DLL SimpleMesh. sidl Babel Compiler C++ Skeletons C++ Implementations IORs C++ StubslibSimpleMesh. so legacy_code.so Implementor generates wrappers

7 type SimpleMesh::Class_impl::method() throw () { // DO-NOT-DELETE splicer.begin(SimpleMesh.Class.method) /* Fill in dispatch here */ // DO-NOT-DELETE splicer.end(SimpleMesh.Class.method) } type SimpleMesh::Class_impl::method() throw () { // DO-NOT-DELETE splicer.begin(SimpleMesh.Class.method) /* Fill in dispatch here */ // DO-NOT-DELETE splicer.end(SimpleMesh.Class.method) } namespace SimpleMesh { class Class_impl { private: // DO-NOT-DELETE splicer.begin(SimpleMesh.Class._impl) /* Fill in dispatch here */ // DO-NOT-DELETE splicer.end(SimpleMesh.Class._impl) namespace SimpleMesh { class Class_impl { private: // DO-NOT-DELETE splicer.begin(SimpleMesh.Class._impl) /* Fill in dispatch here */ // DO-NOT-DELETE splicer.end(SimpleMesh.Class._impl) Details go within splicer pairs

8 SimpleMesh. sidl Babel Compiler IOR Headers F90 Stubs libSimpleMesh. so Babel Runtime Application 1.Execute `babel --client=F90 SimpleMesh.sidl` 2.Application calls stub versions of the methods 3.Compile and link with generated code, library, & Runtime Application invokes stub methods

9 Application Implementation Skeleton IOR Stub Private Data Mesh Field Implementation Skeleton IOR Stub … … … … Resulting application flow