“Port Monitor”: progress & open questions Torsten Wilde and James Kohl Oak Ridge National Laboratory CCA Forum Quarterly Meeting Santa Fe, NM ~ October.

Slides:



Advertisements
Similar presentations
Pulan Yu School of Informatics Indiana University Bloomington Web service based Varuna.Net.
Advertisements

CIMCO Integration Software Products
COM vs. CORBA.
Lecture 3 Getting Started with ITK!. Goals for this lecture Learn how to use Cmake Build ITK Example programs that use ITK.
SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
Instructed by: Ofir Erel Performed by: Adam Levi Marina Skarbovsky.
Object-Oriented Enterprise Application Development Tomcat 3.2 Configuration Last Updated: 03/30/2001.
Computer Programming and Basic Software Engineering 4. Basic Software Engineering 1 Writing a Good Program 4. Basic Software Engineering 3 October 2007.
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
CASE Tools CIS 376 Bruce R. Maxim UM-Dearborn. Prerequisites to Software Tool Use Collection of useful tools that help in every step of building a product.
CSE 219 COMPUTER SCIENCE III PROPERTIES OF HIGH QUALITY SOFTWARE.
Struts 2.0 an Overview ( )
CH07: Writing the Programs Does not teach you how to program, but point out some software engineering practices that you should should keep in mind as.
Dr. Pedro Mejia Alvarez Software Testing Slide 1 Software Testing: Building Test Cases.
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Module Designing Computer-based Information Systems
Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
GRAPPA Part of Active Notebook Science Portal project A “notebook” like GRAPPA consists of –Set of ordinary web pages, viewable from any browser –Editable.
WorkPlace Pro Utilities.
1 Shawlands Academy Higher Computing Software Development Unit.
1 CSE 2102 CSE 2102 CSE 2102: Introduction to Software Engineering Ch9: Software Engineering Tools and Environments.
CCA Port, Component & Application Build Skeleton Templates “A new script toolkit for generating CCA build skeletons” Torsten Wilde and James Kohl Oak Ridge.
Working Out with KURL! Shayne Koestler Kinetic Data.
UPC/SHMEM PAT High-level Design v.1.1 Hung-Hsun Su UPC Group, HCS lab 6/21/2005.
What is Sure BDCs? BDC stands for Batch Data Communication and is also known as Batch Input. It is a technique for mass input of data into SAP by simulating.
 Introduction to Operating System Introduction to Operating System  Types Of An Operating System Types Of An Operating System  Single User Single User.
COM vs. CORBA Computer Science at Azusa Pacific University September 19, 2015 Azusa Pacific University, Azusa, CA 91702, Tel: (800) Department.
Chapter 6 : Software Metrics
OAK RIDGE NATIONAL LABORATORY U.S. DEPARTMENT OF ENERGY Parallel Solution of 2-D Heat Equation Using Laplace Finite Difference Presented by Valerie Spencer.
Winrunner Usage - Best Practices S.A.Christopher.
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Programming for Geographical Information Analysis: Advanced Skills Lecture 1: Introduction Programming Arc Dr Andy Evans.
©G. Millbery 2003Systems and User Interface SoftwareSlide 1 Self Documenting Systems  Systems where no external documentation is necessary  Includes:
Tutorial build Main ideas –Reuse as much previously obtained configuration information as possible: from Babel, cca-spec-babel, etc. –Extract all irrelevant.
CHAPTER TEN AUTHORING.
CCA Common Component Architecture CCA Forum Tutorial Working Group Introduction to the Ccaffeine.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
Accelerating Scientific Exploration Using Workflow Automation Systems Terence Critchlow (LLNL) Ilkay Altintas (SDSC) Scott Klasky(ORNL) Mladen Vouk (NCSU)
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
Introduction to Software Development. Systems Life Cycle Analysis  Collect and examine data  Analyze current system and data flow Design  Plan your.
Making Good Code AKA: So, You Wrote Some Code. Now What? Ray Haggerty July 23, 2015.
Managing the Impacts of Change on Archiving Research Data A Presentation for “International Workshop on Strategies for Preservation of and Open Access.
Scott Kohn with Tammy Dahlgren, Tom Epperly, and Gary Kumfert Center for Applied Scientific Computing Lawrence Livermore National Laboratory October 2,
National Center for Supercomputing ApplicationsNational Computational Science Grid Packaging Technology Technical Talk University of Wisconsin Condor/GPT.
The Software Development Process
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
1 Software. 2 What is software ► Software is the term that we use for all the programs and data on a computer system. ► Two types of software ► Program.
Introduction Selenium IDE is a Firefox extension that allows you to record, edit, and debug tests for HTML Easy record and playback Intelligent field selection.
Application Software System Software.
9/12/99R. Moore1 Level 2 Trigger Software Interface R. Moore, Michigan State University.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 SPI Software Process & Infrastructure for LCG Project Overview LCG Application Area Internal.
Test Plan: Introduction o Primary focus: developer testing –Implementation phase –Release testing –Maintenance and enhancement o Secondary focus: formal.
Chapter – 8 Software Tools.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
Application Web Service Toolkit Allow users to quickly add new applications GGF5 Edinburgh Geoffrey Fox, Marlon Pierce, Ozgur Balsoy Indiana University.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
CCA Common Component Architecture CCA Forum Tutorial Working Group Contributors: Introduction to the Ccaffeine Framework.
Systems and User Interface Software. Types of Operating System  Single User  Multi User  Multi-tasking  Batch Processing  Interactive  Real Time.
This was written with the assumption that workbooks would be added. Even if these are not introduced until later, the same basic ideas apply Hopefully.
1 ENERGY 211 / CME 211 Lecture 14 October 22, 2008.
Advanced Higher Computing Science The Project. Introduction Worth 60% of the total marks for the course Must include: An appropriate interface using input.
Advanced Higher Computing Science
MASS Java Documentation, Verification, and Testing
Testing and Debugging.
Princess Nourah bint Abdulrahman University
Presentation transcript:

