Parallel & Distributed Computing

In between my Bsc and Msc degrees, I worked for Jade Simulations on an object-oriented Virtual Time-based TimeWarp operating system for parallel computers. This C++ system ran on Sun workstations, the Transputer-based CS-1, and the BBN Butterfly.

I authored several papers about parallel computing applied to 3D rendering and interactive implicit surface modelling. Nowadays folks are sending the Inventor file format over the net (aka VRML). It is total cheeze right now.

I have somewhat more practical thoughts about 3D and the Internet.

Parallel Computing Links

Distributed, Complex and Evolutionary Systems

I am quite interested in distributed systems and evolutionary systems. My work with TimeWarp revealed to me that complexity, chaos, intelligence and power are inherant in distributed control systems. These are systems where there is no central authority guiding computation. Rather, all agents work according to sets of rules, and their behaviour settles down, or self-stabilizes, into a useful pattern.

These systems can have a command center, but be under distributed self-control. The command center can start process in action, monitor the system, and collect results. It does not regulate the system through lock-step synchronization. An example of distributed application programming systems can be found at Agorics Inc.

I would like to spend more time working with genetic algorithms and algorithms that learn. I believe that GAs can be used to "grow" all manner of algorithms. Basically you would feed these noomachines basic building blocks which are fragments of algorithms. The noomachines then build up complex webs of interacting software. Good things to feed a noocolony include neural network concepts, iterative solutions, etc.

Some form of visual or tactile programming/teaching system must be devised to train the genetic algorithms. As you know this is more like guiding the evolution. But by recursively applying genetic and neural methods, you can grow your own training "bots".

Truly distributed systems exhibit complex and sometimes chaotic behaviour. The nature of disturbances in a computing fabric is infulenced by a great many things. It is not unlike the brain, which influences thought patterns both by the software (ie programming) that is resident in the brain, and also by the morphology of the brain itself.

These issues, such as the latency between nodes, whether individual compute nodes ahave a unique ID or not, whether there is a leader in the network or not, etc. form the basic morphology of the computational system upon which you run your parallel algorithms. These can affect the self-stabilization characteristics of a distributed control system.

Distributed Systems Links