Development of a Distributed MATLAB Environment with Real-Time Data Visualization Authors: Joseph Diamond, Richard McEver Affiliation: Dr. Jian Huang,

Slides:



Advertisements
Similar presentations
CONCEPTUAL WEB-BASED FRAMEWORK IN AN INTERACTIVE VIRTUAL ENVIRONMENT FOR DISTANCE LEARNING Amal Oraifige, Graham Oakes, Anthony Felton, David Heesom, Kevin.
Advertisements

Agenda Definitions Evolution of Programming Languages and Personal Computers The C Language.
Paul Chu FRIB Controls Group Leader (Acting) Service-Oriented Architecture for High-level Applications.
A component- and message-based architectural style for GUI software
RPC Robert Grimm New York University Remote Procedure Calls.
A Brief Introduction. Acknowledgements  The material in this tutorial is based in part on: Concurrency: State Models & Java Programming, by Jeff Magee.
Lightweight Remote Procedure Call Brian N. Bershad, Thomas E. Anderson, Edward D. Lazowska, and Henry M. Levy Presented by Alana Sweat.
Object-Oriented Analysis and Design
Reference: Message Passing Fundamentals.
UNIX Chapter 01 Overview of Operating Systems Mr. Mohammad A. Smirat.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Component and Deployment Diagrams
1 Component Description Alice 3d Graphics Software Human Computer Interaction Institute Carnegie Mellon University Prepared by: Randy Pausch,
The Need for Packages How do you break down a large system into smaller systems? Structured methods use functional decomposition Functions represent something.
SCRIPTING LANGUAGE. The first interactive shells were developed in the 1960s to enable remote operation of the first time-sharing systems, and these,
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Distributed Systems: Client/Server Computing
Fundamentals of Python: From First Programs Through Data Structures
Presented By: Ayelet Birnbaum Yael Kazaz Supervisor: Viktor Kulikov 07/05/12.
An Introduction to Rational Rose Real-Time
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
The Unified Modeling Language (UML) Class Diagrams.
© 2004 The MathWorks, Inc. 1 MATLAB for C/C++ Programmers Support your C/C++ development using MATLAB’s prebuilt graphics functions and trusted numerics.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
DEC0905 Remote Control of Home Appliances ABSTRACT The objective of this project is to enable users to remotely control home appliances and systems over.
EARTH SCIENCE MARKUP LANGUAGE “Define Once Use Anywhere” INFORMATION TECHNOLOGY AND SYSTEMS CENTER UNIVERSITY OF ALABAMA IN HUNTSVILLE.
Getting Started with Windows Azure Name Title Microsoft Corporation.
` Tangible Interaction with the R Software Environment Using the Meuse Dataset Rachel Bradford, Landon Rogge, Dr. Brygg Ullmer, Dr. Christopher White `
An Introduction to Software Architecture
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 Version 4.0 Network Services Networking for Home and Small Businesses – Chapter 6.
CSC 142 B 1 CSC 142 Java objects: a first view [Reading: chapters 1 & 2]
Views The architecture was specifically changed to accommodate multiple views. The used of the QStackedWidget makes it easy to switch between the different.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Object Management Group (OMG) Specifies open standards for every aspect of distributed computing Multiplatform Model Driven Architecture (MDA)
Developing a SDR Testbed Alex Dolan Mohammad Khan Ahmet Unsal Project Advisor Dr. Aditya Ramamoorthy.
Invitation to Computer Science 5 th Edition Chapter 6 An Introduction to System Software and Virtual Machine s.
The european ITM Task Force data structure F. Imbeaux.
Object-Oriented Analysis and Design Fall 2009.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Modeling system requirements. Purpose of Models Models help an analyst clarify and refine a design. Models help simplify the complexity of information.
Abstract The Center for Remote Sensing of Ice Sheets (CReSIS) has collected hundreds of terabytes of radar depth sounder data over the Greenland and Antarctic.
_______________________________________________________________CMAQ Libraries and Utilities ___________________________________________________Community.
Introduction to ArcGIS for Environmental Scientists Module 3 – GIS Analysis Model Builder.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Design Patterns VIII Chain of Responsibility, Strategy, State.
C OMPUTING E SSENTIALS Timothy J. O’Leary Linda I. O’Leary Presentations by: Fred Bounds.
Introduction to UML CS A470. What is UML? Unified Modeling Language –OMG Standard, Object Management Group –Based on work from Booch, Rumbaugh, Jacobson.
Genesys Shell development Input-side development progress.
Visualization in Problem Solving Environments Amit Goel Department of Computer Science Virginia Tech June 14, 1999.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Intro to Web Services Dr. John P. Abraham UTPA. What are Web Services? Applications execute across multiple computers on a network.  The machine on which.
NetChat Communications Systems Steven Fuqua Barnett Trzcinski Andy Street.
Features of JAS Plots Plots update in real time. Data for plots can be local or remote (use Java RMI to connect to JAS Data Server). Rich variety of styles.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
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.
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
6/28/ A global mesh of interconnected networks (internetworks) meets these human communication needs. Some of these interconnected networks are.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Licenses and Interpreted Languages for DHTC Thursday morning, 10:45 am
Scripting Languages Info derived largely from Programming Language Pragmatics, by Michael Scott.
Spark Presentation.
Lecture 1 Runtime environments.
Chapter 3: Windows7 Part 4.
Lecture 1 Runtime environments.
Reasons To Study Programming Languages
♪ Embedded System Design: Synthesizing Music Using Programmable Logic
Presentation transcript:

Development of a Distributed MATLAB Environment with Real-Time Data Visualization Authors: Joseph Diamond, Richard McEver Affiliation: Dr. Jian Huang, Mohammad Raji, Hantao Cui SPONSORS: The Context of the Large-Scale Testbed : The purpose of the Large-Scale System Testbed (LSTB) is to simulate the power grid of the future and anticipate its needs and behaviors. To accomplish this goal, the LSTB employs a variety of simulations across multiple computer system. These simulations generate large amounts of data at rapid speed, which makes interpreting the raw data difficult for humans. Graphing this data in real-time helps present the information in the most convenient form to ultimately realize the goal of the LSTB project. Abstract: The need to communicate among multiple programming languages and simulators inevitably arises in any large system simulation. CURENT’s Large-Scale System Testbed (LSTB) is no exception. Its numerous MATLAB and Python simulators and modules require the ability to send variables and otherwise communicate with one another. This research project develops a scheme to meet the LSTB’s need for such communication. By building a server on top of the existing Python-MATLAB-Bridge project and creating APIs for both MATLAB and Python, we have successfully developed a scheme to allow easy, efficient communication between the two. Additionally, we are developing a graphical user interface (GUI) in Python that communicates with the same server to visualize the results of the simulation. Background Research: While there are a few options available to create a distributed MATLAB environment functionally similar to the one created through this project, none of the ones quite fulfilled the needs of the LSTB. The Python-MATLAB-Bridge (Pymatbridge) project on Github provides a way to communicate between Python and MATLAB, but its purpose was not to connect MATLAB clients via Python, but to essentially run MATLAB code in Python. Since the LSTB modules were already written and ready in MATLAB, the Pymatbridge did not fulfill the needs of the LSTB on its own (though we did build our distributed system on top of Pymatbridge). Software Layout: DiME relies on a few key libraries that facilitate communication among multiple instances of MATLAB and Python on grid simulation modules. The Python-MATLAB-Bridge (Pymatbridge) library provides communication between MATLAB and Python. It employs ZMQ, a software package that provides programmers with an easy way to send and receive messages in different languages, like Python and MATLAB. Pymatbridge also relies on NumPy, a package for scientific computing in Python, and JavaScript Object Notation (JSON), a data interchange format, to encode, decode, and send variables among modules. These dependencies along with a server script, Python module, and MATLAB module make up the DiME implementation. The server acts as a liaison for each instance of MATLAB and Python. It waits for instances to connect, keeps a list of connected clients, waits for clients to “sync” their messages, and contains a cache made up of queues, one for each device. When a module sends a variable, it sends it to either a specific module by name or to all other modules via broadcast. The sending method determines which queues the variables are added to; when a module syncs, it gets the next message from the queue. Project Description: Creating a visual representation of the data from the LSTB in real-time requires three primary components: modules must send the Time Domain Simulation data off to a server, a Streaming Server must receive, transfer, and process this data, and finally a Visualization module must plot the data into a human-readable graph. Since these modules incorporate various software, the distributed environment must be modular and flexible. To fulfill all the parameters, we assisted in the development of the Distributed MATLAB Environment (DiME) software. The DiME software suite thus far constitutes the Streaming Server shown in the diagram, and the graphical user interface is synonymous with the Visualization module shown to the right.