2 Motivation Distributed Systems Notoriously difficult to build without appropriate assistance. First ones were based on low-level message-passing mechanisms.

Slides:



Advertisements
Similar presentations
BARNALI CHAKRABARTY. What is an Operating System ?
Advertisements

Autonomic Systems Justin Moles, Winter 2006 Enabling autonomic behavior in systems software with hot swapping Paper by: J. Appavoo, et al. Presentation.
Concurrency: introduction1 ©Magee/Kramer 2 nd Edition Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
1 Program Slicing Purvi Patel. 2 Contents Introduction What is program slicing? Principle of dependences Variants of program slicing Slicing classifications.
Making CHASE Mainstream Robert DeLine Microsoft Research CHASE Workshop, ICSE 2009.
Helper Threads via Virtual Multithreading on an experimental Itanium 2 processor platform. Perry H Wang et. Al.
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
Revisiting a slide from the syllabus: CS 525 will cover Parallel and distributed computing architectures – Shared memory processors – Distributed memory.
Software development in robotics: frameworks, tools and the OpenRDK D. Calisi.
16/13/2015 3:30 AM6/13/2015 3:30 AM6/13/2015 3:30 AMIntroduction to Software Development What is a computer? A computer system contains: Central Processing.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
CISC 879 : Software Support for Multicore Architectures John Cavazos Dept of Computer & Information Sciences University of Delaware
Managing Agent Platforms with the Simple Network Management Protocol Brian Remick Thesis Defense June 26, 2015.
Visual Debugging Tools for Concurrent Models of Computation Elaine Cheong 15 May 2002 EE290N: Advanced Topics in System Theory.
Winter Retreat Connecting the Dots: Using Runtime Paths for Macro Analysis Mike Chen, Emre Kıcıman, Anthony Accardi, Armando Fox, Eric Brewer
The shift from sequential to parallel and distributed computing is of fundamental importance for the advancement of computing practices. Unfortunately,
Presenter: Chi-Hung Lu 1. Problems Distributed applications are hard to validate Distribution of application state across many distinct execution environments.
Microsoft ® Official Course Monitoring and Troubleshooting Custom SharePoint Solutions SharePoint Practice Microsoft SharePoint 2013.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall 1 Building Applications.
What is Concurrent Programming? Maram Bani Younes.
Chapter 13 Programming Languages and Program Development 1.
Deterministic Replay of Java Multithreaded Applications Jong-Deok Choi and Harini Srinivasan slides made by Qing Zhang.
Design Patterns Discussion of pages: xi-11 Sections: Preface, Forward, Chapter
Timing and Race Condition Verification of Real-time Systems Yann–Hang Lee, Gerald Gannod, and Karam Chatha Dept. of Computer Science and Eng. Arizona State.
Prospector : A Toolchain To Help Parallel Programming Minjang Kim, Hyesoon Kim, HPArch Lab, and Chi-Keung Luk Intel This work will be also supported by.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
Concurrency: introduction1 ©Magee/Kramer Concurrency State Models and Java Programs Jeff Magee and Jeff Kramer.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
Instructor: Peter Clarke
Threads by Dr. Amin Danial Asham. References Operating System Concepts ABRAHAM SILBERSCHATZ, PETER BAER GALVIN, and GREG GAGNE.
Scalable Analysis of Distributed Workflow Traces Daniel K. Gunter and Brian Tierney Distributed Systems Department Lawrence Berkeley National Laboratory.
Presenter: Zong Ze-Huang Fast and Accurate Resource Conflict Simulation for Performance Analysis of Multi- Core Systems Stattelmann, S. ; Bringmann, O.
Contents 1.Introduction, architecture 2.Live demonstration 3.Extensibility.
Java Threads 11 Threading and Concurrent Programming in Java Introduction and Definitions D.W. Denbo Introduction and Definitions D.W. Denbo.
Debugging in Java. Common Bugs Compilation or syntactical errors are the first that you will encounter and the easiest to debug They are usually the result.
Data-Intensive Text Processing with MapReduce J. Lin & C. Dyer Chapter 1.
COMP 111 Threads and concurrency Sept 28, Tufts University Computer Science2 Who is this guy? I am not Prof. Couch Obvious? Sam Guyer New assistant.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Debugging and Profiling With some help from Software Carpentry resources.
Group 3: Architectural Design for Enhancing Programmability Dean Tullsen, Josep Torrellas, Luis Ceze, Mark Hill, Onur Mutlu, Sampath Kannan, Sarita Adve,
Quality Assurance.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
Real Time Programming Language. Intro A programming language represents the nexus of design and structure. But misuse of the programming language can.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Allen D. Malony Department of Computer and Information Science TAU Performance Research Laboratory University of Oregon Discussion:
ProActive components and legacy code Matthieu MOREL.
David Adams ATLAS DIAL: Distributed Interactive Analysis of Large datasets David Adams BNL August 5, 2002 BNL OMEGA talk.
ISBN Prentice-Hall, 2006 Chapter 8 Testing the Programs Copyright 2006 Pearson/Prentice Hall. All rights reserved.
BarrierWatch: Characterizing Multithreaded Workloads across and within Program-Defined Epochs Socrates Demetriades and Sangyeun Cho Computer Frontiers.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Winter 2007SEG2101 Chapter 121 Chapter 12 Verification and Validation.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Concurrency and Performance Based on slides by Henri Casanova.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
System is a set of interacting or interdependent components forming an integrated whole.
Hongbin Li 11/13/2014 A Debugger of Parallel Mutli- Agent Spatial Simulation.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Sub-fields of computer science. Sub-fields of computer science.
Productive Performance Tools for Heterogeneous Parallel Computing
Operating System (013022) Dr. H. Iwidat
Class project by Piyush Ranjan Satapathy & Van Lepham
Chapter 12: Automated data collection methods
Multithreaded Programming
BugHint: A Visual Debugger Based on Graph Mining
Code Composer Essentials 3.0
SeeSoft A Visualization Tool..
Presentation transcript:

2 Motivation Distributed Systems Notoriously difficult to build without appropriate assistance. First ones were based on low-level message-passing mechanisms. Less abstractions meant simpler debuggers. Not much difference between the code manipulated by the user and what actually got executed. Nowadays: Object Oriented Middleware Abstraction frameworks introduce code. not meant to be seen by the user at development time. little care is taken at runtime. Result: large discrepancies Middleware: development made easier; or Middleware: debugging made harder?

3 Motivation (cont.) Related tasks Testing Debuggers help fix errors. Testing is paramount for finding them. Easier to do if support is provided by the environment. Setting up test scenarios is also a part of the debugging process. Launching remote processes. Simulating failure and observing system behavior. A basis for automated testing. Remote interaction & data collection.

4 Our approach Simplest idea possible OO Middleware allows developers to think of their Distributed Systems as if they were multithreaded, Object-Oriented systems (abstraction framework). We want to: preserve that illusion at debug time. level interactivity with what’s provided by today’s source-level debuggers. Involves capturing key points of system execution and displaying them to the user, hiding middleware-related code execution (debug time complexity-hiding).

5 Our approach (cont.) Also involves… Implementing the distributed thread abstraction Threads that span multiple machines. Core element for causal relation tracking in synchronous- call, Distributed Object Systems (DOSes) [Li, 2003], [Netzer, 1993]. Distributed thread visualization Our hypothesis Expected extension for symbolic debuggers; could lead to valuable insight; possible source of information for other algorithms

6 Our approach (cont.) However Arguably useful [Burnett, 1997] Maybe it doesn’t lead to valuable insight after all. Scales poorly Could be an issue for some applications. Difficult to implement Little support from runtime environments. Could be unworkable in some situations Too much interference. The “timeout” issue. 6

7 Initial implementation Targeted at Java/CORBA environments. Allows (*will be available shortly) : dynamic distributed thread tracking and visualization; fine grained control over the flow of execution (stopping, resuming and inspecting distributed threads); arbitrary state inspection; launching/killing remote processes; on-the-fly data visualization; stable property detection*. Would be perfect if could replay execution and; detect some unstable predicates [Garg, 1997; Tomlinson, 1993].

8 Eclipse Provides the model Sophisticated interface and interaction set Perfect environment for such a tool Extensive support from the framework; open source implementation; widely adopted. Phase 1: Implement GUI extensions for accommodating distributed threads and controlling remote applications. Other visual aids (call graphs, dynamic distributed thread visualization).

9 Architecture

10 Architecture (application)

11 Architecture (another view) Current state-of-the-art: part of the execution controller, small part of the execution monitor.

12 Rough “screenshot”

13 Limitations/considerations Works only with synchronous-call models; timeouts must be disabled for state inspections to work; currently tied to Java/JDI; could produce too much overhead; could fail miserably with some middleware thread handling schemes; limited support for remote process management; must yet be improved before attaining acceptable performance levels.

14 Availability More information (including source code) can be found at the project web site: Contributions are more than welcome. Thank you!

15 References [Burnett, 1997] M. Burnett et. al., A Bug's Eye View of Immediate Visual Feedback in Direct-Manipulation Programming Systems. In Empirical Studies of Programmers, Washington, D.C., October, [Garg, 1997] V. K. Garg. Methods for Observing Global Properties in Distributed Systems. IEEE Concurrency, Vol. 5, pages October, [Li, 2003] J. Li. Monitoring and Characterization of Component-Based Systems with Global Causality Capture. 23rd ICDCS. Providence, Rhode Island, May 19-22, [Netzer, 1993] R. H. B. Netzer. Optimal tracing and replay for debugging shared-memory parallel programs. In Proc. Workshop on Parallel and Distributed Debugging, pages [Tomlison, 1993] I. Tomlinson and V.K. Garg. Detecting Relational Global Predicates in Distributed Systems. In Proceedings of the 1993 ACM/ONR Workshop on Parallel and Distributed Debugging. pages 21-31, USA

16 Questions?