February 21, 2008 Center for Hybrid and Embedded Software Systems Driving Application: 4D Tele-immersion Future Work Though.

Slides:



Advertisements
Similar presentations
COM vs. CORBA.
Advertisements

Yaron Doweck Yael Einziger Supervisor: Mike Sumszyk Spring 2011 Semester Project.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Internet 2. Written & presented by: Martina Blackwood.
Compiler Construction by Muhammad Bilal Zafar (AP)
Case Tools Trisha Cummings. Our Definition of CASE  CASE is the use of computer-based support in the software development process.  A CASE tool is a.
Implementation methodology for Emerging Reconfigurable Systems With minimum optimization an appreciable speedup of 3x is achievable for this program with.
Types of Parallel Computers
 An object-oriented program’s structure often bears little resemblance to its code structure.  The code structure is frozen at compile-time; it consists.
Reference: Message Passing Fundamentals.
CPSC 695 Future of GIS Marina L. Gavrilova. The future of GIS.
Reasons to study concepts of PL
1 Component Description Alice 3d Graphics Software Human Computer Interaction Institute Carnegie Mellon University Prepared by: Randy Pausch,
February 21, 2008 Center for Hybrid and Embedded Software Systems Mapping A Timed Functional Specification to a Precision.
February 12, 2009 Center for Hybrid and Embedded Software Systems Model Transformation Using ERG Controller Thomas H. Feng.
Chapter 1 Program Design
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
System-Level Types for Component-Based Design Paper by: Edward A. Lee and Yuhong Xiong Presentation by: Dan Patterson.
Call Center – What Really Makes Sense? Call Center – ce este cu adevarat important?
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Cognizant Reusable Automation Framework for Testing C.R.A.F.T.
Ekrem Kocaguneli 11/29/2010. Introduction CLISSPE and its background Application to be Modeled Steps of the Model Assessment of Performance Interpretation.
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Operating systems CHAPTER 7.
The Old World Meets the New: Utilizing Java Technology to Revitalize and Enhance NASA Scientific Legacy Code Michael D. Elder Furman University Hayden.
An intro to programming. The purpose of writing a program is to solve a problem or take advantage of an opportunity Consists of multiple steps:  Understanding.
Distributed Systems 1 CS- 492 Distributed system & Parallel Processing Sunday: 2/4/1435 (8 – 11 ) Lecture (1) Introduction to distributed system and models.
Virtualization. Virtualization  In computing, virtualization is a broad term that refers to the abstraction of computer resources  It is "a technique.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
Mihir Daptardar Software Engineering 577b Center for Systems and Software Engineering (CSSE) Viterbi School of Engineering 1.
1b.1 Types of Parallel Computers Two principal approaches: Shared memory multiprocessor Distributed memory multicomputer ITCS 4/5145 Parallel Programming,
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Phoenix Software Projects Larry Beaty © 2007 Larry Beaty. Copying and distribution of this document is permitted in any medium, provided this notice is.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Processes Introduction to Operating Systems: Module 3.
Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
PRJ566 Project Planning & Management Software Architecture.
Theia Technical Design Presentation 3. Theia Overview Theia’s purpose is to create three dimensional, virtual representations of a room. To allow the.
CS 147 Virtual Memory Prof. Sin Min Lee Anthony Palladino.
By: Cheryl Mok & Sarah Tan. Java is partially interpreted. 1. Programmer writes a program in textual form 2. Runs the compiler, which converts the textual.
Or how to work smarter when building solutions.  2:30 – 3:30 Mondays – focus on problem solving (with some terminology thrown in upon occasion)  All.
TELE-IMMERSION PRESENTED BY: N. Saai Kaushiik N. Saai Kaushiik.
PTII Model  VHDL Codegen Verification Project Overview 1.Generate VHDL descriptions for Ptolemy models. 2.Maintain bit and cycle accuracy in implementation.
 Software Development Life Cycle  Software Development Tools  High Level Programming:  Structures  Algorithms  Iteration  Pseudocode  Order of.
