Misplaced Pages

Speculative multithreading: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content addedVisualWikitext
Revision as of 06:06, 26 September 2019 editMonkbot (talk | contribs)Bots3,695,952 editsm References: Task 16: replaced (1×) / removed (0×) deprecated |dead-url= and |deadurl= with |url-status=;Tag: AWB← Previous edit Revision as of 08:45, 24 November 2019 edit undoHeadbomb (talk | contribs)Edit filter managers, Autopatrolled, Extended confirmed users, Page movers, File movers, New page reviewers, Pending changes reviewers, Rollbackers, Template editors454,149 edits Alter: journal. Removed URL that duplicated unique identifier. Removed parameters. | You can use this tool yourself. Report bugs here. | via #UCB_GadgetNext edit →
Line 20: Line 20:


<ref name="JFM-JT">{{cite web|title=Speculative Synchronization: Applying Thread-Level Speculation to Explicitly Parallel Applications <ref name="JFM-JT">{{cite web|title=Speculative Synchronization: Applying Thread-Level Speculation to Explicitly Parallel Applications
|first1=Jose F.|last1=Martínezy|first2=Josep|last2=Torrellas|df=dmy-all}}</ref>
|url=https://s3.amazonaws.com/academia.edu.documents/32836533/asplos02.pdf?AWSAccessKeyId=AKIAIWOWYYGZ2Y53UL3A&Expires=1542548785&Signature=wLPnjmhDH%2B0K%2Fu5zWo1R%2Fjna13Q%3D&response-content-disposition=inline%3B%20filename%3DSpeculative_Synchronization_Applying_Thr.pdf
|first1=Jose F.|last1=Martínezy|first2=Josep|last2=Torrellas|access-date=18 November 2018|url-status=live
|archive-url=https://web.archive.org/web/20181118133420/https://s3.amazonaws.com/academia.edu.documents/32836533/asplos02.pdf?AWSAccessKeyId=AKIAIWOWYYGZ2Y53UL3A&Expires=1542548785&Signature=wLPnjmhDH%2B0K%2Fu5zWo1R%2Fjna13Q%3D&response-content-disposition=inline%3B%20filename%3DSpeculative_Synchronization_Applying_Thr.pdf|archive-date=18 November 2018|df=dmy-all}}</ref>


}} }}
Line 65: Line 63:
|year=2016 |year=2016
|title=Compiler-Driven Software Speculation for Thread-Level Parallelism |title=Compiler-Driven Software Speculation for Thread-Level Parallelism
|url=https://dl.acm.org/citation.cfm?doid=2866613.2821505
|journal=ACM Transactions on Programming Languages and Systems |journal=ACM Transactions on Programming Languages and Systems
|volume=38 |volume=38
Line 247: Line 244:
|year=2005 |year=2005
|title=The STAMPede Approach to Thread-Level Speculation |title=The STAMPede Approach to Thread-Level Speculation
|journal=TOCS |journal= ACM Transactions on Computer Systems
|volume=23 |volume=23
|issue=3 |issue=3

Revision as of 08:45, 24 November 2019

Computer runtime parallelization technique
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)
This article's factual accuracy may be compromised due to out-of-date information. Please help update this article to reflect recent events or newly available information. (March 2017)
This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (November 2018) (Learn how and when to remove this message)
(Learn how and when to remove this message)

Thread Level Speculation (TLS) is a technique to speculatively execute a section of computer code that is anticipated to be executed later in parallel with the normal execution on a separate independent thread. Such a speculative thread may need to make assumptions about the values of input variables. If these prove to be invalid the speculative thread will need to be discarded and squashed. If the assumptions are correct the program can complete in a shorter time provided the thread was able to be scheduled efficiently.

It is also known as Speculative Multithreading (SpMT).

Description

TLS extracts threads from serial code and executes them speculatively in parallel with a safe thread. The speculative thread will need to be squashed or discarded or re-run if its presumptions on the input state prove to be invalid. It is a runtime parallelization technique which uncovers parallelism that static (compile-time) parallelization techniques fail to exploit. This particular case of speculative execution occurs at the thread level as opposed to the instruction level and can be implemented both in hardware as well as in software.

For the technique to achieve the goal of reducing overall execute time there must be available CPU resource that can be efficiently executed in parallel with the main safe thread.

References

  1. Martínezy, Jose F.; Torrellas, Josep. "Speculative Synchronization: Applying Thread-Level Speculation to Explicitly Parallel Applications". {{cite web}}: Missing or empty |url= (help)

Further reading

  • Yiapanis, Paraskevas; Brown, Gavin; Lujan, Mikel (2016). "Compiler-Driven Software Speculation for Thread-Level Parallelism". ACM Transactions on Programming Languages and Systems. 38 (2): 1–45. doi:10.1145/2821505.
Parallel computing
General
Levels
Multithreading
Theory
Elements
Coordination
Programming
Hardware
APIs
Problems
Processor technologies
Models
Architecture
Instruction set
architectures
Types
Instruction
sets
Execution
Instruction pipelining
Hazards
Out-of-order
Speculative
Parallelism
Level
Multithreading
Flynn's taxonomy
Processor
performance
Types
By application
Systems
on chip
Hardware
accelerators
Word size
Core count
Components
Functional
units
Logic
Registers
Control unit
Datapath
Circuitry
Power
management
Related


Stub icon

This computer science article is a stub. You can help Misplaced Pages by expanding it.

Categories: