1 / 45

Dthreads: Efficient Deterministic Multithreading

Dthreads: Efficient Deterministic Multithreading. Tongping Liu, Charlie Curtsinger , Emery Berger. Insanity: Doing the same thing over and over again and expecting different results. . In the Beginning…. There was the Core. And it was Good. It gave us our Daily Speed.

jara
Download Presentation

Dthreads: Efficient Deterministic Multithreading

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dthreads: Efficient Deterministic Multithreading Tongping Liu, Charlie Curtsinger, Emery Berger 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. Want speed?

  10. I BRING YOU THE GIFT OF PARALLELISM!

  11. 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…

  12. race conditions atomicity violations pthreads deadlock order violations

  13. Salvation?

  14. Dthreads race conditions race conditions atomicity violations atomicity violations pthreads Dthreads deadlock deadlock order violations order violations deterministic

  15. Dthreads Enables… Race-free Executions Replay Debugging w/o Logging Replicated State Machines

  16. Overhead with CoreDet Dthreads: Efficient Determinism 7.8 Usually faster than the state of the art

  17. Overhead with CoreDet Dthreads: Efficient Determinism 7.8 Generally as fast or faster than pthreads

  18. Dthreads: Easy to Use % g++ myprog.cpp–l thread p

  19. Isolation disjoint address spaces shared address space

  20. Performance: Processes vs. Threads 1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0 threads processes Normalized Execution Time 1 2 4 8 16 32 64 128 256 512 1024 Thread Execution Time (ms)

  21. Performance: Processes vs. Threads 1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0 threads processes Normalized Execution Time 1 2 4 8 16 32 64 128 256 512 1024 Thread Execution Time (ms)

  22. Performance: Processes vs. Threads 1.4 1.2 1.0 0.8 0.6 0.4 0.2 0.0 threads processes Normalized Execution Time 1 2 4 8 16 32 64 128 256 512 1024 Thread Execution Time (ms)

  23. “Shared Memory”

  24. “Shared Memory” Snapshot pagesbeforemodifications

  25. “Shared Memory” Write back diffs

  26. Update in Deterministic Time & Order Parallel Serial Parallel mutex_lock “Thread” 1 cond_wait “Thread” 2 pthread_create “Thread” 3

  27. Dthreadsperformance analysis

  28. The Culprit: False Sharing Core 2 Core 1 Thread 1 Thread 2 Invalidate Main Memory

  29. The Culprit: False Sharing Core 2 Core 1 Thread 1 Thread 2 Invalidate 20x Main Memory

  30. Dthreads: Eliminates False Sharing! Core 2 Core 1 Process 1 Process 2 Process 1 Process 2 Global State

  31. Dthreads detailed analysis Dthreads: Detailed Analysis

  32. Dthreads detailed analysis Dthreads: Detailed Analysis

  33. Dthreads detailed analysis Dthreads: Detailed Analysis

  34. Scalability Dthreads: Scalable Determinism

  35. Scalability Dthreads: Scalable Determinism

  36. Scalability Dthreads: Scalable Determinism

  37. Dthreads Dthreads % g++ myprog.cpp–l thread p

  38. End

More Related