Log in Sign up
Back to Discover
💻

Parallel computing

technology Maturity 7-9

Computers can do many things at once.

IBM Blue Gene P supercomputer.jpg
IBM Blue Gene P supercomputer.jpg
They can break big jobs into small parts. Many small parts work at the same time. This helps the computer work fast. It is like having many hands to help you.
Beowulf.jpg
Beowulf.jpg
Can you do two things at once?

51 words

Computers can do many jobs at once.

IBM Blue Gene P supercomputer.jpg
IBM Blue Gene P supercomputer.jpg
This is called parallel computing. A big job is broken into small parts. Many parts work at the same time. This makes the computer work fast.
Beowulf.jpg
Beowulf.jpg
Long ago, computers did one thing at a time. They did not get too hot then. Now, computers get very hot. To stay cool, they use many small brains. These small brains work together. This helps them solve big problems. It is a smart way to work.

86 words

Computers can solve big problems by working on many parts at once. This way of working is called parallel computing.

IBM Blue Gene P supercomputer.jpg
IBM Blue Gene P supercomputer.jpg

In the past, computers mostly did one task at a time. This is called serial computation. To make computers faster, people tried to increase the clock frequency. This is the speed at which a processor works. But making a single part go faster uses a lot of power. This creates too much heat.

To fix this, makers began using multi-core processors. A core is a small computing unit inside a processor.

Parallelism vs concurrency.png
Parallelism vs concurrency.png
Instead of one fast core, they put many cores on one chip. These cores can work on different parts of a task at the same time. This helps computers stay cool while staying fast.

Some computers use many different machines to work together. These are called clusters.

Beowulf.jpg
Beowulf.jpg
However, parallel work has limits. Amdahl's law is a rule about this. It says that the speed of a program depends on how much of it can be done in parallel. If part of the job must be done one step at a time, the computer cannot go infinitely fast.

195 words

Parallel computing is a way for computers to solve big problems by doing many calculations at once.

IBM Blue Gene P supercomputer.jpg
IBM Blue Gene P supercomputer.jpg
Most older software was written for serial computation. This means the computer follows a single stream of instructions one by one. In serial computing, one instruction must finish before the next one starts. Parallel computing changes this by breaking a huge problem into smaller, independent parts. Each part can then be solved at the same time by different processing elements. This method allows computers to handle much more difficult tasks much faster.

This way of working happens in several different ways. There is bit-level parallelism and instruction-level parallelism. There is also data parallelism and task parallelism.

Parallelism vs concurrency.png
Parallelism vs concurrency.png
Some machines use multi-core processors, which have many independent computing units on one chip. Other setups use clusters or grids made of many different computers working together.
Beowulf.jpg
Beowulf.jpg
In some cases, the parallelism is hidden from the person writing the code. However, writing programs that use concurrency can be a hard job. Programmers must worry about things like race conditions, which are common software bugs.

For a long time, the main way to make computers faster was frequency scaling. This meant making the clock frequency higher so each instruction finished faster. From the mid-1980s until 2004, this was the most common method.

Nopipeline.png
Nopipeline.png
However, increasing frequency uses a lot of power and creates a lot of heat. This problem is often called the power wall. In May 2004, Intel cancelled its Tejas and Jayhawk processors because of these power issues. This event marked the end of frequency scaling as the main way to improve computers.

Because of these heat problems, the industry changed its focus. Instead of making one core faster, makers began adding more cores to a single chip.

AmdahlsLaw.svg
AmdahlsLaw.svg
This is why multi-core processors are now the standard for most devices. In 2012, quad-core processors became standard for desktop computers. Servers often have processors with 10 or more cores. Moore's law predicted that the number of cores would double every 18 to 24 months. By 2023, some processors were even able to have over one hundred cores.

Even with many cores, there is a limit to how much faster a program can go. This limit is explained by Amdahl's law.

Optimizing-different-parts.svg
Optimizing-different-parts.svg
The law says the speed-up is limited by the part of the task that cannot be done in parallel. If a large part of the work must stay in a single line, adding more processors won't help much. This is known as diminishing returns. To get the best results, programmers must balance the parts that can work together with the parts that must work alone. This helps them make the most of the increasing power in modern computers.

460 words

Parallel computing is a method of computation where many calculations or processes occur simultaneously.

IBM Blue Gene P supercomputer.jpg
IBM Blue Gene P supercomputer.jpg
Instead of solving a single problem through one long sequence of steps, parallel computing divides a large problem into smaller, independent pieces. These smaller parts are then solved at the same time by multiple processing elements. This approach is essential for modern high-performance computing. It allows machines to tackle complex simulations that would be impossible for a single processor to finish in a reasonable amount of time.

