SlideShare a Scribd company logo
1 of 45
Tongping Liu, Charlie Curtsinger, Emery Berger
DTHREADS: Efficient Deterministic
Multithreading
Insanity: Doing the same
thing over and over again
and expecting different
results.
2
In the Beginningโ€ฆ
3
There was the Core.
4
And it was Good.
5
It gave us our Daily Speed.
6
Until the Apocalypse.
7
And the Speed was no Moore.
8
And then came a False Prophetโ€ฆ
9
10
Want speed?
11
I BRING YOU THE GIFT OF PARALLELISM!
12
color = ๏ฎ; row = 0; // globals
void nextStripe(){
for (c = 0; c < Width; c++)
drawBox (c,row,color);
color = (color == ๏ฎ)? ๏ฎ : ๏ฎ;
row++;
}
for (n = 0; n < 9; n++)
pthread_create(t[n], nextStripe);
for (n = 0; n < 9; n++)
pthread_join(t[n]);
JUST USE THREADSโ€ฆ
13
14
15
16
17
18
pthreads
race conditions
atomicity violations
deadlock
order violations
19
Salvation?
20
21
pthreads
race conditions
atomicity violations
deadlock
order violations
DTHREADS
deterministic
race conditions
atomicity violations
deadlock
order violations
22
DTHREADS Enablesโ€ฆ
Race-free Executions
Replay Debugging w/o Logging
Replicated State
Machines
23
0
1
2
3
4
5
6
runtimerelativetopthreads
CoreDet dthreads pthreads
8.47.8
DTHREADS: Efficient Determinism
Usually faster than the state of the art
24
0
1
2
3
4
5
6
runtimerelativetopthreads
CoreDet dthreads pthreads
8.47.8
DTHREADS: Efficient Determinism
Generally as fast or faster than pthreads
25
% g++ myprog.cpp โ€“l thread
DTHREADS: Easy to Use
p
26
Isolation
shared address space disjoint address spaces
27
Performance: Processes vs. Threads
threads
processes
1 2 4 8 16 32 64 128 256 512
1024
Thread Execution Time (ms)
1.4
1.2
1.0
0.8
0.6
0.4
0.2
0.0
NormalizedExecutionTime
28
Performance: Processes vs. Threads
threads
processes
1 2 4 8 16 32 64 128 256 512
1024
Thread Execution Time (ms)
1.4
1.2
1.0
0.8
0.6
0.4
0.2
0.0
NormalizedExecutionTime
29
Performance: Processes vs. Threads
threads
processes
1 2 4 8 16 32 64 128 256 512
1024
Thread Execution Time (ms)
1.4
1.2
1.0
0.8
0.6
0.4
0.2
0.0
NormalizedExecutionTime
30
โ€œShared Memoryโ€
31
Snapshot pages
before modifications
โ€œShared Memoryโ€
32
Write back diffs
โ€œShared Memoryโ€
33
โ€œThreadโ€ 1
โ€œThreadโ€ 2
โ€œThreadโ€ 3
Parallel Serial
Update in Deterministic Time & Order
Para
mutex_lock
cond_wait
pthread_create
34
0
1
2
3
4
runtimerelativetopthreads
dthreads pthreads
DTHREADS performance analysis
35
Thread 1
Main Memory
Core 1
Thread 2
Core 2
Invalidate
The Culprit: False Sharing
36
Thread 1 Thread 2
Invalidate
Main Memory
Core 1 Core 2
The Culprit: False Sharing
20x
37
Process 1 Process 2
Global State
Core 1 Core 2
Process 2
Process 1
DTHREADS: Eliminates False Sharing!
38
0
1
2
3
4
5
6
runtimerelativetopthreads
ordering only isolation only dthreads
DTHREADS: Detailed Analysis
39
0
1
2
3
4
5
6
runtimerelativetopthreads
ordering only isolation only dthreads
DTHREADS: Detailed Analysis
40
0
1
2
3
4
5
6
runtimerelativetopthreads
ordering only isolation only dthreads
DTHREADS: Detailed Analysis
41
0
1
2
3
4
speedupof8coresover2cores
CoreDet dthreads pthreads
DTHREADS: Scalable Determinism
42
0
1
2
3
4
speedupof8coresover2cores
CoreDet dthreads pthreads
DTHREADS: Scalable Determinism
43
0
1
2
3
4
speedupof8coresover2cores
CoreDet dthreads pthreads
DTHREADS: Scalable Determinism
44
DTHREADS
% g++ myprog.cpp โ€“l threadp
45

More Related Content

What's hot

ToroDB: scaling PostgreSQL like MongoDB / รlvaro Hernรกndez Tortosa (8Kdata)
ToroDB: scaling PostgreSQL like MongoDB / รlvaro Hernรกndez Tortosa (8Kdata)ToroDB: scaling PostgreSQL like MongoDB / รlvaro Hernรกndez Tortosa (8Kdata)
ToroDB: scaling PostgreSQL like MongoDB / รlvaro Hernรกndez Tortosa (8Kdata)
Ontico
ย 
เนƒเธšเธ„เธงเธฒเธกเธฃเธนเน‰เธ—เธตเนˆ 1 เธšเธ—เธ—เธตเนˆ 9 เน€เธฃเธทเนˆเธญเธ‡ เธˆเธฑเธ‡เธซเธงเธฐเนเธฅเธฐเน€เธ„เธฃเธทเนˆเธญเธ‡เธซเธกเธฒเธขเธเธณเธซเธ™เธ”เธˆเธฑเธ‡เธซเธงเธฐ
เนƒเธšเธ„เธงเธฒเธกเธฃเธนเน‰เธ—เธตเนˆ 1 เธšเธ—เธ—เธตเนˆ 9 เน€เธฃเธทเนˆเธญเธ‡ เธˆเธฑเธ‡เธซเธงเธฐเนเธฅเธฐเน€เธ„เธฃเธทเนˆเธญเธ‡เธซเธกเธฒเธขเธเธณเธซเธ™เธ”เธˆเธฑเธ‡เธซเธงเธฐเนƒเธšเธ„เธงเธฒเธกเธฃเธนเน‰เธ—เธตเนˆ 1 เธšเธ—เธ—เธตเนˆ 9 เน€เธฃเธทเนˆเธญเธ‡ เธˆเธฑเธ‡เธซเธงเธฐเนเธฅเธฐเน€เธ„เธฃเธทเนˆเธญเธ‡เธซเธกเธฒเธขเธเธณเธซเธ™เธ”เธˆเธฑเธ‡เธซเธงเธฐ
เนƒเธšเธ„เธงเธฒเธกเธฃเธนเน‰เธ—เธตเนˆ 1 เธšเธ—เธ—เธตเนˆ 9 เน€เธฃเธทเนˆเธญเธ‡ เธˆเธฑเธ‡เธซเธงเธฐเนเธฅเธฐเน€เธ„เธฃเธทเนˆเธญเธ‡เธซเธกเธฒเธขเธเธณเธซเธ™เธ”เธˆเธฑเธ‡เธซเธงเธฐ
leemeanxun
ย 

What's hot (20)

Alternative cryptocurrencies
Alternative cryptocurrencies Alternative cryptocurrencies
Alternative cryptocurrencies
ย 
Storm
StormStorm
Storm
ย 
Segmentation Faults, Page Faults, Processes, Threads, and Tasks
Segmentation Faults, Page Faults, Processes, Threads, and TasksSegmentation Faults, Page Faults, Processes, Threads, and Tasks
Segmentation Faults, Page Faults, Processes, Threads, and Tasks
ย 
Inteligencia artificial 13
Inteligencia artificial 13Inteligencia artificial 13
Inteligencia artificial 13
ย 
Ac cuda c_3
Ac cuda c_3Ac cuda c_3
Ac cuda c_3
ย 
Orde2
Orde2Orde2
Orde2
ย 
Brace yourselves, leap second is coming
Brace yourselves, leap second is comingBrace yourselves, leap second is coming
Brace yourselves, leap second is coming
ย 
Is your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUGIs your profiler speaking the same language as you? -- Docklands JUG
Is your profiler speaking the same language as you? -- Docklands JUG
ย 
ToroDB: scaling PostgreSQL like MongoDB / รlvaro Hernรกndez Tortosa (8Kdata)
ToroDB: scaling PostgreSQL like MongoDB / รlvaro Hernรกndez Tortosa (8Kdata)ToroDB: scaling PostgreSQL like MongoDB / รlvaro Hernรกndez Tortosa (8Kdata)
ToroDB: scaling PostgreSQL like MongoDB / รlvaro Hernรกndez Tortosa (8Kdata)
ย 
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
Being closer to Cassandra by Oleg Anastasyev. Talk at Cassandra Summit EU 2013
ย 
Cassandra sf 2015 - Steady State Data Size With Compaction, Tombstones, and TTL
Cassandra sf 2015 - Steady State Data Size With Compaction, Tombstones, and TTL Cassandra sf 2015 - Steady State Data Size With Compaction, Tombstones, and TTL
Cassandra sf 2015 - Steady State Data Size With Compaction, Tombstones, and TTL
ย 
Next Generation Indexes For Big Data Engineering (ODSC East 2018)
Next Generation Indexes For Big Data Engineering (ODSC East 2018)Next Generation Indexes For Big Data Engineering (ODSC East 2018)
Next Generation Indexes For Big Data Engineering (ODSC East 2018)
ย 
Prosit google-cloud
Prosit google-cloudProsit google-cloud
Prosit google-cloud
ย 
Making a Process (Virtualizing Memory)
Making a Process (Virtualizing Memory)Making a Process (Virtualizing Memory)
Making a Process (Virtualizing Memory)
ย 
The Quantum Physics of Java
The Quantum Physics of JavaThe Quantum Physics of Java
The Quantum Physics of Java
ย 
เนƒเธšเธ„เธงเธฒเธกเธฃเธนเน‰เธ—เธตเนˆ 1 เธšเธ—เธ—เธตเนˆ 9 เน€เธฃเธทเนˆเธญเธ‡ เธˆเธฑเธ‡เธซเธงเธฐเนเธฅเธฐเน€เธ„เธฃเธทเนˆเธญเธ‡เธซเธกเธฒเธขเธเธณเธซเธ™เธ”เธˆเธฑเธ‡เธซเธงเธฐ
เนƒเธšเธ„เธงเธฒเธกเธฃเธนเน‰เธ—เธตเนˆ 1 เธšเธ—เธ—เธตเนˆ 9 เน€เธฃเธทเนˆเธญเธ‡ เธˆเธฑเธ‡เธซเธงเธฐเนเธฅเธฐเน€เธ„เธฃเธทเนˆเธญเธ‡เธซเธกเธฒเธขเธเธณเธซเธ™เธ”เธˆเธฑเธ‡เธซเธงเธฐเนƒเธšเธ„เธงเธฒเธกเธฃเธนเน‰เธ—เธตเนˆ 1 เธšเธ—เธ—เธตเนˆ 9 เน€เธฃเธทเนˆเธญเธ‡ เธˆเธฑเธ‡เธซเธงเธฐเนเธฅเธฐเน€เธ„เธฃเธทเนˆเธญเธ‡เธซเธกเธฒเธขเธเธณเธซเธ™เธ”เธˆเธฑเธ‡เธซเธงเธฐ
เนƒเธšเธ„เธงเธฒเธกเธฃเธนเน‰เธ—เธตเนˆ 1 เธšเธ—เธ—เธตเนˆ 9 เน€เธฃเธทเนˆเธญเธ‡ เธˆเธฑเธ‡เธซเธงเธฐเนเธฅเธฐเน€เธ„เธฃเธทเนˆเธญเธ‡เธซเธกเธฒเธขเธเธณเธซเธ™เธ”เธˆเธฑเธ‡เธซเธงเธฐ
ย 
SSL Failing, Sharing, and Scheduling
SSL Failing, Sharing, and SchedulingSSL Failing, Sharing, and Scheduling
SSL Failing, Sharing, and Scheduling
ย 
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
Add a bit of ACID to Cassandra. Cassandra Summit EU 2014
ย 
CRIU: Time and Space Travel for Linux Containers
CRIU: Time and Space Travel for Linux ContainersCRIU: Time and Space Travel for Linux Containers
CRIU: Time and Space Travel for Linux Containers
ย 
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
XPDDS19: QEMU PV Backend 'qdevification'... What Does it Mean? - Paul Durrant...
ย 

Similar to Dthreads: Efficient Deterministic Multithreading

Data Encryption standard in cryptography
Data Encryption standard in cryptographyData Encryption standard in cryptography
Data Encryption standard in cryptography
NithyasriA2
ย 
Data race
Data raceData race
Data race
James Wong
ย 
A Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep LearningA Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep Learning
Suntae Kim
ย 

Similar to Dthreads: Efficient Deterministic Multithreading (20)

[Greach 17] make concurrency groovy again
[Greach 17] make concurrency groovy again[Greach 17] make concurrency groovy again
[Greach 17] make concurrency groovy again
ย 
Data Encryption standard in cryptography
Data Encryption standard in cryptographyData Encryption standard in cryptography
Data Encryption standard in cryptography
ย 
Optimizing Parallel Reduction in CUDA : NOTES
Optimizing Parallel Reduction in CUDA : NOTESOptimizing Parallel Reduction in CUDA : NOTES
Optimizing Parallel Reduction in CUDA : NOTES
ย 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL store
ย 
Building your own NSQL store
Building your own NSQL storeBuilding your own NSQL store
Building your own NSQL store
ย 
Nibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL storeNibiru: Building your own NoSQL store
Nibiru: Building your own NoSQL store
ย 
Data Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes backData Wars: The Bloody Enterprise strikes back
Data Wars: The Bloody Enterprise strikes back
ย 
Data oriented design and c++
Data oriented design and c++Data oriented design and c++
Data oriented design and c++
ย 
Ben Coverston - The Apache Cassandra Project
Ben Coverston - The Apache Cassandra ProjectBen Coverston - The Apache Cassandra Project
Ben Coverston - The Apache Cassandra Project
ย 
Cryptography (under)engineering
Cryptography (under)engineeringCryptography (under)engineering
Cryptography (under)engineering
ย 
Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"Yevhen Tatarynov "From POC to High-Performance .NET applications"
Yevhen Tatarynov "From POC to High-Performance .NET applications"
ย 
Data race
Data raceData race
Data race
ย 
Parallel K means clustering using CUDA
Parallel K means clustering using CUDAParallel K means clustering using CUDA
Parallel K means clustering using CUDA
ย 
Cryptographic algorithms
Cryptographic algorithmsCryptographic algorithms
Cryptographic algorithms
ย 
Cryptographic algorithms
Cryptographic algorithmsCryptographic algorithms
Cryptographic algorithms
ย 
The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)
ย 
Threads V4
Threads  V4Threads  V4
Threads V4
ย 
A Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep LearningA Development of Log-based Game AI using Deep Learning
A Development of Log-based Game AI using Deep Learning
ย 
LeetCode Solutions In Java .pdf
LeetCode Solutions In Java .pdfLeetCode Solutions In Java .pdf
LeetCode Solutions In Java .pdf
ย 
LCS35
LCS35LCS35
LCS35
ย 

More from Emery Berger

Programming with People
Programming with PeopleProgramming with People
Programming with People
Emery Berger
ย 
Stabilizer: Statistically Sound Performance Evaluation
Stabilizer: Statistically Sound Performance EvaluationStabilizer: Statistically Sound Performance Evaluation
Stabilizer: Statistically Sound Performance Evaluation
Emery Berger
ย 
Operating Systems - Advanced File Systems
Operating Systems - Advanced File SystemsOperating Systems - Advanced File Systems
Operating Systems - Advanced File Systems
Emery Berger
ย 
Operating Systems - Queuing Systems
Operating Systems - Queuing SystemsOperating Systems - Queuing Systems
Operating Systems - Queuing Systems
Emery Berger
ย 
Operating Systems - Distributed Parallel Computing
Operating Systems - Distributed Parallel ComputingOperating Systems - Distributed Parallel Computing
Operating Systems - Distributed Parallel Computing
Emery Berger
ย 
Operating Systems - Concurrency
Operating Systems - ConcurrencyOperating Systems - Concurrency
Operating Systems - Concurrency
Emery Berger
ย 
Operating Systems - Advanced Synchronization
Operating Systems - Advanced SynchronizationOperating Systems - Advanced Synchronization
Operating Systems - Advanced Synchronization
Emery Berger
ย 

More from Emery Berger (20)

Doppio: Breaking the Browser Language Barrier
Doppio: Breaking the Browser Language BarrierDoppio: Breaking the Browser Language Barrier
Doppio: Breaking the Browser Language Barrier
ย 
Programming with People
Programming with PeopleProgramming with People
Programming with People
ย 
Stabilizer: Statistically Sound Performance Evaluation
Stabilizer: Statistically Sound Performance EvaluationStabilizer: Statistically Sound Performance Evaluation
Stabilizer: Statistically Sound Performance Evaluation
ย 
DieHarder (CCS 2010, WOOT 2011)
DieHarder (CCS 2010, WOOT 2011)DieHarder (CCS 2010, WOOT 2011)
DieHarder (CCS 2010, WOOT 2011)
ย 
Operating Systems - Advanced File Systems
Operating Systems - Advanced File SystemsOperating Systems - Advanced File Systems
Operating Systems - Advanced File Systems
ย 
Operating Systems - File Systems
Operating Systems - File SystemsOperating Systems - File Systems
Operating Systems - File Systems
ย 
Operating Systems - Networks
Operating Systems - NetworksOperating Systems - Networks
Operating Systems - Networks
ย 
Operating Systems - Queuing Systems
Operating Systems - Queuing SystemsOperating Systems - Queuing Systems
Operating Systems - Queuing Systems
ย 
Operating Systems - Distributed Parallel Computing
Operating Systems - Distributed Parallel ComputingOperating Systems - Distributed Parallel Computing
Operating Systems - Distributed Parallel Computing
ย 
Operating Systems - Concurrency
Operating Systems - ConcurrencyOperating Systems - Concurrency
Operating Systems - Concurrency
ย 
Operating Systems - Advanced Synchronization
Operating Systems - Advanced SynchronizationOperating Systems - Advanced Synchronization
Operating Systems - Advanced Synchronization
ย 
Operating Systems - Synchronization
Operating Systems - SynchronizationOperating Systems - Synchronization
Operating Systems - Synchronization
ย 
Processes and Threads
Processes and ThreadsProcesses and Threads
Processes and Threads
ย 
Virtual Memory and Paging
Virtual Memory and PagingVirtual Memory and Paging
Virtual Memory and Paging
ย 
Operating Systems - Virtual Memory
Operating Systems - Virtual MemoryOperating Systems - Virtual Memory
Operating Systems - Virtual Memory
ย 
MC2: High-Performance Garbage Collection for Memory-Constrained Environments
MC2: High-Performance Garbage Collection for Memory-Constrained EnvironmentsMC2: High-Performance Garbage Collection for Memory-Constrained Environments
MC2: High-Performance Garbage Collection for Memory-Constrained Environments
ย 
Vam: A Locality-Improving Dynamic Memory Allocator
Vam: A Locality-Improving Dynamic Memory AllocatorVam: A Locality-Improving Dynamic Memory Allocator
Vam: A Locality-Improving Dynamic Memory Allocator
ย 
Quantifying the Performance of Garbage Collection vs. Explicit Memory Management
Quantifying the Performance of Garbage Collection vs. Explicit Memory ManagementQuantifying the Performance of Garbage Collection vs. Explicit Memory Management
Quantifying the Performance of Garbage Collection vs. Explicit Memory Management
ย 
Garbage Collection without Paging
Garbage Collection without PagingGarbage Collection without Paging
Garbage Collection without Paging
ย 
DieHard: Probabilistic Memory Safety for Unsafe Languages
DieHard: Probabilistic Memory Safety for Unsafe LanguagesDieHard: Probabilistic Memory Safety for Unsafe Languages
DieHard: Probabilistic Memory Safety for Unsafe Languages
ย 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
ย 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
ย 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
Christopher Logan Kennedy
ย 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
ย 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
ย 

Recently uploaded (20)

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
ย 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
ย 
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
ย 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
ย 
Navigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern EnterpriseNavigating Identity and Access Management in the Modern Enterprise
Navigating Identity and Access Management in the Modern Enterprise
ย 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
ย 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
ย 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
ย 
How to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cfHow to Check CNIC Information Online with Pakdata cf
How to Check CNIC Information Online with Pakdata cf
ย 
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
WSO2 Micro Integrator for Enterprise Integration in a Decentralized, Microser...
ย 
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...Stronger Together: Developing an Organizational Strategy for Accessible Desig...
Stronger Together: Developing an Organizational Strategy for Accessible Desig...
ย 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
ย 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
ย 
The Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and InsightThe Zero-ETL Approach: Enhancing Data Agility and Insight
The Zero-ETL Approach: Enhancing Data Agility and Insight
ย 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
ย 
Elevate Developer Efficiency & build GenAI Application with Amazon Qโ€‹
Elevate Developer Efficiency & build GenAI Application with Amazon Qโ€‹Elevate Developer Efficiency & build GenAI Application with Amazon Qโ€‹
Elevate Developer Efficiency & build GenAI Application with Amazon Qโ€‹
ย 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
ย 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
ย 
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data PlatformLess Is More: Utilizing Ballerina to Architect a Cloud Data Platform
Less Is More: Utilizing Ballerina to Architect a Cloud Data Platform
ย 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
ย 

Dthreads: Efficient Deterministic Multithreading

Editor's Notes

  1. In the beginning, there was the Core. And it was good.
  2. Casts out the demons of nondeterminism
  3. Highlight when same speed or faster.
  4. Highlight when same speed or faster.
  5. Obviously this doesnโ€™t preserve shared memory semantics, so we need to commit changes made by one thread so they become visible to others.
  6. ADD ANIMATIONS: threads initially on one core then migrating, vs. processes spewed across cores
  7. ADD ANIMATIONS: threads initially on one core then migrating, vs. processes spewed across cores
  8. ADD ANIMATIONS: threads initially on one core then migrating, vs. processes spewed across cores
  9. Itโ€™s not *always* as fast or faster than pthreads. Slow THEN HIGHLIGHT THE FASTER PARTS.
  10. Cache coherence protocol makes false sharing problem unpleasant performance effect
  11. Panel 1 = what it does, panel 2 = how, panel 3 = efficient, panel 4 = easy to use