A General Overview of Parallel Processing Fall 1998 |
|||
|
|||
Mark Pacifico | mjpac@wam.umd.edu | Mike Merrill | mwm@glue.umd.edu |
A BRIEF OVERVIEW | |||
There has been a lot of material touched upon up to this point on this webpage. Let's briefly summarize what we have said. First of all, parallel processing is the use of a collection of processing elements that communicate and cooperate to solve large problems quickly. We do not see parallelism in personal computers as much because the performance of uniprocessors is quick enough right now to satisfy most time demands. Parallel processing is the concept of solving a problem by a technique called divide and conquer. Instead of executing a task linearly, the task is broken up (divided) into pieces that are executed (conquered) at the same time. These same problems would take a ridiculous amount of time using just one processor. By now we know that parallelism is not only important for supercomputers that solve highly complex problems, but it is also important for our personal and business computers even though for the most part these machines still contain a uniprocessor. Due to the physical restriction of the speed of light is imposed on the speed of a uniprocessor, eventually parallelism will have to be utilized even in personal computers in order to sustain the rate of improvement in execution time. | |||
A LITTLE BIT OF DETAIL | |||
Many terms were introduced in our discussion of parallel processing. This section offers a brief summary of these terms. All computers are placed into one of four categories with respect to the parallelism present in the instruction and data streams. SISD computers are the typical uniprocessor machines such as personal computers. SIMD machines have multiple processors that execute the same instruction on multiple data streams. MISD machines are nonexistent for commercial use, but may show up in the future. Finally, in MIMD machines, each processor fetches its own instructions and operates on its own data. Within MIMD machines, we have two types of memory arrangements: centralized shared memory which involves one main memory and several processors that have access to it, and distributed memory where each processor has its own slice of main memory. The issue of how the processors communicate with the memory depending on which memory model the architecture is using is covered in the section on communication. Finally, synchronization involves getting processors to agree on the value of a variable or a time at which to start or stop accessing. With mutual exclusion, only one processor is allowed to access a particular memory location at a time. Barriers involve making processors wait at a certain point in a program for others to catch up. Memory consistency is an issue that can be solved using sequential memory consistency which carries with it expensive time delays, or a weaker memory consistency model that requires more programmer intervention. | |||
A HISTORICAL PERSPECTIVE AND A GLIMPSE OF THE FUTURE | |||
Parallel Processing can be traced back all the way to the 1950s. As we have seen, the development of parallel architectures has been extremely rapid since then. Less than ten years after Cocke and Slotnick's first discussions of the use of parallelism in 1958, Gene Amdahl discovers limits to parallelism, now known as Amdahl's Law. In the early 70s, Control Data Corporation develops a parallel radar imaging system which achieves 250 times the performance of a system released just seven years prior. Many other improved systems are developed at a rapid rate until the late 80s when demand for personal computers draws attention away from the development of parallel systems. Today, certain companies such as Cray and Sun continue development and improvement in parallel computing mainly for use in government, business, and the military. As we have stated earlier, the speed of light is a physical limitation of the speed of uniprocessor machines that are so popular right now. Therefore, processors keep getting smaller and smaller so that the distance signals pass is much less, thereby lessening execution time. There is a limit on this reduction in size, however. Obviously, we cannot have microprocessors that fit on the head of a pin. This is the direction that uniprocessors are headed and it is simply impractical for this trend to continue. Therefore, parallelism will eventually have to factor in when the increase in execution time in uniprocessors plateaus. No one knows for sure when this will occur, but it is nearly inevitable that parallel processing will eventually play a larger role in every household in America that owns a personal computer. | |||
QUESTIONS AND ANSWERS | |||
Q. Explain
why it may be necessary to turn to parallel architectures in the future
if we want to furthur increase the speed of our computers. Why are
parallel architectures currently used mostly for supercomputing purposes
only?
A. In the future, we may need to rely on parallelism to a large extent if we begin to reach the limit on speed using just one processor. We would have to build incredibly small machines in order to continue the improvements in uniprocessor speed being made today. However, for the time being uniprocessor machines are keeping up with the demands of computer applications, leaving parallel architectures to be used primarily in solving larger problems more likely to be encountered by a supercomputer. Q. Explain the differences
between SIMD and MIMD computers. Which architecture is popular today,
and why?
Q. Explain why it is that it is often more
efficient to send one large message through the processor network than
many small ones?
Q. Give an example (other than the one
given) of a parallel algorithm that creates a problem that can be solved
with mutual exclusion. Explain.
|
|||
|
|||
|