1 LiveViz – What is it? Charm++ library Visualization tool Inspect your program’s current state Client runs on any machine (java) You code the image generation.

Slides:



Advertisements
Similar presentations
RPC Robert Grimm New York University Remote Procedure Calls.
Advertisements

Chapter 2 First Java Programs
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Unauthorized Reproduction Prohibited SkyPoint Alarm Integration Add-On Using OnGuard Alarms to create events in SkyPoint Also called ‘SkyPoint V0’ CR4400.
Remote Method Invocation
Ameoba Designed by: Prof Andrew S. Tanenbaum at Vrija University since 1981.
Netprog: TCP Details1 TCP Details Introduction to Networking John Otto TA Jan 31, 2007 Recital 4.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Netprog: TCP Details1 TCP Details Introduction to Networking.
World Wide Web1 Applications World Wide Web. 2 Introduction What is hypertext model? Use of hypertext in World Wide Web (WWW) – HTML. WWW client-server.
Online Chess Project 3 Due date: April 17 th. Introduction Third in series of three projects This project focuses on adding online support –2 players.
TENA Test and Training Enabling Architecture. TENA TENA is used in range environments, often in the L portion of LVC Slightly different emphasis; small.
Chapter 11 ASP.NET JavaScript, Third Edition. 2 Objectives Learn about client/server architecture Study server-side scripting Create ASP.NET applications.
Remote Procedure Calls. 2 Client/Server Paradigm Common model for structuring distributed computations A server is a program (or collection of programs)
Lesson 3 Remote Method Invocation (RMI) Mixing RMI and sockets Rethinking out tic-tac-toe game.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Shell and Flashing Images Commands and upgrades. RS-232 Driver chip – ST3232C Driver chip is ST3232C Provides electrical interface between UART port and.
Charm++ Load Balancing Framework Gengbin Zheng Parallel Programming Laboratory Department of Computer Science University of Illinois at.
Programming Network Servers Topic 6, Chapters 21, 22 Network Programming Kansas State University at Salina.
A Portable Virtual Machine for Program Debugging and Directing Camil Demetrescu University of Rome “La Sapienza” Irene Finocchi University of Rome “Tor.
TCP/IP protocols Communication over Internet is mostly TCP/IP (Transmission Control Protocol over Internet Protocol) TCP/IP "stack" is software which allows.
WORK ON CLUSTER HYBRILIT E. Aleksandrov 1, D. Belyakov 1, M. Matveev 1, M. Vala 1,2 1 Joint Institute for nuclear research, LIT, Russia 2 Institute for.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
Advanced PI Calculation Engine Makes Complex PI Calculations Easy! Use of EDICTvb for Multi-Plant Advanced PI Calculations Dane OverfieldEXELE Information.
M1G Introduction to Database Development 6. Building Applications.
Computer Science 320 Load Balancing for Hybrid SMP/Clusters.
James Holladay, Mario Sweeney, Vu Tran. Web Services Presentation Web Services Theory James Holladay Tools – Visual Studio Vu Tran Tools – Net Beans Mario.
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
A brief introduction to javadoc and doxygen Cont’d.
…using Git/Tortoise Git
An Introduction to Front-end Web Development Tom Perkins.
Mr C Johnston ICT Teacher BTEC IT Unit 05 - Lesson 03 Network Topologies.
Charm++ Tutorial Presented by: Laxmikant V. Kale Kumaresh Pattabiraman Chee Wai Lee.
Module 1: Getting Started. Introduction to.NET and the.NET Framework Exploring Visual Studio.NET Creating a Windows Application Project Overview Use Visual.
Blackfin Array Handling Part 1 Making an array of Zeros void MakeZeroASM(int foo[ ], int N);
Mr C Johnston ICT Teacher
Processing Workshop. What is processing? “Processing is an open source programming language and environment for people who want to program images, animation,
Charm++ Tutorial Presented by: Abhinav Bhatele Chao Mei Aaron Becker.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
1 Charm++ Tutorial Parallel Programming Laboratory, UIUC.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
1 Charm++ Tutorial Parallel Programming Laboratory, UIUC.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
Message Framework Topic subscribe for javascript/flex client.
1 Charm++ Tutorial Parallel Programming Laboratory, UIUC.
Charm++ Tutorial Presented by: Lukasz Wesolowski Pritish Jetley.
1 Charm++ Tutorial Parallel Programming Laboratory, UIUC.
1 Network Access to Charm Programs: CCS Orion Sky Lawlor 2003/10/20.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Java Distributed Computing
Project 1 Simple Socket Client.
LiveViz – What is it? Charm++ library Visualization tool
Java Distributed Computing
Remote Method Invocation
In-situ Visualization using VisIt
Simple Socket Client Project 1.
Chapter 2 First Java Programs
Module 1: Getting Started
Simple Socket Client Project 1.
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
Presented by: Abhinav Bhatele Chao Mei Aaron Becker
Remote Procedure Call Hank Levy 1.
Screen shots – Load imbalance
Remote Procedure Call Hank Levy 1.
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Remote Procedure Call Hank Levy 1.
Last Class: Communication in Distributed Systems
Exceptions and networking
How to install and manage exchange server 2010 OP Saklani.
Presentation transcript:

1 LiveViz – What is it? Charm++ library Visualization tool Inspect your program’s current state Client runs on any machine (java) You code the image generation 2D and 3D modes

2 LiveViz – Monitoring Your Application LiveViz allows you to watch your application’s progress Can use it from work or home Doesn’t slow down computation when there is no client

