|
2. Why Parallel Processing
|
Accepting reduction of wall-clock time as the fundamental goal of our activities, why necessarily focus on parallel programming as the means to this end? Aren't there other approaches that can also yield fast turnarounds? Yes, indeed there are, the most significant being the oldest: "beef up that old mainframe," make the standalone single-processor design larger (e.g., increase the amount of memory it can directly address) and more powerful (e.g., increase its basic wordlength and computational precision) and faster (e.g., use smaller-micron etching technology, packing more transistors into less space, and coupling everything with larger and faster communications pathways).
This approach, though, can only be pushed so far, and indications are getting stronger and stronger that fundamental limitations are going to put permanent roadblocks up before too much longer. Three of these are:
- Limits to transmission speed
The speed of light is 30 cm/nanosecond, which means that, even using strictly optical communications methods, high-speed modules must be placed relatively close to one another in order not to lose synchronization; copper wire, however, is still the most prevalent means of building communication pathways, and there the limit is 9 cm/nanosecond, making physical proximity just that much more important in a single-processor design.
- Limits to miniaturization
Processor technology is currently capable of placing millions of transistors within fingertip-sized modules, and using sub-micron (1e-6 meters) width layers in building the chips; obviously, the more units you can pack into smaller and smaller areas, the more computational power you've achieved. However, you can only decrease the size of these components so far, even though there are now efforts directed at both molecular- and atomic-level component structures; regardless, there will be a physical component size established below which it will be impossible to assemble effective units.
- Economics limitations:
It is increasingly expensive to make a single processor faster. The most common strategies for increasing speed involve:
- Faster Processors
Current technology is pushing towards the gigahertz range for clocks. Standard, leading edge processors today utilize 1GHz and better, and soon these processors will be the standard pieces of hardware design. But there is a price: in order for the higher-frequency clock-signals to be effective, the other parts of the processor utilizing those signals must be capable of doing significant work in the same frequency domain -- if you have an instruction unit that is capable of executing 1 instruction in a 20MHz cycle, and you boost the clock rate to 1GHz, you haven't done anything about the absolute speed of the instruction unit: it will still need the same amount of time as before, and will now issue instructions at the rate of 1 for every 50 ticks, rather than 1 for every 1 tick. In order for higher clock frequencies to translate into faster processors, the other components of the processor must also be modified to operate at a higher rate, and this process can be very, very expensive.
- Higher-density Packaging
Just as clocks are getting faster and faster, transistors are getting smaller and smaller, and more of them than ever before can be packed together in a very small area. This has a number of benefits: making it possible to put much more functionality on a chip, greatly reducing the communication time between cooperating units, etc. But, just as with clocks, these advances come with their own costs; in the case of transistors, this generally comes from advances in etching technology, and having to deal with heat dissipation.
Etching technology refers to the manner in which the substrate (the alternating layers of conductive/non-conductive materials, upon which the transistors are fixed, and through which the communication between transistors occurs) is prepared for the matrix of transistors and "wires" connecting them. As transistor densities increase, the complexity of the etching process greatly increases, not only in terms of the fine detail that must be maintained, but also due to the huge increase in complexity in the communication network that must be accommodated.
Heat dissipation is one of the primary roadblocks encountered in the development of higher density packaging. All electronic activity produces waste heat as an unavoidable byproduct, and the more closely transistors are packed together, the more heat per unit area gets produced.
- Thinner Substrates
Also playing a role in "higher-density packaging", decreasing the thickness of the substrate layers can have a marked effect on, among other things, the length of communication lines, this leading directly to communication speed. The thinner you make the substrates, the "closer together" the transistors are...but, by the same token, the closer they are, the more likely they'll be to generate electrical and magnetic interference and waste heat. So, in order to bring a new, thinner substrate into standard use, a great deal of research, engineering and manufacturing effort must be expended on insulators and effective heat sinks, among many other things.
For all these reasons and many more, the introduction of a new generation of processors is a very costly enterprise.
- Fairly fast processors are inexpensive.
The other side of the "evolutionary expense" coin we just flipped insists that any recent-generation processor already on the market must already be reasonably fast ("recent-generation") and inexpensive ("on the market"). It only stands to reason that a chip maker would put millions of dollars into the development of a new chip only if they thought that they'd be able to generate sufficient revenue from volume sales, and the higher the volume, the lower the cost of an individual chip. Also pushing this curve is the fact that there are a number of chip makers out there, all competing for those volume sales, and trying to reduce their prices as much as possible in order to clear their inventories. So, even if we can't have the absolutely latest, fastest, most gee-whiz chip to hit the streets, we can get a number of chips that are within an order of magnitude of being just as good.
- Bottom line: Use More, Relatively Inexpensive Processors in Parallel
So, we have a handful of processors one or two generations older than the hottest thing yet unveiled; we didn't pay all that much for them, and if you just added up their individual performance figures, you'd beat the numbers that are touted for the latest-and-greatest processor. But what gives you the opportunity to realize the potential you see in the long string of additions? Putting all those processors in parallel.
|