How to use many core CPUs, Константин Серебряный

1,285 views

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,285
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

How to use many core CPUs, Константин Серебряный

  1. 1. How to use Many-core CPUs Roundtable: Google, Intel, Rambler, Yandex
  2. 2. Threads ✔ Hard to program: ✔ Correctness ✔ Performance ✔ Unavoidable: 8 or 16 cores is commodity ✔ Alternatives: ✔ Message passing – slow ✔ Shared memory – even harder, usually no benefits
  3. 3. Correctness ✔ Deadlocks ✔ C++: custom Mutex w/ builtin deadlock detector ✔ C++: static analysis (gcc plugin, opensourse) ✔ Java: run-time detector ✔ Races ✔ C++: run-time detector: ThreadSanitizer (Valgrind) ✔ Linux, Windows, Mac; opensource ✔ Java: ThreadSanitizer (beta)
  4. 4. Performance ✔ Contension (threads compete for shared resource) ✔ Custom Mutex w/ contention profiling and web interface ✔ Cache locality (no ping-ponging between threads) ✔ Custom malloc (TCMalloc, opensource) ✔ Profiling: mostly PMU-based ✔ Oprofile, perfmon, google perf tools (opensource)

×