“Port Monitor”: progress & open questions Torsten Wilde and James Kohl Oak Ridge National Laboratory CCA Forum Quarterly Meeting Santa Fe, NM ~ October 2003 Research supported by the Mathematics, Information and Computational Sciences Office, Office of Advanced Scientific Computing Research, U.S. Department of Energy, under contract No. DE-AC05-00OR22725 with UT-Battelle, LLC.

1 Quick Comments 1Or MY FIRST REAL CCA/CCAFE EXPOSURE 1Create a simple component application with PortMonitor from scratch 1Using a very simple getSum (A+B=C) component 1Built a PortMonitor for the getSum port and plug-in-pray 1Starting with an object oriented application 1Converting the object design step by step into a component design to get the feel of what is needed 1No problem installing CCA stuff on Mandrake (after fixing configure errors by hand in Babel & Ccafe) 1using sources (configure with prefix’s like rpm installations) 1and ‘make install’

2 Quick Comments 1Difficult to start a CCA application project from scratch 1Necessary information is distributed over a lot of documentation and guides 1A short compilation of steps and operations is needed 1Hard to choose the appropriate source tree & install structure for the project 1Maybe a standard is needed? 1A lot of support structure has to be built from scratch 1Scripts for building code from sidl files in appropriate locations 1Macros for finding other stuff (depending on the chosen file dependencies and install structure) 1Build structure, including configure- & Make-files

3 More Comments 1Using Automake, Autoconf, Libtools & Autoheader makes building & maintaining really easy (for a new component/application) 1That’s why a well defined build and install structure is needed 1Shared library dependencies are hell 1Trade-off shared library efficiency (resource usage) for software build complexity 1Using too many makes it hard to keep track of and hard to make work correctly 1Define what is installed from whom in a standard distribution 1Eg. Babel XML repository, ccafe XML repository 1Client side sidl file and/or libraries 1Tutorial examples are currently restructured by Wael & Boyana 1Having an experienced component guy available helps a lot as well (thank you Wael )

4 Potential Install Tree Structure 1 1CCA/ 1Ports repository 1Components repository 1Port Monitor repository 1Application repository 1Libs 1Cca-ports 1Port client libs 1Includes 1Cca-ports 1Port header files dependency structure ports Components need port definition Port monitors need port definition Applications use components & portmonitors

5 Potential Install Tree Structure 2 1Ports repository 1Xml port repository 1Port 1 dir 1 … 1 Port N dir 1Port sidl file 1Components 1Component 1 dir 1 … 1Component N dir 1Component library 1Component cca file

6 Potential Install Tree Structure 3 1Port Monitor repository 1Port monitor 1 dir 1 … 1Port monitor N dir 1Port monitor library 1Port monitor cca file 1Application repository 1Application 1 dir 1 … 1Application N dir 1Ccafe scripts 1Application driver 1Driver cca file 1Driver libraries

7 Trivial Component Application 1Simple calculation of the sum of two integer inputs

8 Ccafe Output 1Hey, 0+0=0 what a blast

9 Component Application With PortMonitor 1With added PortMonitor component (custom-designed for port)

10 Ccafe Output 1Cool, 0+0 is still 0 (PortMonitor didn’t break anything )

11 Next Functionality Priority List – Part1 1Needed functionality (priority can be discussed): 1Writing port invocation trace files 1Error analysis, port invocation replay & replay with different input values 1Creating standard input format for black-box testing 1Interface with the port monitor component for interactive functionality 1Use GUI component inside or outside the component framework 1But what to do in batch mode? 1Communicate with user GUI via communication port, outside the scope of the component framework

12 Next Functionality Priority List – Part2 1Providing user input for: 1Toggling trace file generation (even selecting what to save in file) 1Selecting what to monitor (specific function calls on a port, which ports …) 1Toggling lock-step functionality 1Changing input parameter before resuming execution 1How to support debugging better? 1Start extern debugger when entering suspicious component 1How to automatically pause code for debugger attachment?

13 Action list – Feedback appreciated 1Selecting trace file storage format 1Good to select an established format that allows use of existing tools for analysis 1Storage requirements (compression) depend on application size, frequency of invocation and amount of data transferred via port calls 1Dynamically choose to store big data packed (increased complexity) 1Readable & editable for parameter changes (Ascii vs. binary) 1Trace similar to performance trace 1Maybe TAU provides a good starting point 1Might switch to Vampire format (Epilog)

14 Action list – Feedback appreciated 1Serializing ports 1Support passing of objects via port method invocation 1Needs support from port or object itself 1Get_serialized_me method 1Set_serialized_me method