Dienstag, 8. Januar 2008

Monads and BSP

Today there was a post on reddit about a nice syntax for monads in python and it makes me wonder whether monads coudl help a lot in BSP. What they essentially provide is an abstraction for map and filter operations on arbitrary data sets. This leads me to this question: "Can the BSP model be rewritten in terms of monads?"

Montag, 7. Januar 2008

BSP is map-reduce?

Bulk synchronous parallel programming is a programming model that divides the execution flow into two alternating phases:
  1. local computation
  2. global communication and synchronisation
While MPI itself is rather hairy to program, BSP facilitates parallel programming a lot. It automatically avoids deadlocks as all processes wait for each other after the communication step. In that respect it looks very much like the map-reduce model that google uses, but seems to be a generalisation as it also allows both global and distributed arrays. Also a BSP program is a program for N processors while map-reduce is a model for N-1 slave processors and one additional master. In the weeks to come I will tell more about the experience I will make with that programming model. Stand by.

Python and MPI

SGI delivers the machine with preinstalled linux with kernel 2.6 which of course includes a python interpreter. It is version 2.4.2. Not bleeding edge but pretty up to date. But of course no support of MPI or PVM. So I dabbled in installing some MPI module. Currently there are a handful of MPI modulaes available but most of them seem defunct or dead. Finally I found a simple MPI module in the Scientific Python module by Konrad Hinsen (http://dirac.cnrs-orleans.fr/plone/software/scientificpython) which installed itself flawlessly and contains a nice module called BSP aka bulk synchronous parallel programming.

Booting up

Started my new job at the Leibniz Supercomputing Centre in Munich. One of my goals will be the implemetation of a good scripting environment on the HLRB2. It is an SGI Altix system with 9728 cores. Looks kinda cool... see: