Infopipes and the Infopipe Stub Generator Galen Swint, Calton Pu, Younggyun Koh, Wenchang Yan Overview  The Infosphere project  Goals of the ISG  Implementation  Current results 

Download Report

Transcript Infopipes and the Infopipe Stub Generator Galen Swint, Calton Pu, Younggyun Koh, Wenchang Yan Overview  The Infosphere project  Goals of the ISG  Implementation  Current results 

Infopipes

and the

Infopipe Stub Generator

Galen Swint, Calton Pu, Younggyun Koh, Wenchang Yan

Overview

 The Infosphere project  Goals of the ISG  Implementation  Current results  Infopipes and OEP  Future Work

The Infosphere Project

     Distributed computing with RPC is hard RPC semantics do not fit streaming applications Need services to be more composable QoS concerns • “expanded” QoS • eliminate redundant QoS coding Enhance portability • Same specification can be made for several different comm. machines

 

Motivation

RPC • Procedure call abstraction hides network    Application must address QoS Does not understand application packets Request/Response is an unnatural fit for streaming media (movies/sound) • • Composable?

Basis for CORBA, RMI, Sun RPC, SOAP We need an information-centric abstraction that is network aware to complement RPC

Goals for ISL/ISG

   Form the core of an Infopipe toolkit ISL • • • • Simple description for flows Support datatypes Support “basic” composition QoS requirements ISG • • • Generate datatypes, communication stubs Support multiple communication layers Support multiple languages

      

Implementation

ISG becomes part of a process XSLT + C++ Brand new XIP (Young) New comm. added more quickly (but needs more typing!) XSLT allows easy modularity in templates (xsl:include) Must re-implement the aspects

Buzzword compliant

Implementation v0.2

μ-benchmarks

 Round trip time (ping-pong) • One number sent and received on separate simplex channels • 100 experiments of 1000 ping-pongs Java RMI ECho/Infopipe TCP socket Mean Time 1.5 sec 0.35 sec 0.152 sec Std. Dev. 0.1 sec 0.04 sec 0.001 sec

Experiment 1 - UAV

 UAV demo • DoD project • ECho • • • Remote camera sends data via wireless link Demonstrates code uploading ISG generates replacement comm. code from SIP/XIP

Experiment 1 - UAV - Results

 Initialization • • 101 runs, discard first No statisical difference  Frame transfer • • 101 runs, discard first No statistical difference Original Infopipe Original Infopipe Mean Time 19.5 ms 19.6 ms Std. Dev. 0.6 ms 0.7 ms Mean Time 598 ms 606 ms Std. Dev. 33 ms 45 ms

Same performance with 36% fewer LOC!

Conclusions

     No performance hit Substantial LOC savings Time savings for development Potential portability LOC savings probably varies with App

OEP Integration Recap

  Participation in BBN OEP • • • Source-based filters for adaptive constrained resource management in the Multi-UAV demo New filters as Infopipes (compression, encryption) Better DRE application programs and better QoS support (more platforms and dimensions) Infopipe software tools • • Infopipe Stub Generator, program viewer, other tools Demo apps (BBN OEP, Boeing OEP, etc)

New Infopipe Functionality

   Three kinds of filters (and more) • • • Image filters (lower/higher resolution, B&W) Compression (gzip, lzo, JPEG) Encryption (Rijndael) Two underlying platforms • BSD sockets/TCP and TAO AVStreams/UDP • And more: event channels, publish/subscribe Automated QoS management • Adaptation by choosing appropriate combination of filters (also controlled manually at runtime)

Abstract Infopipe View

Defragmenter Assembler DVDview MPEG/PPM UDP BBN Video Distributor ATR (PPM) Wireless Link-TCP QuO Contract

WebCam

Source Filter Filter Control GUI

Single Filter Experiments

Application GUI for Infopipe Specification Infopipe Spec.

Lang. (ISL) (evolving)

ISL2XIP

XIP (fixed, extensible)

Infopipe Stub Generator

XML XML parser Stub Middle method Stub XML generator XML

Multiple-Filter Experiment (1)

 Refining the information flow by combining Infopipes through connectors Source Image Filter Compress Encrypt Decrypt Decompress

DVDview MPEG/PPM ATR

Multiple-Filter Experiment (2)

 Self-configured Infopipes (when data stream is unencrypted, system bypasses the decryption stage) Source Image Filter Compress Decompress

DVDview MPEG/PPM ATR

Multiple-Filter Experiment (3)

 Adaptive and flexible distribution of Infopipe stages at runtime Intermediate Processing UAV Compress Encrypt Image Filter Distributor Decrypt Decompress

DVDview MPEG/PPM ATR

Connector Specialization

Different machines XML parser Stub Middle methodStub XML generator Socket Connector XML parser Stub Middle methodStub XML generator Same machine Same process/CPU IPC Connector Function Call Conn.

XML parser Stub Middle methodStub Function Call Conn.

Stub Middle methodStub XML generator

Future Work

     Stabilize comm. layers Some basic type checking Use aspects for QoS (w/Lenin S.) Wrap in specialization (w/Young K.) Use aspects for performance adaptation

Planned Experiments

  Infopipe (filter) development and integration • • • Development cost/time, variety of filter code Code quantity (ISL/XIP module size), quality (runtime overhead), portability (variety of underlying platforms) Integration into OEP, making QoS work with new filters (measure QoS dimensions below) QoS dimensions and trade-offs • • • Performance (e.g., latency, bandwidth, image resolution) Security (e.g., encryption level) Other platforms in OEP that support QoS

      

Credits

Initial stub generator – Morimori ECho – Greg Eisenhauer, Karsten Schwan Java socket template – Younggyun Koh C socket template – Volkan Altuntas Initial QoS – Wei Han Demo harnesses, demo integration – Wenchang Yan Initial UAV demo – Fabian Bustamante, P@rick Widener

XIP Example

 Creating a data type • From the UAV demo, this holds a frame

XIP Example

 Creating a filter • From the UAV example, this crops an image to half size

XIP Example

 Declaring a simple, singular pipe • From UAV example, the sender and receivers • Note each is only a half-pipe

XIP Example

Connecting pipes together

 • • •

ISG Template

Snippet for current version of ISG Submit function for sending data for-each command generates for multiple outputs “ nodePipeOutConnect ” captures some semantic data about the template int __Submit( );

Et voila!

 The code produced //int sender__send1Submit( CarrierStruct * ); int sender__send1Submit( );

μ-benchmarks

 Single Integer • Loop 100,000 times sending 1 integer (4 bytes)  ECho/Infopipe TCP socket Mean Time 2.6 sec 0.122 sec Std. Dev. 0.015 sec 0.003 sec 1000 Integers • Loop 10,000 times sending 1,000 integers (4000 bytes) ECho/Infopipe TCP socket Mean Time 3.463 sec 3.393 sec Std. Dev. 0.004 sec 0.003 sec