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!
Read More
Posted in CAVE2, omegalib, VR | No comments

Saturday, 20 April 2013

Mixing C++ and python code in your omegalib application

Posted on 15:39 by Unknown

Capture

In omegalib, Applications can be developed as standalone executables in C++ or as scripts in Python. Omegalib also supports mixed native/script applications with user-defined C++ modules that can be exposed to Python through a simple declarative interface. When needed you can build part of your program using C++ and turn that into a python module integrating the omegalib API. You can then import this module into python using import moduleName and use some of its exposed interfaces.

Assuming you have an omegalib installation on our machine, you can find it using the CMake command find_package(Omegalib). The command will add a new variable to your cmake configuration asking for the path to the omegalib build dir. After setting that, you will have a set of standard variables defined (OMEGA_INCLUDE_DIRS, OMEGA_LIB, OMEGA_TOOLKIT_LIB, CYCLOPS_LIB) that you can use to set header files and libraries for your project).

After building, the project will output a .so or .pyd file (depending on the platform). You will be able to import this module into a python omegalib script launcher through orun. C++ classes and methods are exposed using a module declaration section in your source file. The module declaration lists all the classes and methods you want to expose, together with some minimal information about how they work.

Red more about mixed-code programming for omegalib here

Read More
Posted in omegalib | No comments

Thursday, 18 April 2013

omegalib 3.6 released

Posted on 19:04 by Unknown
DTI2 025


Full version of this release is 3.6.3. Download it here, or get it from svn here: 
http://omegalib.googlecode.com/svn/tags/v.3.6.3/
Big list of changes for this release:
general
  • moved Porthole code from omega to omegaToolkit
  • (3.6.1) additional improvements and fixes to runtime application switching.
  • (3.6.3) added modules directory for modules that are shipped as part of omegalib but are not part of the core libraries. Modules also provide a good source of examples on how to extend omegalib.
  • (3.6.3) fbx sdk packages are downloaded on demand from omegalib website instead of being part of the repository.
  • (3.6.4) python and FreeImage? fbx sdk packages are downloaded on demand from omegalib website instead of being part of the repository.
omicron
  • Major improvements for SuperCollider sound API, thanks to Arthur Nishimoto and JD Pirtle
orun
  • control of application start command
omega
  • Python interpreter adds data root to module seearch path
  • A few fixes and improvements to multipipe rendering and to mouse pointer - ray conversion.
  • (internal) Render pass management moved from Pipe to Window
  • removed obsolete Gpu classes. They may be placed in a separate module in the future.
  • added borderless option to display and tile configuration.
  • (3.6.1) reformatted python errors to make them easier to spot in the log.
  • (3.6.1, Windows 32bit) build process uses an internal copy of python instead of an external, so omegalib builds out-of-the-box even with python suppor enabled.
  • (3.6.2) Fixed regression on loading of 8bit png images.
  • (3.6.3) added onParentChanged to SceneNodeListener?
  • (3.6.3) Fixed invertex colors in readback target
omegaToolkit
  • New menu widgets: label, slider, image
  • Slider class accessible from Python API
  • fixed menu deallocation when switching applications at runtime
  • some fixes to container layout code
  • removed Panel container type (it can be replicated using Container styles)
  • (3.6.2) added radio buttons.
  • (3.6.3) custom uis can be added to a menu through Menu.addContainer
cyclops
  • Added support for geometry shaders in C++ and python API through the ProgramAsset class.
  • (3.6.3) fixed node remove errors
  • (3.6.3) Simplified entity management and removed obsolete entity functions from SceneManager?
  • (3.6.3) Improvements to Material (alpha set and get, material reset)
  • (3.6.3) Added support for post-lighting custom shader code (@postLightingSection macro)
Read More
Posted in CAVE2, omegalib | No comments

Parallel Gaussian Elimination Using MPI

Posted on 15:18 by Unknown
In this project, we had to implement a parallel solver for linear equation systems, using a technique known as Gaussian elimination (GE). As with many other algorithms for solving linear equation systems, GE is performed on the matrix representation of the system, Ax = b, where A is the coefficient matrix and b is the vector of known values. GE works by applying a set of elementary row operations (swapping rows, multiplying a row by a non-zero number, adding a multiple of one row to another) in order to turn the coefficient matrix into upper triangular form. The algorithm has been implemented in C, using the Message Passing Interface (MPI) API. The parallel GE program measured execution times for its four main components: data distribution, Forward Elimination , Pivot row identification, Back substitution.
Read the full report here
Read More
Posted in MPI | No comments
Newer Posts Older Posts Home
Subscribe to: 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