Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Like this? Share it with your network

Share

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

on

  • 1,166 views

 

Statistics

Views

Total Views
1,166
Views on SlideShare
1,166
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as OpenOffice

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • 1. How to use Many-core CPUs Roundtable: Google, Intel, Rambler, Yandex
  • 2. Threads
    • Hard to program:
      • Correctness
      • 3. Performance
    • Unavoidable: 8 or 16 cores is commodity
    • 4. Alternatives:
      • Message passing – slow
      • 5. Shared memory – even harder, usually no benefits
  • 6. Correctness
    • Deadlocks
      • C++: custom Mutex w/ builtin deadlock detector
      • 7. C++: static analysis (gcc plugin, opensourse)
      • 8. Java: run-time detector
    • Races
      • C++: run-time detector: ThreadSanitizer (Valgrind)
        • Linux, Windows, Mac; opensource
      • Java: ThreadSanitizer (beta)
  • 9. 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)