Rockwell Aim 65
I had my initial idea for COSA back in 1980. I had just bought myself a 1 MHz Rockwell AIM 65 single board computer with 4k of RAM. At the time, I knew almost nothing about computers other than that they fascinated me to no end. On the same day my computer arrived, I dove into one of the assembly language programming books that came in the package. In the introductory chapter, the author (I can’t remember his name) covered the basics of how computers work and what a program consists of. He then explained that, unlike a biological brain, which has many slow processors (neurons) working in parallel, a computer has a single CPU that processes instructions one after the other. However, he continued, a CPU such as the 6502 is so fast that it can do the work of many slow parallel processors in a short interval.
Right away, even before I knew enough assembly language to write my first program, it was clear to me that computers were fundamentally flawed. I don’t know how but I immediately understood that a computer program should be more like a neural network. I knew that processors should be designed and optimized to emulate the reactive parallelism of the brain at the instruction level. I also realized that, for performance purposes, the emulation mechanism had to reside within the processor hardware itself.
Good Ideas Don’t Get Stolen
Soon afterward, I mastered assembly language and landed a job as a game programmer at a small company. I tried to explain my idea to other programmers but they either did not care or thought it was a dumb idea. I was stunned by their reaction. I just could not understand how seemingly intelligent people could be so blind to something that was so obvious. Surely, game programmers understood the concept of simulating parallelism with the help of two buffers and a loop. My idea essentially took the concept down to the lowest possible level. It is not rocket science. Someone even told me that, if my idea was any good, I should keep it a secret. I was then reminded of the following quote by computer pioneer Howard Aiken: “Don't worry about people stealing your ideas. If your ideas are any good, you'll have to ram them down people's throats.”
No Reason to Change
Over the ensuing decades, I developed a love-hate relationship with computers: I loved their potential but I hated the way they worked and the way they were programmed. I hated programming languages. I still do. I longed to do something about it but, even though COSA is dear to me, I could never find much time to devote to it. Like everyone else, I was busy making a living. Besides, I was preoccupied with another passion of mine, artificial intelligence, which is the real reason that I became interested in computers in the first place. I watched in horror as computer scientists turned computer programming into a complete mess, a veritable tower of Babel. The Turing machine was accepted as the de facto computing model. Hopelessly flawed computer languages and operating systems began to proliferate like mad. Needless to say, unreliability and low productivity wreaked havoc everywhere. A few people in the business began to complain and the reliability industry sprouted like a mushroom. Years later, the problem is still with us, worse than ever. Realizing that the COSA model is deterministic and inherently reliable, I got the idea of using the software reliability crisis as a springboard to promote Project COSA. That worked to a certain extent. A handful of people started paying attention but that was not enough to motivate the leaders of the industry to change to a better model. After all, since they had a captive market, people were making money hand over fist and so there was no real reason to change. Besides, the computer science community (mostly a bunch of old computer geeks who don't know when it is time to retire) still has a firm grip on the business.
Hooked on Speed
Buggy software, high production costs and late product launches took their toll but the industry was resigned to live with the pain. Even if everybody became somehow convinced that a solution to their problems was available, there was already too much time and effort invested in legacy applications to turn the ship around. But more trouble was lurking around the corner. As the complexity of software applications increased, the demand for higher performance also went up. Moore’s law took care of that problem for decades. Eventually however, the laws of physics got the upper hand and it became impossible to increase speed while keeping the chips cool enough. Disaster loomed. The industry could see only one way out of its predicament: multicore parallel processing based on an old programming technique called multithreading. Problem is, programming with threads is hard as hell. The solution is obviously not working and, lately, there has been an odor of panic in the air.
A New Opportunity
The COSA software model is, of course, inherently parallel and has been from the start. In addition, it does not use threads and is thus free of all the nasty problems associated with multithreading. Furthermore, since COSA is signal-based just like hardware components, it is ideally suited to compositional software construction via plug-compatible modules. In other words, fast and easy parallel programming, precisely what the industry is searching for. In the past, I never saw the need to emphasize the parallel nature of COSA. It did not occur to me until about a year ago that the only thing that would convince the computer industry to abandon its evil ways would be the performance issue. I saw it as an excellent opportunity to promote COSA in earnest. I made a lot of noise and a lot of people in the business are beginning to take notice. Still, I am a realist. The computer industry is like the Titanic and nobody can expect it to turn on a dime. There is a lot of inertia that must be overcome, not only in terms of engineering, but also in terms of leadership. And by this I am not talking about leaders in academia. I had long ago given up on the computer science community since I am convinced that computer scientists are the ones who got us all into this mess in the first place. They are not about to accept anything like COSA because COSA will make them look stupid. Only the captains of the industry have the power to decide its future course. I am talking about people like Bill Gates, Steve Ballmer, Paul Otellini, Hector Ruiz, etc… Problem is, trying to get the attention of people like that is like trying to get an audience with the Pope. Oh well. I am doing the best I can and it’s not over until it’s over.
The story of COSA continues. Stay tuned.
How to Solve the Parallel Programming Crisis
Half a Century of Crappy Computing
Why Software Is Bad and What We Can Do to Fix It