2
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.
Concurrency In VS 2005 and Beyond