Pony – The occam-π Network Environment Mario Schweigler and Adam Sampson Computing Laboratory, University of Kent Canterbury, UK.

Slides:



Advertisements
Similar presentations
Network II.5 simulator ..
Advertisements

Current methods for negotiating firewalls for the Condor ® system Bruce Beckles (University of Cambridge Computing Service) Se-Chang Son (University of.
System Integration and Performance
Top-Down Network Design Chapter Nine Developing Network Management Strategies Copyright 2010 Cisco Press & Priscilla Oppenheimer.
Santa Claus – with Mobile Reindeer and Elves CPA 2008 (09/07/2008) Peter Welch ( ) Matt Pedersen ( )
COS 461 Fall 1997 Network Objects u first good implementation: DEC SRC Network Objects for Modula-3 u recent implementation: Java RMI (Remote Method Invocation)
Relaxed Consistency Models. Outline Lazy Release Consistency TreadMarks DSM system.
Virtual LANs.
RPC Robert Grimm New York University Remote Procedure Calls.
CS 443 Advanced OS Fabián E. Bustamante, Spring 2005 Resource Containers: A new Facility for Resource Management in Server Systems G. Banga, P. Druschel,
Uncovering Performance and Interoperability Issues in the OFED Stack March 2008 Dennis Tolstenko Sonoma Workshop Presentation.
Improving TCP Performance over Mobile Ad Hoc Networks by Exploiting Cross- Layer Information Awareness Xin Yu Department Of Computer Science New York University,
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
SKELETON BASED PERFORMANCE PREDICTION ON SHARED NETWORKS Sukhdeep Sodhi Microsoft Corp Jaspal Subhlok University of Houston.
Presented by: Yash Gurung, ICFAI UNIVERSITY.Sikkim BUILDING of 3 R'sCLUSTER PARALLEL COMPUTER.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.
Introduction in algorithms and applications Introduction in algorithms and applications Parallel machines and architectures Parallel machines and architectures.
CSCI 4550/8556 Computer Networks Comer, Chapter 7: Packets, Frames, And Error Detection.
1 ITC242 – Introduction to Data Communications Week 12 Topic 18 Chapter 19 Network Management.
Timm M. Steinbeck - Kirchhoff Institute of Physics - University Heidelberg 1 Timm M. Steinbeck HLT Data Transport Framework.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment, Enhanced Chapter 8: Implementing and Managing Printers.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
PRASHANTHI NARAYAN NETTEM.
NFS. The Sun Network File System (NFS) An implementation and a specification of a software system for accessing remote files across LANs. The implementation.
Maintaining and Updating Windows Server 2008
Fundamentals of Python: From First Programs Through Data Structures
Control and monitoring of on-line trigger algorithms using a SCADA system Eric van Herwijnen Wednesday 15 th February 2006.
CS510 Concurrent Systems Jonathan Walpole. Lightweight Remote Procedure Call (LRPC)
I/O Systems ◦ Operating Systems ◦ CS550. Note:  Based on Operating Systems Concepts by Silberschatz, Galvin, and Gagne  Strongly recommended to read.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Parallel & Concurrent Programming: Occam Vitaliy Lvin University of Massachusetts.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
INSTALLING MICROSOFT EXCHANGE SERVER 2003 CLUSTERS AND FRONT-END AND BACK ‑ END SERVERS Chapter 4.
By Lecturer / Aisha Dawood 1.  You can control the number of dispatcher processes in the instance. Unlike the number of shared servers, the number of.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
1 Distributed Systems: an Introduction G53ACC Chris Greenhalgh.
 Protocols used by network systems are not effective to distributed system  Special requirements are needed here.  They are in cases of: Transparency.
MediaGrid Processing Framework 2009 February 19 Jason Danielson.
CMAQ Runtime Performance as Affected by Number of Processors and NFS Writes Patricia A. Bresnahan, a * Ahmed Ibrahim b, Jesse Bash a and David Miller a.
CPA 2003: Mario Schweigler, Fred Barnes, Peter Welch: KRoC.net 1 Flexible, Transparent and Dynamic occam Networking With KRoC.net Mario Schweigler, Fred.
FailSafe SGI’s High Availability Solution Mayank Vasa MTS, Linux FailSafe Gatekeeper
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Privilege separation in Condor Bruce Beckles University of Cambridge Computing Service.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
CPA 2004: Mario Schweigler: Adding Mobility to KRoC.net 1 Adding Mobility to Networked Channel-Types Mario Schweigler Computing Laboratory, University.
Using Heterogeneous Paths for Inter-process Communication in a Distributed System Vimi Puthen Veetil Instructor: Pekka Heikkinen M.Sc.(Tech.) Nokia Siemens.
Recording Actor Provenance in Scientific Workflows Ian Wootten, Shrija Rajbhandari, Omer Rana Cardiff University, UK.
Chapter 4 Version 1 Virtual LANs. Introduction By default, switches forward broadcasts, this means that all segments connected to a switch are in one.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
IT3002 Computer Architecture
.NET Mobile Application Development XML Web Services.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Pony – The occam-π Network Environment A Unified Model for Inter- and Intra-processor Concurrency Mario Schweigler Computing Laboratory, University of.
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Maintaining and Updating Windows Server 2008 Lesson 8.
The Distributed Application Debugger (DAD)
CS533 Concepts of Operating Systems
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Message Protocols Co631 (Concurrency)
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

pony – The occam-π Network Environment Mario Schweigler and Adam Sampson Computing Laboratory, University of Kent Canterbury, UK

CPA 2006: Mario Schweigler and Adam Sampson: pony 2 Contents What is pony? Why do we need a unified concurrency model? Using pony Benchmarks Conclusions and future work

CPA 2006: Mario Schweigler and Adam Sampson: pony 3 What is pony? Network environment for occam-π (Name: anagram of [o]ccam, [p]i, [n]etwork, [y]) (Formerly known as ‘KRoC.net’) Comes with the KRoC distribution Allows a unified approach for inter- and intra-processor concurrency

CPA 2006: Mario Schweigler and Adam Sampson: pony 4 The Need for a Unified Concurrency Model It should be possible to distribute applications across several processors (or ‘back’ to a single processor) without having to change the components This transparency should not damage the performance – The underlying system should apply the overheads of networking only if needed in a concrete situation – this should be determined dynamically at runtime

CPA 2006: Mario Schweigler and Adam Sampson: pony 5 pony Applications A pony application consists of several nodes There are master and slave nodes – each application has one master node and any number of slave nodes Applications are administrated by an Application Name Server (ANS) which stores the network location of a master for a given application-name and allows slave nodes to ‘look up’ the master

CPA 2006: Mario Schweigler and Adam Sampson: pony 6 Network-channel-types The basic communication primitive between occam-π processes in pony are channel- types A network-channel-type (NCT) is the networked version of an occam-π channel- type It is transparent to the programmer whether a given channel-type is an intra-processor channel-type or an NCT

CPA 2006: Mario Schweigler and Adam Sampson: pony 7 Network-channel-types NCTs have the same semantics and usage as normal channel-types – Bundle of channels – Two ends, each of which may be shared – Ends are mobile Ends may reside on different nodes, and may be moved to other nodes

CPA 2006: Mario Schweigler and Adam Sampson: pony 8 Transparency in pony Semantic transparency – All occam-π PROTOCOL s can be communicated over NCTs – Semantics of communicated items are preserved, including MOBILE semantics – Handling of NCTs is transparent to the programmer NCT-ends may be shared, like any other channel-type- end NCT-ends are mobile, like any other channel-type-end, and can be communicated across distributed applications in the same way as between processes on the same node

CPA 2006: Mario Schweigler and Adam Sampson: pony 9 Transparency in pony Pragmatic transparency – pony infrastructure is set up dynamically when needed – If sender and receiver are on the same node, communication only involves ‘traditional’ channel-word access – If they are on different nodes, communication goes through the pony infrastructure (and the network)

CPA 2006: Mario Schweigler and Adam Sampson: pony 10 Using pony There are a number of public processes for: – Starting pony – Explicit allocation of NCT-ends – Shutting down pony – Error-handling – Message-handling

CPA 2006: Mario Schweigler and Adam Sampson: pony 11 Starting pony Startup process – Starts the pony environment on a node Returns: – A network-handle Used for allocation and shutdown – An error-handle if required Used for error-handling – A message-handle if required Used for message-handling

CPA 2006: Mario Schweigler and Adam Sampson: pony 12 Starting pony Startup process contacts the ANS If our node is the master, its location is stored by the ANS If our node is a slave – Startup process gets location of master from ANS – Connects to master On success, startup process starts the pony environment and returns the requested handles Otherwise returns error

CPA 2006: Mario Schweigler and Adam Sampson: pony 13 Explicit Allocation of NCT- ends pony’s allocation process returns an end of an NCT – The ends of an NCT may be allocated on different nodes at any given time Allocation process communicates with pony environment via network-handle (given as a parameter) An explicitly allocated NCT is identified by a unique NCT-name stored by the master node

CPA 2006: Mario Schweigler and Adam Sampson: pony 14 Explicit Allocation of NCT- ends If parameters are valid, allocation process allocates and returns the NCT- end Allocation process returns error if there is a mismatch with previously allocated ends of the same name, regarding: – Type of the channel-type – Shared/unshared properties of its ends

CPA 2006: Mario Schweigler and Adam Sampson: pony 15 Implicit Allocation by Moving Any channel-type-end, including NCT-ends, may be moved along a channel If an end of a locally declared channel-type is moved to another node (along a channel of an NCT) for the first time, this channel-type is implicitly allocated by the pony environment – That channel-type automatically becomes an NCT – Programmer does not need to take any action himself – Does not even need to be aware whether the end is sent to a process on the same or on a remote node

CPA 2006: Mario Schweigler and Adam Sampson: pony 16 Shutting down pony Shutdown process communicates with pony environment via network-handle (given as a parameter) Must be called after all activity on (possibly) networked channel-types has ceased If node is master, it notifies the ANS about the shutdown pony environment shuts down its internal components

CPA 2006: Mario Schweigler and Adam Sampson: pony 17 Error-handling and Message-handling Error-handling used for the detection of networking errors during the operation of pony applications Message-handling used for outputting status and error messages Not discussed in the paper; see Mario’s PhD thesis for details

CPA 2006: Mario Schweigler and Adam Sampson: pony 18 Configuration Done via simple configuration files Used to configure – Network location of a node – Network location of the ANS All settings may be omitted – In this case either defaults are used or the correct setting is detected automatically

CPA 2006: Mario Schweigler and Adam Sampson: pony 19 Implementation of pony Brief overview of pony’s internal components can be found in the paper For a detailed discussion, see Mario’s thesis

CPA 2006: Mario Schweigler and Adam Sampson: pony 20 ‘ commstime ’ Example The classical ‘ commstime ’ benchmark

CPA 2006: Mario Schweigler and Adam Sampson: pony 21 Non-distributed ‘ commstime ’ PROC commstime (CHAN BYTE key?, scr!, err!) BOOL use.seq.delta: INT num.loops: SEQ... Find out whether to use the sequential or the parallel delta... Find out the number of loops -- Channels between the processes CHAN INT a, b, c, d: -- Run sub-processes in parallel PAR prefix (0, b?, a!) IF use.seq.delta -- Sequential delta seq.delta (a?, c!, d!) TRUE -- Parallel delta delta (a?, c!, d!) succ (c?, b!) -- Monitoring process consume (num.loops, d?, scr!) :

CPA 2006: Mario Schweigler and Adam Sampson: pony 22 Distributed ‘ commstime ’ Each sub-process runs on a separate node Channels between the processes become NCTs containing a single INT channel Used for benchmarking pony (see below)

CPA 2006: Mario Schweigler and Adam Sampson: pony 23 Distributed ‘ commstime ’ – The Channel-type Declaration -- Channel-type with one INT channel CHAN TYPE INT.CT MOBILE RECORD CHAN INT chan?: :

CPA 2006: Mario Schweigler and Adam Sampson: pony 24 Distributed ‘ commstime ’ – The ‘ prefix ’ Node (1) PROC commstime.prefix (CHAN BYTE key?, scr!, err!) -- Network-handle PONY.NETHANDLE! net.handle: -- NCT-end variables INT.CT? b.svr: INT.CT! a.cli: -- Other variables INT own.node.id, result: SEQ -- Start pony pony.startup.unh (PONYC.NETTYPE.TCPIP, "", "commstime", "", PONYC.NODETYPE.SLAVE, own.node.id, net.handle, result) ASSERT (result = PONYC.RESULT.STARTUP.OK)

CPA 2006: Mario Schweigler and Adam Sampson: pony 25 Distributed ‘ commstime ’ – The ‘ prefix ’ Node (2) -- Allocate NCT-ends pony.alloc.us (net.handle, "b", PONYC.SHARETYPE.UNSHARED, b.svr, result) ASSERT (result = PONYC.RESULT.ALLOC.OK) pony.alloc.uc (net.handle, "a", PONYC.SHARETYPE.UNSHARED, a.cli, result) ASSERT (result = PONYC.RESULT.ALLOC.OK) -- Start sub-process prefix (0, b.svr[chan], a.cli[chan]) -- No shutdown of pony here -- because the sub-process that was started is running infinitely :

CPA 2006: Mario Schweigler and Adam Sampson: pony 26 Distributed ‘ commstime ’ – The ‘ delta ’ Node (1) PROC commstime.delta (CHAN BYTE key?, scr!, err!) -- Network-handle PONY.NETHANDLE! net.handle: -- NCT-end variables INT.CT? a.svr: INT.CT! c.cli, d.cli: -- Other variables BOOL use.seq.delta: INT own.node.id, result: SEQ... Find out whether to use the sequential or the parallel delta -- Start pony pony.startup.unh (PONYC.NETTYPE.TCPIP, "", "commstime", "", PONYC.NODETYPE.SLAVE, own.node.id, net.handle, result) ASSERT (result = PONYC.RESULT.STARTUP.OK)

CPA 2006: Mario Schweigler and Adam Sampson: pony 27 Distributed ‘ commstime ’ – The ‘ delta ’ Node (2) -- Allocate NCT-ends pony.alloc.us (net.handle, "a", PONYC.SHARETYPE.UNSHARED, a.svr, result) ASSERT (result = PONYC.RESULT.ALLOC.OK) pony.alloc.uc (net.handle, "c", PONYC.SHARETYPE.UNSHARED, c.cli, result) ASSERT (result = PONYC.RESULT.ALLOC.OK) pony.alloc.uc (net.handle, "d", PONYC.SHARETYPE.UNSHARED, d.cli, result) ASSERT (result = PONYC.RESULT.ALLOC.OK) -- Start sub-process IF use.seq.delta -- Sequential delta seq.delta (a.svr[chan], c.cli[chan], d.cli[chan]) TRUE -- Parallel delta delta (a.svr[chan], c.cli[chan], d.cli[chan]) -- No shutdown of pony here -- because the sub-process that was started is running infinitely :

CPA 2006: Mario Schweigler and Adam Sampson: pony 28 Distributed ‘ commstime ’ – The ‘ succ ’ Node (1) PROC commstime.succ (CHAN BYTE key?, scr!, err!) -- Network-handle PONY.NETHANDLE! net.handle: -- NCT-end variables INT.CT? c.svr: INT.CT! b.cli: -- Other variables INT own.node.id, result: SEQ -- Start pony pony.startup.unh (PONYC.NETTYPE.TCPIP, "", "commstime", "", PONYC.NODETYPE.SLAVE, own.node.id, net.handle, result) ASSERT (result = PONYC.RESULT.STARTUP.OK)

CPA 2006: Mario Schweigler and Adam Sampson: pony 29 Distributed ‘ commstime ’ – The ‘ succ ’ Node (2) -- Allocate NCT-ends pony.alloc.us (net.handle, "c", PONYC.SHARETYPE.UNSHARED, c.svr, result) ASSERT (result = PONYC.RESULT.ALLOC.OK) pony.alloc.uc (net.handle, "b", PONYC.SHARETYPE.UNSHARED, b.cli, result) ASSERT (result = PONYC.RESULT.ALLOC.OK) -- Start sub-process succ (c.svr[chan], b.cli[chan]) -- No shutdown of pony here -- because the sub-process that was started is running infinitely :

CPA 2006: Mario Schweigler and Adam Sampson: pony 30 Distributed ‘ commstime ’ – The ‘ consume ’ Node (1) PROC commstime.consume (CHAN BYTE key?, scr!, err!) -- Network-handle PONY.NETHANDLE! net.handle: -- NCT-end variable INT.CT? d.svr: -- Other variables INT num.loops, own.node.id, result: SEQ... Find out the number of loops -- Start pony pony.startup.unh (PONYC.NETTYPE.TCPIP, "", "commstime", "", PONYC.NODETYPE.MASTER, own.node.id, net.handle, result) ASSERT (result = PONYC.RESULT.STARTUP.OK)

CPA 2006: Mario Schweigler and Adam Sampson: pony 31 Distributed ‘ commstime ’ – The ‘ consume ’ Node (2) -- Allocate NCT-end pony.alloc.us (net.handle, "d", PONYC.SHARETYPE.UNSHARED, d.svr, result) ASSERT (result = PONYC.RESULT.ALLOC.OK) -- Start sub-process (monitoring process) consume (num.loops, d.svr[chan], scr!) -- No shutdown of pony here -- because the sub-process that was started is running infinitely :

CPA 2006: Mario Schweigler and Adam Sampson: pony 32 Benchmarking pony Measure the impact of using pony –vs. non-distributed programs –vs. hand-written networking Benchmarks conducted on TUNA cluster –30 PCs, 3.2 GHz Intel Pentium IV –Dedicated gigabit Ethernet network Code of the benchmarks is in the KRoC distribution

CPA 2006: Mario Schweigler and Adam Sampson: pony 33 Communication Time The ‘ commstime ’ benchmark (with sequential ‘ delta ’) –With normal channels: 19 ns One occam context switch –With pony channels: 66 µs Many context switches and two network round trips Still 15,000 communications per second

CPA 2006: Mario Schweigler and Adam Sampson: pony 34 Throughput Slaves send 100 KB messages as fast as possible to collector

CPA 2006: Mario Schweigler and Adam Sampson: pony 35 Overhead 100 KB messages; < 2% network traffic overhead

CPA 2006: Mario Schweigler and Adam Sampson: pony 36 A Simple Application Rendering the Mandelbrot set via farming Master generates requests and collects results 25 slaves; buffer requests, use C maths code pony support: ~30 lines of self- contained code

CPA 2006: Mario Schweigler and Adam Sampson: pony 37 Shared Approach Shared request/response channel-types 25 nodes: 30% CPU utilisation – not very good Problem: claiming the shared channels

CPA 2006: Mario Schweigler and Adam Sampson: pony 38 Multiplexing Approach One channel-type per slave 25 nodes: 85% CPU utilisation

CPA 2006: Mario Schweigler and Adam Sampson: pony 39 Farming Performance

CPA 2006: Mario Schweigler and Adam Sampson: pony 40 Conclusions pony and occam-π provide a unified concurrency model for inter- and intra-processor applications –Achieving semantic and pragmatic transparency Simple handling of pony for the occam-π programmer – Minimum number of public processes for basic operations (startup, explicit allocation, etc.) – Runtime operation handled automatically and transparently by the pony environment – Simple (mostly automatic) configuration Initial performance measurements are encouraging

CPA 2006: Mario Schweigler and Adam Sampson: pony 41 Future Work Adding support for new occam-π features –Mobile processes – Mobile barriers – … and anything else that comes up, to keep pony transparent to occam-π Integrating pony into RMoX Supporting the Transterpreter (and other platforms) Supporting network-types other than TCP/IP (e.g. for robotics with the Transterpreter)

CPA 2006: Mario Schweigler and Adam Sampson: pony 42 Future Work Security model (encryption) Simplified startup and configuration on clusters ‘Tuning’ work to further enhance performance And… this implementation really works – could use the same design patterns to add full transparency to JCSP.net and friends!