> For the complete documentation index, see [llms.txt](https://www.csprinciples.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://www.csprinciples.com/big-idea-4/4.3-parallel-and-distributed-computing.md).

# 4.3 Parallel and Distributed Computing

## Enduring Understanding

Parallel and distributed computing leverage multiple computers to more quickly solve complex problems or process large data sets.

## Learning Objective

For sequential, parallel, and distributed computing:

a. Compare problem solutions.

b. Determine the efficiency of solutions.

## Essential Knowledge

Sequential computing is a computational model in which operations are performed in order one at a time.

Parallel computing is a computational model where the program is broken into multiple smaller sequential computing operations, some of which are performed simultaneously

Distributed computing is a computational model in which multiple devices are used to run a program.

Comparing efficiency of solutions can be done by comparing the time it takes them to perform the same task.

A sequential solution takes as long as the sum of all of its steps.

A parallel computing solution takes as long as its sequential tasks plus the longest of its parallel tasks.

The “speedup” of a parallel solution is measured in the time it took to complete the task sequentially divided by the time it took to complete the task when done in parallel.

## Learning Objective

Describe benefits and challenges of parallel and distributed computing. 

## Essential Knowledge

Parallel computing consists of a parallel portion and a sequential portion.

Solutions that use parallel computing can scale more effectively than solutions that use sequential computing.

Distributed computing allows problems to be solved that could not be solved on a single computer because of either the processing time or storage needs involved.

Distributed computing allows much larger problems to be solved quicker than they could be solved using a single computer.

When increasing the use of parallel computing in a solution, the efficiency of the solution is still limited by the sequential portion. This means that at some point, adding parallel portions will no longer meaningfully increase efficiency


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://www.csprinciples.com/big-idea-4/4.3-parallel-and-distributed-computing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
