How Supercomputers Work

How Supercomputers Work

 The two major components of a supercomputer are the same as any other computer—a central processing unit (CPU) where instructions are carried out, and the memory in which data and instructions are stored. The CPU in a supercomputer is similar in function to a standard personal computer (PC) CPU, but it usually has a different type of transistor technology that minimizes transistor switching time. Switching time is the length of time that it takes for a transistor in the CPU to open or close, which corresponds to a piece of data moving or changing value in the computer. This time is extremely important in determining the absolute speed at which a CPU can operate. By using very high performance circuits, architectures, and, in some cases, even special materials, supercomputer designers are able to make CPUs that are 10 to 20 times faster than state-of-the-art processors for other types of commercial computers.

Supercomputer memory also has the same function as memory in other computers, but it is optimized so that retrieval of data and instructions from memory takes the least amount of time possible. Also important to supercomputer performance is that the connections between the memory and the CPU be as short as possible to minimize the time that information takes to travel between the memory and the CPU.

The whole process of How Supercomputers Work : A supercomputer functions in much the same way as any other type of computer, except that it is designed to do calculations as fast as possible. Supercomputer designers use two main methods to reduce the amount of time that supercomputers spend carrying out instructions—pipelining and parallelism. Pipelining allows multiple operations to take place at the same time in the supercomputer’s CPU by grouping together pieces of data that need to have the same sequence of operations performed on them and then feeding them through the CPU one after the other. The general idea of parallelism is to process data and instructions in parallel rather than in sequence.

In pipelining, the various logic circuits (electronic circuits within the CPU that perform arithmetic calculations) used on a specific calculation are continuously in use, with data streaming from one logic unit to the next without interruption. For instance, a sequence of operations on a large group of numbers might be to add adjacent numbers together in pairs beginning with the first and second numbers, then to multiply these results by some constant, and finally to store these results in memory. The addition operation would be Step 1, the multiplication operation would be Step 2, and the assigning of the result to a memory location would be Step 3 in the sequence. The CPU could perform the sequence of operations on the first pair of numbers, store the result in memory and then pass the second pair of numbers through, and continue on like this. For a small group of numbers this would be fine, but since supercomputers perform calculations on massive groups of numbers this technique would be inefficient, because only one operation at a time is being performed.

Pipelining overcomes the source of inefficiency associated with the CPU performing a sequence of operations on only one piece of data at a time until the sequence is finished. The pipeline method would be to perform Step 1 on the first pair of data and move it to Step 2. As the result of the first operation move to Step 2, the second pair of data move into Step 1. Step 1 and 2 are then performed simultaneously on their respective data and the results of the operations are moved ahead in the pipeline, or the sequence of operations performed on a group of data. Hence the third pair of numbers are in Step 1, the second pair of numbers are in Step 2, and the first pair of numbers are in Step 3. The remainder of the calculations are performed in this way, with the specific logic units in the sequence are always operating simultaneously on data.

The example used above to illustrate pipelining can also be used to illustrate the concept of parallelism (see Parallel Processing). A computer that parallel-processed data would perform Step 1 on multiple pieces of data simultaneously, then move these to Step 2, then to Step 3, each step being performed on the multiple pieces of data simultaneously. One way to do this is to have multiple logic circuits in the CPU that perform the same sequence of operations. Another way is to link together multiple CPUs, synchronize them (meaning that they all perform an operation at exactly the same time) and have each CPU perform the necessary operation on one of the pieces of data.

Pipelining and parallelism are combined and used to greater or lesser extent in all supercomputers. Until the early 1990s, parallelism achieved through the interconnection of CPUs was limited to between 2 and 16 CPUs connected in parallel. However, the rapid increase in processing speed of off-the-shelf microprocessors used in personal computers and workstations made possible massively-parallel processing (MPP) supercomputers. While the individual processors used in MPP supercomputers are not as fast as specially designed supercomputer CPUs, they are much less expensive and because of this, hundreds or even thousands of these processors can be linked together to achieve extreme parallelism. This process of parallelism help us understand the process of How Supercomputers work.

No comments:

Post a Comment

Automata Theory