Concurrency-related features in Visual Studio 2005:
•OpenMP for loop and data parallel
operations.
•Unmanaged and managed memory models for
concurrency.
•Cluster debugging.
The bulk of this talk was about futures (pun intended):
•Litmus test: Any programming model
where a Thread (incl. thread pool) is a central abstraction is too low-level.
•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.