This text is not a technical one, although it is related to technical issues. I did not come up with these ideas myself, I picked them up when I attended a conference on grid computing. The problem described caught my interest, because as a programmer, it frustrates me that I never have the time to write the code I would like to write.
Suppose you would write everything down what you're thinking, pen every thought down on paper until you die, then you will find that when you die, you still haven't written down everything you ever thought. This is because you can think many, many times faster than you can write. This is known as the bandwidth problem.
Computers have a central processing unit (or cpu), and memory in the form of RAM memory and disk memory. To accept input, there is a keyboard and it has a screen to show output on. Humans are much alike, our brain serves as both cpu and memory, our eyes and ears are receptors (input devices) and we can talk or use facial expressions for output. Of course, we weren't modeled after computers, computers were (more or less) modeled after us instead.
Inside a computer, the fastest component is the cpu. It has a certain amount
of bits per second it can process. The speed with which it can get bits from
memory, however, is limited by the bandwidth of the bus (or channel) that
connects the cpu to the memory and by the speed of the memory itself.
This bandwidth is much like with traffic: the broader the highway, the more
cars can pass in one hour.
The output to disk, compared to the speed of a cpu, is very slow. We can
descend the chain even further; tape I/O is usally slower than disk I/O.
As said, humans are much alike. Our brain works relatively fast, and our eyes can receive a fair amount of data. Our ears work slower, and compared to a dog our noses aren't very good -- what I'm trying to say is that our input devices are quite slow. Same goes for our output devices, our speech is dreadfully slow and we cannot work very fast with our hands. The problem is that the bandwidth of our brain is by factors larger than the bandwidth of our input and output devices.
As a programmer, I use my hands to write a computer program. Because my brain
is working much faster than my hands, I keep getting new ideas before I've
finished typing the program I was currently working on. From time to time,
this becomes very frustrating, because I never get to write the programs that
I actually wanted to write. (I guess writers or painters must have the very
same problem.)
I must add though, that this is also caused by lack of time. But the time
itself is needed only because my I/O devices are too slow to keep up with the
brain.
Humans are too slow to do more than one big thing in their lives. However,
we are with many and each of us can do a small piece of a larger job. This is
much like an ant-farm or, to stay with computers, like a cluster of
workstations. One of the keys to success in making efficiently use of all
resources in a cluster is management, but that is a completely different
story.
Also, we need to teach our next generations our knowledge, which takes a
considerable amount of time (again, because our I/O devices are slow) and
therefore it sometimes takes generations to tackle certain problems.