A visualisation and debugging tool for multi-active objects Ludovic Henrio, Justine Rochas LAMHA, Nov 2015.

Slides:



Advertisements
Similar presentations
Request Scheduling for Multiactive Objects StudentJustine Rochas SupervisorLudovic Henrio Research lab INRIA-I3S-CNRS-UNS Research teamOASIS Master Thesis.
Advertisements

Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Denis Caromel1 Joint work with Ludovic Henrio – Eric Madelaine et. OASIS members OASIS Team INRIA -- CNRS - I3S – Univ. of Nice Sophia-Antipolis, IUF.
Requirements on the Execution of Kahn Process Networks Marc Geilen and Twan Basten 11 April 2003 /e.
1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.
1 Ludovic Henrio Paris, An Open Source Middleware for the Grid Programming Wrapping Composing Deploying.
Concurrency: Mutual Exclusion and Synchronization Why we need Mutual Exclusion? Classical examples: Bank Transactions:Read Account (A); Compute A = A +
CMPT 431 Dr. Alexandra Fedorova Lecture VIII: Time And Global Clocks.
Concurrency CS 510: Programming Languages David Walker.
University of Kansas Construction & Integration of Distributed Systems Jerry James Oct. 30, 2000.
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
Modern Concurrency Abstractions for C# by Nick Benton, Luca Cardelli & C´EDRIC FOURNET Microsoft Research.
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Asynchronous Components Asynchronous communications: from calculi to distributed components.
Safe composition of distributed adaptable components A distributed component model Behavioural specification and verification Ludovic Henrio and Eric Madelaine.
Advanced Operating Systems CIS 720 Lecture 1. Instructor Dr. Gurdip Singh – 234 Nichols Hall –
Oct Multi-threaded Active Objects Ludovic Henrio, Fabrice Huet, Zsolt Istvàn June 2013 –
Oct Active objects: programming and composing safely large-scale distributed applications Ludovic Henrio SCALE team, CNRS – Sophia Antipolis July.
Programming and Verifying Distributed and Adaptable Autonomous Components with GCM/ProActive Ludovic Henrio SCALE Team INRIA – UNS – I3S – CNRS Sophia.
1 Update Strategies for First Class Futures Khan Muhammad, Ludovic Henrio INRIA, Univ. Nice Sophia Antipolis,CNRS.
Formalism and Platform for Autonomous Distributed Components Bio-inspired Networks and Services A Distributed Component Model Formalisation in Isabelle.
WSMX Execution Semantics Executable Software Specification Eyal Oren DERI
Eric Madelaine FORTE ’04 -- Madrid sept /25 Parameterized Models for Distributed Java Objects Eric Madelaine work with Tomás Barros, Rabéa Boulifa.
Eric MadelaineOSMOSE -- WP2 -- Prague June 2004 Models for the Verification of Distributed Java Objects Eric Madelaine work with Tomás Barros, Rabéa Boulifa,
Dynamic Analysis of Multithreaded Java Programs Dr. Abhik Roychoudhury National University of Singapore.
Pallavi Joshi* Mayur Naik † Koushik Sen* David Gay ‡ *UC Berkeley † Intel Labs Berkeley ‡ Google Inc.
1 Causal-Consistent Reversible Debugging Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA Bologna,
Denis Caromel1 Troisieme partie Cours EJC 2003, AUSSOIS, Denis Caromel OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis.
From Modeling to Deployment of Active Objects - A ProActive backend for ABS Ludovic Henrio, Justine Rochas With the contribution of: Fabrice Huet, Zsolt.
A Locally Nameless Theory of Objects 1.Introduction:  -calculus and De Bruijn notation 2.locally nameless technique 3.formalization in Isabelle and proofs.
OASIS OASIS Active Objects, Semantics, Internet, and Security Team: 30 persons Research Themes: Grid Computing Objects and Components Practice and Theory.
ABSTRACT The real world is concurrent. Several things may happen at the same time. Computer systems must increasingly contend with concurrent applications.
Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis (FACS’05), Fractal workshop, Grenoble.
Asynchronous Components with Futures: Semantics, Specification, and Proofs in a Theorem Prover Components (Distributed) Futures Formalisations (and proofs)
A Mechanized Model for CAN Protocols Context and objectives Our mechanized model Results Conclusions and Future Works Francesco Bongiovanni and Ludovic.
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © GridCOMP Grids Programming with components.
1. 2 Objects to Distributed Components (1) Typed Group Java or Active Object ComponentIdentity Cpt = newActiveComponent (params); A a = Cpt ….getFcInterface.
A Component Platform for Experimenting with Autonomic Composition A component framework for supporting composition of autonomic services and bio-inspired.
ASPfun: A Distributed Object Calculus and its Formalization in Isabelle Work realized in collaboration with Florian Kammüller and Henry Sudhof (Technische.
Parameterized Models for Distributed Java Objects Tomás Barros & Rabéa Boulifa OASIS Project INRIA Sophia Antipolis April 2004.
Eric MadelaineOSCAR Workshop -- Santiago Nov Verification of Distributed Applications Eric Madelaine work with Isabelle Attali, Tomás Barros, Rabéa.
Transparent First-class Futures and Distributed Components Introduction: components, futures, and challenges Statically Representing Futures An Example.
Denis Caromel1 Denis Caromel, et al. OASIS Team INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis, IUF October
RESECO - Montevideo - 22 nov 2007Reseco, Montevideo, 22 nov 2007 Eric Madelaine - OASIS Team1 Specifying and Generating Safe GCM Components INRIA – Sophia.
VERIFYING THE CORRECT COMPOSITION OF DISTRIBUTED COMPONENTS: FORMALISATION AND TOOL Ludovic Henrio 1, Oleksandra Kulankhina 1,2, Dongqian Liu 3, Eric Madelaine.
Tomás BarrosMonday, April 18, 2005FIACRE Toulouse p. 1 Behavioural Models for Hierarchical Components Tomás Barros, Ludovic Henrio and Eric Madelaine.
A Mechanized Model of the Theory of Objects 1.Functional  -calculus in Isabelle 2.Confluence Proof in Isabelle 3.Ongoing Work, Applications, Conclusion.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
Distributed Components and Futures: Models and Challenges A Distributed Component Model Distributed Reconfiguration Calculi for Components and Futures.
A Theory of Distributed Objects Toward a Foundation for Component Grid Platforms Ludovic HENRIO l A Theory of Distributed Objects l Components l Perspectives.
Eric MADELAINE1 T. Barros, L. Henrio, E. Madelaine OASIS Team, INRIA -- CNRS - I3S -- Univ. of Nice Sophia-Antipolis DCC, University.
Type soundness In a more formal way. Proving Soundness of Type Systems Goal of a sound type system: –if the program type checks, then it never “crashes”
Mastère RSD - TC4 2005/20061 Distributed JAVA Aims and Principles The ProActive library Models of behaviours Generation of finite (parameterized) models.
Agenda  Quick Review  Finish Introduction  Java Threads.
GCM/ProActive: a distributed component model, its implementation, and its formalisation Ludovic Henrio OASIS Team INRIA – UNS – I3S – CNRS Sophia Antipolis.
2. CALCULUS: A S P. A Theory of Distributed Objects D. Caromel, L. Henrio, Springer 2005, Monograph A Calculus: ASP: Asynchronous Sequential Processes.
Model Generation for Distributed Java Programs Rabéa Boulifa Eric Madelaine Oasis Team INRIA, Sophia-Antipolis France, I3S, UNSA Luxembourg, November 28,
ASYNCHRONOUS AND DETERMINISTIC OBJECTS ASP: Asynchronous Sequential Processes l Distributed objects l Asynchronous method calls l Futures and Wait-by-necessity.
Hongbin Li 11/13/2014 A Debugger of Parallel Mutli- Agent Spatial Simulation.
The Structuring of Systems Using Upcalls By David D. Clark Presented by Samuel Moffatt.
Asynchronous Distributed Components: Concurrency and Determinacy I. Context: Distributed Components and Active Objects II. Asynchronous Distributed Components.
Justine Rochas Thesis supervised by Ludovic Henrio (CNRS)
Behavioural Models for Distributed Hierarchical Components
Distributed Components and Futures: Models and Challenges
Concurrency Specification
Threads and Memory Models Hal Perkins Autumn 2011
Background and Motivation
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Why Threads Are A Bad Idea (for most purposes)
Presentation transcript:

A visualisation and debugging tool for multi-active objects Ludovic Henrio, Justine Rochas LAMHA, Nov 2015

Agenda I.Multi-active Objects: Principles II.What is still difficult when programming active objects 2

ASP calculus / ProActive Java library Active objects are the unit of distribution and concurrency (one thread per AO / no data shared) Active and Passive objects Asynchronous method calls ; request queue With implicit transparent futures foo   result=beta.foo(b) Request invocation Caromel, D., Henrio, L.: A Theory of Distributed Object. Springer-Verlag (2005) 3

ASP calculus / ProActive Java library Active objects are the unit of distribution and concurrency (one thread per AO / no data shared) Active and Passive objects Asynchronous method calls ; request queue With implicit transparent futures result=beta.foo(b) foo  beta.foo(b) result f  Request invocation 4

ASP calculus / ProActive Java library Active objects are the unit of distribution and concurrency (one thread per AO / no data shared) Active and Passive objects Asynchronous method calls ; request queue With implicit transparent futures Result.getval() foo  ….. Result.getval() f  Wait-by- necessity WBN!! 5

ASP calculus / ProActive Java library Active objects are the unit of distribution and concurrency (one thread per AO / no data shared) Active and Passive objects Asynchronous method calls ; request queue With implicit transparent futures Result.getval() foo  beta.foo(b) Result.getval() f  … … 6

ASP calculus / ProActive Java library Active objects are the unit of distribution and concurrency (one thread per AO / no data shared) Active and Passive objects Asynchronous method calls ; request queue With implicit transparent futures Result.getval() foo  beta.foo(b) Result.getval()  f A beta = newActive (“A”, …); V result = beta.foo(b); ….. result.getval( ); Future sending Result.getval() 7

Multi-threading A programming model that mixes local parallelism and distribution with high-level programming constructs Execute several requests in parallel but in a controlled manner (compatibility notion) add() { … … } monitor() {… … } add() { … } Provided add, add and monitor are compatible join() Note: monitor is compatible with join 8

Declarative concurrency by annotating methods Groups (Collection of related methods) Rules (Compatibility relationships between groups) Memberships (To which group each method belongs) 9

Hypotheses and programming methodology We trust the programmer: annotations supposed correct static analysis or dynamic checks should be applied in the future Without annotations, a multi-active object has no race condition If more parallelism is required: 1. Add annotations for non-conflicting methods 2. Declare dynamic compatibility (depending on runtime values, eg request parameters) 3. Protect some memory access (e.g. by locks) and add new annotations Easy to program Difficult to program 10

Agenda I.Multi-active Objects: Principles II.What is still difficult when programming active objects 11

What is simpler with active objects Threads are isolated in an activity No data shared between activities Race conditions can only exist if compatibility is incorrect The only synchronisation is the access to a future Unique source of deadlock No need for locking or low-level synchronisation primitives (in general) 12

What is still difficult? Where can there be bugs? Deadlocks (e.g. re-entrant requests) Wrong compatibility annotations (out of scope here) Unplanned order of execution  ASP => order of execution depends on request reception order  Causal ordering of requests Too many threads (thread limit) or too few threads (blocked) 13 A C B 2 1 (e.g., init) 3 1 sent before 3 => 1 arrives before 3 A’

Démo 14

15

Multi-active objects implemented on top of ProActive  A programming model for local concurrent and global distributed objects Many case studies & benchmarks  NAS, Content Addressable Network, GCM components, ProActive backend for ABS Visual post-mortem debugger of Multi-active Object app. Formal proofs (based on semantics)  « maximal parallelism »  Correctness of ABS translation Next steps:  Prove stronger properties, ongoing formalisation in Isabelle/HOL  Find deadlocks using behavioural types (ongoing PhD)  Design a recovery protocol for MAO Conclusion 16

Questions? Related publications: 1.Multi-threaded Active Objects. Ludovic Henrio, Fabrice Huet, and Zsolt István - In COORDINATION Declarative Scheduling for Active Objects paper. Ludovic Henrio and Justine Rochas - SAC Justine Rochas, Ludovic Henrio. A ProActive Backend for ABS: from Modelling to Deployment. Inria Research Report