Friday, March 31, 2006

Processors of future: Exponentially Dynamically

A share from a 20 min discussion with Prof. Tay Joc Cing today afternoon.

"I believe that by the end of this century, we won't need computers anymore for computation" -Tay

"Complex computations will be done by biological beings (read nano particles/molecular machines)" -Tay

"In this century, we're going to have such fast computers, where we don't have to worry about the slowness of the language we're going to use. The most complex problem for computers to process today is a problem with exponential space-time complexity. Our processor speeds are increasing linearly. We are progressing from 1GHz to 2GHz to 3, 4, and 5 GHz. So, the problem continues to be exponential. Consider a possibility of a processor whose speed can increase exponentially dynamically, it can solve a problem with exponential space-time complexity in linear time, which depending upon the problem would essentially be a constant.

Now, if each bio molecule can process fixed set of instructions, knowing that they grow exponentially and assuming that they can distribute the work to their offsprings, a biological molecular robot which can direct n such molecules to solve the problem, can become our first exponentially accelerating processor." -Manish


Harish Mallipeddi said...

Before all that happens, in the next decade what's going to happen is your regular mom and dad kind will be using a multi-core PC, but most of the CS grads fresh out of college would have glady skipped their "Parallel Programming" course due to it being notoriously famous for difficulty. And that's when the problem begins; apps will not be utilising the architecture underneath. Exploiting parallelism at the source code level should be made as easy as possible. Do we need new languages or new flavours of old ones? or just better tools? MPI and OpenMP are not so much fun for normal programmers.

Anyways just wondering about the bio-processors you were talking about. From what I can understand, even they'll behave like massive grids right? If so, then parallelism of code will be important?

mann said...

1. Regarding MPI complexity, in freewares / opensource the python version of MPI is quite easy to code. Check it out here. There is other properietary tools/compilers which allow easy coding for parallel execution.

2. The bio-processors wd themselves be exponentially increasing (in size). Therefore, the code would need to be one step ahead of parallel execution. It has to be hierarchichaly executable. Imagine a tree where each node can talk to any other node, and pass on work; in the situation where tree is continously growing.

Therefore, same as with the processors; even the techniques that we have today (like MPI), will be completely different.