Distributed Computing

You are currently browsing articles tagged Distributed Computing.

Distributed Conway's Life

This is (half of) a system I developed for SHARCNET last year.  They have a nifty little ‘Supercomputer in a Box’ project designed for community outreach.  Like most modern supercomputers, it’s a cluster of machines.  For the sake of size, it’s made of eight Apple Mac Minis.

Supercomputers have their own constraints; it is not worth parallelizing a process if the gains in computation are outweighed by communications overhead.   This is intuitive to a computer scientist, but we’re not normal people.  Non-computer scientists could use a visual aide.

The above screenshot shows a distributed version of Conway’s Life, a trivial cellular automata.  It’s not a particularly important application; it’s just intended to burn up CPU cycles.  Each stripe represents a process running on a distinct CPU.  In this case I’m wasting time in 16-way glory.

Using the control panel on the left, a user can change the dimensions of the cellular automata, or inflate its computational complexity. For example, a very wide, short simulation will use more network than CPU. A very large simulation will use up available memory and thrash when running on a single processor, but will be perfectly happy when split across a cluster.

In practical use, this program is only half a solution; it works well in concert with a cluster monitoring package such as ganglia.

The distributed conway’s life implementation is written in C using MPI.  The front end program is written in Python, using wxPython for the graphical interface, and Twisted Python to receive images from each compute process.

Tags: , , ,

On the cloud.

Stateless computing: the future of the cloud?

Jeffrey Birnbaum, discussed stateless computing and the evolution of the cloud. He envisions a future in which software processes are abstracted so far from the underlying hardware that companies will discuss processing capacity in terms of raw computational units rather than discrete servers.

Tags: ,

Tags: , , ,

Twitter Can Be Liberated – Here’s How

Tags: , ,

Skip graphs are a novel distributed data structure, based on skip lists, that provide the full functionality of a balanced tree in a distributed system where resources are stored in separate nodes that may fail at any time. Via anarchaia.

Tags: , ,