Windows Support Australia

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Monday, 29 April 2013

broadcastCommand, a.k.a visualizing Kittens on a Cluster.

Posted on 15:58 by Unknown
Picture1

When running your omegalib scripts in a cluster environment, you may need to execute some operation only on a specific node. That’s what the isMaster() and  getHostname() functions are for. Sometimes, after doing some node-specific work (especially on the master node) you want to notify all the other nodes you are done. A typical scenario is accessing some asset on the network and creating a copy on the local cache in the shared filesystem. As an example asset we’ll consider the canonical cute kitty picture.  You want the master node to perform the actual transfer, and notify all the other nodes of transfer completion, without blocking them. The nodes can then spam the displays with thousands of kitty-textured cubes (or spheres or cylinders. imagination is your limit).
The omegalib C++ API supported this for a while. In omegalib 3.7 the function is now available to python applications as well, through the broadcastCommand() call. BroadcastCommand accepts a python statement, and queues it for execution on all nodes of the cluster. Its typical use is at the end of an if(isMaster()) block, to notify nodes of work completion:
import urllib
        # On the master node, fetch an image somewhere on the internet
        if(isMaster())
                urllib.urlretrieve("http://www.digimouth.com/news/media/2011/09/google-logo.jpg", 
"local-image.jpg")
                # Call this when you are done
                broadcastCommand('onImageLoaded()')
       
        # This will be called on all nodes once the image is loaded. You can open the image here.
        # (Assuming use of a shared filesystem in your cluster installation)
        def onImageLoaded():
                img = loadImage("local-image.jpg")



For more information about the omegalib application control python API check this page!
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in CAVE2, omegalib, VR | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Omegalib 4.2 released!
    This version greatly improves the speed of user-centered stereo tracking in cluster installations. The Equalizer/omegalib interface and re...
  • Distributed Sum on a 2D mesh using MPI
    For a recent class project, we had to implement an algorithm to sum an array of integers on a computer cluster. This problem is one of the e...
  • Google Chrome vulnerable to carpet-bombing flaw
    Google Chrome vulnerable to carpet-bombing flaw Google’s shiny new Web browser is vulnerable to a carpet-bombing vulnerability that could ex...
  • A New CAVE2 Trailer
    This video shows some of the applications we are running on our brand new CAVE2 hybrid reality system.
  • ENDURANCE Final Update
    Work on the ENDURANCE project has ended. The final data products consisted in an updated bathymetry model for the entire west lake bonney, u...
  • Using Kinect for 3D video capture
    (Thanks for the link, Jakub)
  • CAVE2 on TIME online: Using 3D Worlds to Visualize Data
    "Take a walk through a human  brain ? Fly over the surface of Mars? Computer scientists at the University of Illinois at Chicago are pu...
  • Website Update: Atomz
    A new section has been added to the website: 24Hour Games The 24H Games project is an experiment in gameplay design and developement. Its ma...
  • Tech Meeting Updates
    omegalib / CAVE2 improved few things with cylindrical config support now changing a couple of parameters (start angle, number of tiles) it i...
  • How to Prototype a Game in Under 7 Days: Tips and Tricks from 4 Grad Students Who Made Over 50 Games in 1 Semester
    Some days ago I stumbled upon an interesting article on rapid game prototyping. Read the original article here . Some of the guidelines th...

Categories

  • 3D
  • CAVE2
  • Edanarion
  • ENDURANCE
  • Flash
  • Game Heuristics
  • Games
  • HCI
  • Hydroviz
  • MotoGP08
  • MPI
  • News
  • Nintendo DS
  • OmegaDesk
  • omegali
  • omegalib
  • Papervision
  • QbViz
  • Tech Meeting
  • Visualization
  • VR

Blog Archive

  • ▼  2013 (31)
    • ►  November (2)
    • ►  October (2)
    • ►  September (2)
    • ►  August (1)
    • ►  June (4)
    • ►  May (3)
    • ▼  April (4)
      • broadcastCommand, a.k.a visualizing Kittens on a C...
      • Mixing C++ and python code in your omegalib applic...
      • omegalib 3.6 released
      • Parallel Gaussian Elimination Using MPI
    • ►  March (6)
    • ►  February (4)
    • ►  January (3)
  • ►  2012 (8)
    • ►  December (3)
    • ►  November (2)
    • ►  August (3)
  • ►  2011 (2)
    • ►  November (1)
    • ►  January (1)
  • ►  2010 (4)
    • ►  November (1)
    • ►  February (1)
    • ►  January (2)
  • ►  2009 (5)
    • ►  September (1)
    • ►  June (1)
    • ►  April (1)
    • ►  March (1)
    • ►  January (1)
  • ►  2008 (22)
    • ►  December (1)
    • ►  October (4)
    • ►  September (6)
    • ►  June (2)
    • ►  May (3)
    • ►  April (1)
    • ►  March (2)
    • ►  January (3)
  • ►  2007 (16)
    • ►  December (2)
    • ►  November (3)
    • ►  October (4)
    • ►  September (7)
Powered by Blogger.

About Me

Unknown
View my complete profile