Simple distributed example for learning purposes?

Tim Golden mail at timgolden.me.uk
Sat Dec 26 15:06:02 EST 2009


I'm trying to work up a programming course using Python,
aimed at secondary school students [*] here in London. One
of my aims is to have a series of compact but functional
examples, each demonstrating a particular field in which
Python (and programming) can be useful.

I'm trying to come up with something which will illustrate
the usefulness of a distributed processing model. Since I
may not be using the term "distributed" exactly, my
criteria are:

* It should be clear that the application produces results
sooner when run via multiple cooperating computers 
than when run on one. 

* The problem being solved should be broadly comprehensible by
the students. This rules out some abstruse mathematical
calculation which would benefit from multiple processors but
which will fail to engage their interest.

* I don't mind using / installing some library as a black box
so long as the other criteria are met. This is at least partly
because I want the code to be compact and I'm quite happy to
point to a library call and say "this does the hard work".


I'm not asking anyone to write code: what I'm after is some sort
of problem space which will meet my criteria. Part of the issue
is that computers are just so fast these days that almost anything
I can come up with can be managed so quickly on one laptop that
the overhead of distribution (or of the IO) will dwarf the benefits
of distributing.

The kind of things I've considered briefly include: speech recognition;
image analysis; large scale indexing (effectively: building a search
engine). At present I'm looking at that last one, not least because I
have little knowledge of the other domains so there's a overhead for
me in setting the example up.

Any suggestions, either from your own experience of something similar,
or from sheer inspiration, will be gratefully received.

Thanks

TJG

[*] roughly, ages 14-18



More information about the Python-list mailing list