Documentation Or,(same material) section 6 of: – There are example programs, but: –Old ones will not work (see the warning in section 6.7) –Make sure liveVizInit call takes the 4th “opts” parameter, which means you are looking at an example with modern correct interface See: 3

How to use LiveViz Get the Java Client: LiveViz (from ccs_tools) on to your desktop machine How to run the charm program as a liveviz server How to connect the client to server How to construct the image/s –On demand (This is what we will focus on) –In Push mode 4

LiveViz Client Client runs on your desktop Server may be a remote machine, –or as a special case,, for testing, your desktop Client is a java app Download (git clone) ccs_tools from charm website The tool is in ccs_tools/bin/LiveViz 5

6 LiveViz - Compilation Should not be needed Compile the LiveViz library itself –Must have built charm++ first! From the charm directory, run: –cd tmp/libs/ck-libs/liveViz –make

7 Running LiveViz Build and run the server –cd pgms/charm++/ccs/liveViz/serverpush –Make –./run_server Or in detail…

8 Running LiveViz Run the client –cd pgms/charm++/ccs/liveViz/client –./run_client [ [ ]] Should get a result window:

9 LiveViz Request Model LiveViz Server Code Client Parallel Application Get Image Poll for Request Poll Request Returns Work Image Chunk Passed to Server Server Combines Image Chunks Send Image to Client Buffer Request

When you run your charm++ program 10./charmrun./lvServer +p2 ++server ++server-port 1234 ~/ccs_tools/bin/LiveViz localhost is a port number. You can (and should) use other port numbers Tell the client the same # that you give to the server In repeated runs, change the port#.. It stays in use for several seconds after the program is terminated.

11 abc

12 abc

13 abc

14 abc

15 Main: Setup worker array, pass data to them Workers: Start looping Send messages to all neighbors with ghost rows Wait for all neighbors to send ghost rows to me Once they arrive, do the regular Jacobi relaxation Calculate maximum error, do a reduction to compute global maximum error If timestep is a multiple of 64, load balance the computation. Then restart the loop. Jacobi 2D Example Structure Main: Setup worker array, pass data to them Workers: Start looping Send messages to all neighbors with ghost rows Wait for all neighbors to send ghost rows to me Once they arrive, do the regular Jacobi relaxation Calculate maximum error, do a reduction to compute global maximum error If timestep is a multiple of 64, load balance the computation. Then restart the loop. Main: Setup worker array, pass data to them Workers: Start looping Send messages to all neighbors with ghost rows Wait for all neighbors to send ghost rows to me Once they arrive, do the regular Jacobi relaxation Calculate maximum error, do a reduction to compute global maximum error If timestep is a multiple of 64, load balance the computation. Then restart the loop.

16 #include void main::main(...) { // Do misc initilization stuff // Now create the (empty) jacobi 2D array work = CProxy_matrix::ckNew(0); // Distribute work to the array, filling it as you do } #include void main::main(...) { // Do misc initilization stuff // Create the workers and register with liveviz CkArrayOptions opts(0);// By default allocate 0 // array elements. liveVizConfig cfg(true, true);// color image = true and // animate image = true liveVizPollInit(cfg, opts);// Initialize the library // Now create the jacobi 2D array work = CProxy_matrix::ckNew(opts); // Distribute work to the array, filling it as you do } LiveViz Setup

17 Adding LiveViz To Your Code void matrix::serviceLiveViz() { liveVizPollRequestMsg *m; while ( (m = liveVizPoll((ArrayElement *)this, timestep)) != NULL ) { requestNextFrame(m); } void matrix::startTimeSlice() { // Send ghost row north, south, east, west,... sendMsg(dims.x-2, NORTH, dims.x+1, 1, +0, -1); } void matrix::startTimeSlice() { // Send ghost row north, south, east, west,... sendMsg(dims.x-2, NORTH, dims.x+1, 1, +0, -1); // Now having sent all our ghosts, service liveViz // while waiting for neighbor ’ s ghosts to arrive. serviceLiveViz(); }

18 Generate an Image For a Request void matrix::requestNextFrame(liveVizPollRequestMsg *m) { // Compute the dimensions of the image bit we ’ ll send // Compute the image data of the chunk we ’ ll send – // image data is just a linear array of bytes in row-major // order. For greyscale it ’ s 1 byte, for color it ’ s 3 // bytes (rgb). // The liveViz library routine colorScale(value, min, max, // *array) will rainbow-color your data automatically. // Finally, return the image data to the library liveVizPollDeposit((ArrayElement *)this, timestep, m, loc_x, loc_y, width, height, imageBits); }

19 OPTS=-g CHARMC=charmc $(OPTS) LB=-module RefineLB OBJS = jacobi2d.o all: jacobi2d jacobi2d: $(OBJS) $(CHARMC) -language charm++ \ -o jacobi2d $(OBJS) $(LB) –lm jacobi2d.o: jacobi2d.C jacobi2d.decl.h $(CHARMC) -c jacobi2d.C OPTS=-g CHARMC=charmc $(OPTS) LB=-module RefineLB OBJS = jacobi2d.o all: jacobi2d jacobi2d: $(OBJS) $(CHARMC) -language charm++ \ -o jacobi2d $(OBJS) $(LB) -lm \ -module liveViz jacobi2d.o: jacobi2d.C jacobi2d.decl.h $(CHARMC) -c jacobi2d.C Link With The LiveViz Library

20 LiveViz Summary Easy to use visualization library Simple code handles any number of clients Doesn’t slow computation when there are no clients connected Works in parallel, with load balancing, etc.