Inside Parallel Extensions for .NET 2008 CTP Part 1
- Posted: Jun 05, 2008 at 10:06 AM
- 39,405 Views
- 15 Comments
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Right click “Save as…”
Parallel Extensions simplifies development by providing library-based support for introducing concurrency into applications written with any .NET language, including C# and Visual Basic. It includes the Task Parallel Library (TPL), which provides imperative
data and task parallelism; Parallel LINQ (PLINQ), which provides declarative data parallelism; and all new Coordination Data Structures (CDS), which provide support for work coordination and managing shared state.
In addition to CDS, this upgrade provides several improvements, including a new scheduler that is more robust, efficient, and scalable. TPL also exposes new functionality, including methods for continuations. PLINQ now runs on top of TPL, clarifies order-preservation,
and provides several new operators.
The June CTP works with the .NET Framework 3.5 as a simple, small-footprint installation that drops a single DLL, documentation,
samples, and registers the DLL with Visual Studio 2008.
Here, we meet some of the key engineers of the Microsoft Parallel Computing Platform (which includes the Parallel Extensions for .NET...): Lead Developer Joe Duffy, Developer Huseyin Yildiz, Developer Igor Ostrovsky, Program Manager Stephen Toub and Program
Manager Ed Essey.
We dig deeply into a lot of topics related to parallelism and conconcurency and how the new additions to the platform enable developers to exploit multi/many core processors in an elegant way.
Enjoy part 1. Part 2 is
here.
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums,
or
Contact Us and let us know.
Follow the Discussion
Oops, something didn't work.
What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in. You need to be signed in to Channel 9 to use this feature.What does this mean?
Following an item on Channel 9 allows you to watch for new content and comments that you are interested in and view them all on your notifications page.sign up for email notifications?
C
C
Edit: Nope he didn't edit it... Now it's blank again?
---joe
Thanks for the reply. I'm sure Andres has left the Parallel Ext in good hands!
..Ben
public TheThing{
get{
if(thing_ == null)
thing_ = new Thing();
return thing_;
}
}
for me
got a question though, how does the tpl relate to the ccr? was the ccr more of a incubation project? or does tpl replace ccr?
and another thing (nagging a bit here
---edit---
sort of got my question awsered at 45:xx but if more details could be had i'd be very very happy
...and Alpa Agarwal, a colleague of mine answered:
The Concurrency and Coordination Runtime (CCR) and the Task Parallel Library (TPL) are complementary technologies. TPL, which provides support for imperative data and task parallelism, is well suited for synchronous parallelism and patterns such as parallel loops. The Concurrency and Coordination Runtime is well suited for orchestrating many asynchronous components and handling asynchronous I/O in a clever manner. Though TPL and CCR may seem slightly redundant on the surface, we encourage you to try our CTP of Parallel Extensions to the .NET Framework and to provide us with feedback.
for me personally, it seemed that the ccr was cool, but still a bit cumbersome to use. it felt like i had to adjust most of my code to the ccr, not like the ccr was fitting in to my code.. if that makes sense
anyhow, i dont feel that way about the tpl. the tpl feems more natural somehow
but i havent really delved that deep in either of the libraries so im sure there a are stories optimal for each library
as a industrial developer though, i really like unification of these kinds of things and given the choise between the ccr and the tpl id go for the tpl
how the heck do you control sync without locks? (the statement or mutexes) that just seems impossible to me
However, reducing apis is also good when possible. In that vain, I am thinking you could add a Port class in the TPL and use Linq to query the Port(s) and the linq query will replace current Selector model. Then (I think) we could get best of both worlds and maintain similar programming model. Wonder what Joe thinks on this idea.
Remove this comment
Remove this thread
close