To understand how this works, we must compare it to serial computation. In serial computation, an algorithm is a single stream of instructions. A central processing unit (CPU) executes these instructions one by one. The next instruction cannot begin until the current one is completely finished. Parallel computing changes this flow by using multiple processing elements at once. These elements can be many processors within one computer, or even several networked computers working together.

Beowulf.jpg
Beowulf.jpg
By breaking the algorithm into parts that do not depend on each other, the system can work on many steps at the same time.

There are several distinct ways to organize this parallelism. At the hardware level, it can be bit-level or instruction-level parallelism. These are often transparent, meaning the programmer does not have to manage them manually. There is also data parallelism and task parallelism.

Parallelism vs concurrency.png
Parallelism vs concurrency.png
Hardware can be organized into multi-core computers, which have several independent cores on one chip. For even larger tasks, scientists use clusters, massively parallel processors (MPPs), or grids. These systems use many separate computers to solve a single massive task. Some specialized architectures are even used alongside traditional processors to speed up specific jobs.

Historically, the main way to improve computer performance was frequency scaling. From the mid-1980s until 2004, engineers increased the clock frequency to make instructions execute faster. However, this method hit a physical limit known as the power wall. Increasing frequency significantly raises power consumption and heat generation. The power used by a chip is determined by capacitance, voltage, and frequency.

Nopipeline.png
Nopipeline.png
In May 2004, Intel cancelled its Tejas and Jayhawk processors due to these power and heat concerns. This moment marked a major shift in computer architecture. The industry moved away from making single cores faster and toward increasing the number of cores on a single die.

This shift has changed how we build and use computers. In 2012, quad-core processors became the standard for desktop computers. Servers often use processors with more than 10 cores. Following Moore's law, the number of cores typically doubles every 18 to 24 months. By 2023, some processors reached over one hundred cores.

BlueGeneL cabinet.jpg
BlueGeneL cabinet.jpg
Some modern designs even use a mix of performance and efficiency cores to manage heat. This means that for a program to run faster today, programmers must specifically write code that can take advantage of these multiple cores.

However, adding more processors does not always lead to a perfect speed-up. Amdahl's law describes the theoretical limit of how much a program can be sped up.

AmdahlsLaw.svg
AmdahlsLaw.svg
The law states that the speed-up is limited by the fraction of the task that cannot be parallelized. If a large portion of a program must remain serial, adding infinite processors will still result in a limit to its speed. This leads to diminishing returns, where adding more hardware provides very little extra benefit.
Optimizing-different-parts.svg
Optimizing-different-parts.svg
To reach the best performance, programmers must balance the parallel parts with the parts that must run alone.

Achieving high performance also requires managing complex dependencies. A program cannot run faster than its longest chain of dependent calculations, which is called the critical path. If instruction B needs the result of instruction A, they cannot run at the same time. This is known as a flow dependency. There are also anti-dependencies and output dependencies to manage.

Superscalarpipeline.svg
Superscalarpipeline.svg
Programmers must also deal with communication and synchronization between subtasks, or threads. If not managed carefully, these can cause software bugs like race conditions. Understanding these connections is the key to making parallel computing work effectively.

677 words
🖼️ Images & Media (15)
File:IBM Blue Gene P supercomputer.jpg
IBM Blue Gene P supercomputer.jpg
File:Parallelism_vs_concurrency.png
Parallelism_vs_concurrency.png
File:AmdahlsLaw.svg
AmdahlsLaw.svg
File:Optimizing-different-parts.svg
Optimizing-different-parts.svg
File:Gustafson.png
Gustafson.png
File:Taiwania 3 Supercomputer.jpg
Taiwania 3 Supercomputer.jpg
File:Nopipeline.png
Nopipeline.png
File:Fivestagespipeline.png
Fivestagespipeline.png
File:Superscalarpipeline.svg
Superscalarpipeline.svg
File:Numa.svg
Numa.svg
File:Beowulf.jpg
Beowulf.jpg
File:BlueGeneL cabinet.jpg
BlueGeneL cabinet.jpg

+ 3 more

Up Next
💻
Multiprocessing
Technology
More to explore

What is Nepedia?

A free, ad-free encyclopedia for children. Every article is written at five reading levels, so the same page works for a five-year-old and a fifteen-year-old — use the level switcher above to see this one change. No account needed to read.