Reverse Engineering. Reverse engineering is the general process of analyzing a technology specifically to ascertain how it was designed or how it operates.
Virtual Navigation of Multimedia Maps A versatile map generator and viewer Virtual Navigation of Multimedia Maps A versatile map generator and viewer Robert.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems.
Parallel Computing Presented by Justin Reschke
Hardware/Software Co-Design of Complex Embedded System NIKOLAOS S. VOROS, LUIS SANCHES, ALEJANDRO ALONSO, ALEXIOS N. BIRBAS, MICHAEL BIRBAS, AHMED JERRAYA.
Introduction to Programming 1 1 2Introduction to Java.
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Chapter 6: Securing the Cloud
Advanced Computer Systems
Done By: Ashlee Lizarraga Ricky Usher Jacinto Roches Eli Gomez
CSCI/CMPE 3334 Systems Programming
Shanna-Shaye Forbes Ben Lickly Man-Kit Leung
Multithreaded Programming
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer Low level programming language: A programming.
Chap 1. Getting Started Objectives
Chapter 2: Building a System
Presentation transcript:

February 21, 2008 Center for Hybrid and Embedded Software Systems Driving Application: 4D Tele-immersion Future Work Though we have imported an important part of the 4D tele-immersion system, we anticipate making more progress in the near future. Breaking the SMR algorithm in components will allow it to take advantage of multi-core computers. Incorporating more of the overall system, we will handle real time issues related to communication over the network. To the left is Monkey in an unaltered image. Below is the result of the SMR algorithm on the image. Using Ptolemy II to Re-architect Large C and C++ Programs Hwayong Oh Teale Fristoe Above is the top level model, containing the SMR algorithm. To the right is the actual SMR actor, which has two EmbeddedCActors containing the algorithm and a simulation of capturing an image. Both to the left and right are windows with the C code in the EmbeddedCActors. The 4D tele-immersion environment, developed by Ruzena Bajcsy’s group at UCB, allows geographically separated users to collaborate in a virtual world. Independent clients use advanced image processing to capture models of users and transfer them over a network. A huge application developed by specialists that demands high performance, it makes an excellent first and guiding example for using Ptolemy II as a development environment. Single Multiscale Representation(SMR) Tele-immersion uses the single multi-scale representation algorithm to infer the third dimension from pairs of two dimensional images. An intensive algorithm that uses triangulation to calculate depth, it is the first piece of the tele-immersion system that we have successfully imported into Ptolemy II. The SMR algorithm triangulates an image to multiple levels of coarseness based on the detail of each section. Above is an image that has been broken into three levels. Background Traditionally, Ptolemy II has been a modelling tool used primarily for embedded systems. With its many models of computation, designers have been able to focus on the structures of their systems without worrying about implementation details. Its C code generator not only increases the speed of running models, but allows Ptolemy II to directly generate code for target platforms. Goals Ptolemy II will be used to develop and improve C and C++ programs. Large programs can easily be managed in components, each component in an actor. Existing Ptolemy II models of computation will automatically schedule components intelligently. Generated code will run in parallel and elegantly handle real time. Achievements Our work has focused on increasing the power of EmbeddedCActors, which allow arbitrary C or C++ code to be executed within a model. Expanding the Macro Language Originally, limitations in the C macro language greatly reduced the effectiveness of EmbeddedCActors. Programmers are now easily able to develop directly in C without relying on Java code generator helper classes. Previously, a programmer would have had to use an awkward Java code generation helper to cycle through the values at an input multiport. It can now easily be done directly using the macro language. Other code in this EmbeddedCActor can now use functions defined in the listed libraries. Extending the Type System In order to take advantage of existing features of Ptolemy II for developing C programs, new systems for handling arbitrary types are needed. The Pointer type is our first attempt at this. It allows any C or C++ pointers to be passed between EmbeddedCActors. Future goals include passing C and C++ objects by reference and allowing the user to define types. Incorporating External Libraries EmbeddedCActors can now include external libraries, allowing models to use closed source libraries or include legacy code without having to include the source directly. Both of the EmbeddedCActors here reference the same memory. The memory is being interpreted as an integer, but any class can be passed between actors in this way. Using the 4D Tele- immersion system, dancers separated by thousands of miles can interact as if they were in the same room.