Parallel Extensions: Difference between revisions

Content deleted Content added
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 7 templates: hyphenate params (5×);
Line 1:
{{Use dmy dates|date=May 2013}}
[[File:DotNet.svg|thumb|right|250px|The [[.NET Framework]] stack]]
'''Parallel Extensions''' was the development name for a [[Managed code|managed]] [[Concurrent programming|concurrency]] [[Library (computing)|library]] developed by a collaboration between [[Microsoft Research]] and the [[Common Language Runtime|CLR]] team at [[Microsoft]]. The library was released in version 4.0 of the [[.NET Framework]].<ref>{{cite web | url = http://msdn.microsoft.com/en-us/library/ms171868.aspx#parallel_computing | title = What's New in the .NET Framework 4 | accessdateaccess-date = 2011-09-21}}</ref> It is composed of two parts: ''Parallel LINQ'' (PLINQ) and ''Task Parallel Library'' (TPL).<ref name="channel9">{{cite web | url = http://channel9.msdn.com/Showpost.aspx?postid=347531 | title = Programming in the Age of Concurrency: Concurrent Programming with PFX | accessdateaccess-date = 2007-10-16}}</ref><ref name="msdnmag">{{cite web | url = http://msdn.microsoft.com/msdnmag/issues/07/10/Futures/default.aspx | title = MSDN Magazine: Task Parallel Library | accessdateaccess-date = 2007-10-16 | archive-url = https://web.archive.org/web/20071014104004/http://msdn.microsoft.com/msdnmag/issues/07/10/futures/default.aspx | archive-date = 14 October 2007 | url-status = dead }}</ref> It also consists of a set of ''coordination data structures'' (CDS) – sets of [[data structure]]s used to synchronize and co-ordinate the execution of concurrent tasks.<ref name="somajune"/>
 
==Parallel LINQ{{Anchor|PLINQ}}==
'''PLINQ''', or '''Parallel [[Language Integrated Query|LINQ]]''', parallelizing the execution of queries on objects (LINQ to Objects) and XML data (LINQ to XML). PLINQ is intended for exposing [[data parallelism]] by use of queries.<ref name="channel9"/> Any computation on objects that has been implemented as queries can be parallelized by PLINQ. However, the objects need to implement the <code>IParallelEnumerable</code> interface, which is defined by PLINQ itself. Internally it uses [[#Task Parallel Library|TPL]] for execution.<ref name="somajune">{{cite web | url = http://blogs.msdn.com/somasegar/archive/2008/06/02/june-2008-ctp-parallel-extensions-to-the-net-fx.aspx | title = June 2008 CTP - Parallel Extensions to the .NET FX | accessdateaccess-date = 2008-08-06}}</ref><ref>{{cite web | url = http://blogs.msdn.com/pfxteam/archive/2008/06/05/8576194.aspx | title = More powerful aggregations in PLINQ | accessdateaccess-date = 2008-08-06}}</ref>
 
==Task Parallel Library==