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

  • 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...
  • (no title)
    A list of Wiki tools I can choose among for Edanarion documentation: http://wikkawiki.org/HomePage http://wiki.splitbrain.org/ http://www.me...
  • Parallel Gaussian Elimination Using MPI
    In this project, we had to implement a parallel solver for linear equation systems, using a technique known as Gaussian elimination (GE). As...
  • GPU Programming Project 1 – Kodachrome
      The objective for this project was to process a stream of images captured from the webcam, and apply a set of vertex, fragment and geomet...
  • 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...
  • Using Kinect for 3D video capture
    (Thanks for the link, Jakub)
  • Usability in Games
    New project added on the website: Usability in Games. We are investigating how interface usability influences user engagement in long-term c...
  • Omegalib 3.0 Released
    Omegalib 3.0 is a major improvement over the 2.0 distribution. It is the version used on the first public demos of the  CAVE2  virtual reali...

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