Windows Support Australia

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

Sunday, 17 March 2013

Distributed Sum on a 2D mesh using MPI

Posted on 16:24 by Unknown

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 easiest applications of the map-reduce approach: Since a sum is an associative operation, we can simply assign a portion of the array to each of our processing resources, and incrementally collect and merge all the partial sums until we get the final result. The Message Passing Interface (MPI) actually has primitives that support map-reduce algorithms directly.

To make the project a little more challenging, we had to implement our distributed algorithm considering this additional requirements:

  • We could only use MPI_Send and MPI_Recv primitives: in other words, all communication needed to be explicit, point-to-point messaging.
  • We had to assume our computational resources were organized as a 2D mesh: each computation element would have an index (i, j) and could only communicate with elements on its same row or column.
  • We wanted to minimize  the total distance traveled by messages (assuming each hop would have a cost): for instance, sending all partial sums in a row to the first element in the row is less efficient that summing neighbor nodes together iteratively (recursive halving)
We had to run the algorithm on a 16-node system and collect a few performance measures. An interesting (and expected) result is that depending on how many numbers we have to sum, distribution may or may not be convenient, due to message passing costs.

Read the full project report here!
Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in MPI | 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)
    • ▼  March (6)
      • omegalib 3.5 released
      • Playing an actual game with Oculus Rift: hands-on ...
      • Distributed Sum on a 2D mesh using MPI
      • Mechdyne Corporation Licenses CAVE2 Hybrid Reality...
      • Railsim
      • omegalib 3.4 released
    • ►  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