Friday, August 17, 2007

Another Reason That Threads Are Evil: Crybabies

One often hears parallel programming pundits complain about the human brain being more at home in a sequential environment and finding it difficult to handle parallel objects. Nothing could further from the truth! We live and survive in a concurrent universe where thousands of objects around us have independent existence and behave concurrently. Many people drive a vehicle to and from work while processing an untold number of parallel stimuli from their visual, auditory and tactile sensory spaces. We never had a problem surviving and operating in a concurrent world. Why should we suddenly be handicapped when it comes to parallel computing objects?

The real reason that we find it difficult to handle so-called parallel programs is that they are not really parallel. They are just a bunch of threads, which are sequential algorithms slapped together like spaghetti in a non-deterministic and haphazard fashion. True parallel objects have nothing to do with algorithms. "Parallel algorithm" is an oxymoron. A true parallel object is one that reacts synchronously to environmental stimuli, just like the dog, the cat or Uncle Joe. A true parallel object is a behaving machine. It has sensors to detect changes in its environment and effectors to effect changes in it. Indeed, a true parallel program should consist entirely of simple sensors, effectors and its data environment. Unless and until we come to fully grok that computing is about behavior and nothing else, we will have to keep listening to a bunch of crybabies incessantly bitch about the human brain's supposed inadequacy vis-a-vis parallel programming. It's tiresome.

That’s part of what Project COSA is about: true parallelism for our parallel minds.

No comments: