Concurrency-related features in Visual Studio 2005:
•OpenMP for loop and data parallel
operations.
•Unmanaged and managed memory models for
concurrency.
•Cluster debugging.
The rest of this talk is about futures (pun intended):
•Litmus test: Any prog. model where a
Thread is a central abstraction is too low-level (e.g., uncontrolled
blocking/reentrancy/affinity).
•Extend today’s languages
with higher-level abstractions to let developers write correct and efficient concurrent programs in both managed and unmanaged code. This is an
“OO for concurrency.”
Examples:
Active objects, futures, parallel std:: algorithms.
•Support the range of
concurrency granularities,
specifically:
a)
distributed objects and web services; b) in-box and in-process coarse-grained; and c) fine-grained
(loop/data).
•Map abstractions to
hardware at run time to
defer pooling and scheduling decisions. The key is to reenable the “free lunch” where existing programs get faster on new
hardware, by writing apps with lots of latent concurrency, then scaled to actual hardware.