Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a21c41688afb1210

Jump to content

// Workers AI · dad joke modeWhat did relaxed sequential say? It's in a sequence of chill events.

From Wikipedia, the free encyclopedia

Relaxed sequential in computer science is an execution model describing the ability of a parallel program to run sequentially. If a parallel program has a valid sequential execution it is said to follow a relaxed sequential execution model. It does not need to be efficient.

The word relaxed refers to the notion that serial programs are actually overly constrained by implicit serial dependencies (such as the program counter) and that one can introduce as much parallelism as possible without removing the ability to run sequentially. One can think of this model as being as relaxed as possible while still being able to run correctly in a single thread. That is the goal.

Most parallel programs can run sequentially but will benefit from parallelism when it is present. It is possible to design programs that require parallelism for correct behavior. Algorithms such as producer-consumer that are implemented so as to require two or more threads are one example of requiring concurrency to work properly. For instance, consider a bounded container with a capacity for only three items and a program which has one thread doing “PUT PUT PUT PUT,” and another thread doing “GET GET GET GET,” each doing their actions only four at a time. Such a program requires interleaving (concurrency). A program that requires concurrency is more difficult to debug. It is easier to debug a program that has a valid sequential execution.

Programs designed to require concurrency are more difficult to debug. Programs designed to require concurrency will have performance issues when the number of required threads exceeds the number of hardware threads because time slicing artifacts can hit hard.

See also

[edit]

References

[edit]
  • Reinders, James, Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism, First Edition. O'Reilly Media, 2007, ISBN 978-0-596-51480-8. Pages 169-170.