Thursday, May 24, 2007

Parallelisation

I recently posted that massively parallel processor are on the way and that we (as programmers) will have to think differently to write code for these environments. I posted that we will need to think in terms of tiny nuggets of program that interact in some simple way.

This in itself is not hugely clever - expose a simple message-passing system, perhaps make a nod towards PI-calculus, maybe make compile-time restrictions on code size and message complexity. Hmm, a kinda SOA at the machine-code level.. grid computing anyone?

I think that moving away from the separation between 'data' and 'code' might help somewhat, and this bit is clever! It would mean that, once suitably transformed, a users data can be expressed in terms of it's interpretive ability. A new service can be created because we know that the user has recorded the position of a telelphone port, or changed the value of the price of a share in some company. Now our 'real' coders are really writing interpreters. They are writing programs that interpret the data into machine-executable processes. Of course, the implication is that we are creating a program that is writing itself at execution time... oh boy!

No comments: