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.

📚 Artikel Terkait di Wikipedia

Consistency model

the relaxed consistency: Relaxation One way to categorize the relaxed consistency is to define which sequential consistency requirements are relaxed. We

Particle filter

Particle filters, also known as sequential Monte Carlo methods, are a set of Monte Carlo algorithms used to find approximate solutions for filtering problems

Producer–consumer problem

EWD123 Cooperating sequential processes, section 4.1. Typical Uses of the General Semaphore. Dijkstra; 1965; EWD123 Cooperating sequential processes, section

Rendaku

Rendaku (連濁; Japanese pronunciation: [ɾendakɯ], lit. 'sequential voicing') is a pronunciation change seen in the middle of some compound words in Japanese

Dekker's algorithm

Dijkstra in an unpublished paper on sequential process descriptions and his manuscript on cooperating sequential processes. It allows two threads to share

Race condition

for example in David A. Huffman's doctoral thesis "The synthesis of sequential switching circuits". Race conditions can occur especially in logic circuits

Proton-coupled electron transfer

single electron processes that are concerted, but the definition has relaxed to include many related processes. Reactions that involve the concerted

Parallel single-source shortest path algorithm

be re-relaxed. The remaining heavy edges emanating from all nodes that have been removed from B [ i ] {\displaystyle B[i]} so far are relaxed once and