Browse by Tags

Tagged Content List
  • Blog Post: PLINQ and Int32.MaxValue

    In both .NET 4 and .NET 4.5, PLINQ supports enumerables with up to Int32.MaxValue elements.  Beyond that limit, PLINQ will throw an overflow exception.  LINQ to Objects itself has this limitation with certain query operators (such as the indexed Select operator which counts the elements processed...
  • Blog Post: PLINQ Queries That Run in Parallel in .NET 4.5

    One interesting thing to know about PLINQ is that not all queries are guaranteed to execute in parallel (See PLINQ Queries That Run Sequentially for reference). You can think of the AsParallel method as a hint to run in parallel for query shapes that it believes will be faster. By default, PLINQ prefers...
  • Blog Post: What’s New For Parallelism in .NET 4.5

    .NET 4 and Visual Studio 2010 saw the introduction of a wide range of new support for parallelism: the Task Parallel Library (TPL), Parallel LINQ (PLINQ), new synchronization and coordination primitives and collections (e.g. ConcurrentDictionary), an improved ThreadPool for handling parallel workloads...
  • Blog Post: PLINQ’s Ordering Model

    In order to execute parallel queries as efficiently as possible, Parallel LINQ (PLINQ) treats ordering as optional. By default, PLINQ considers sequences to be unordered, unless the user explicitly opts into maintaining ordering using either the AsOrdered or the OrderBy operator. Roy Patrick Tan wrote...
  • Blog Post: Lesser-known Multi-threaded Debugging Support in Visual Studio 2010

    We’ve been very excited about the new debugging windows in Visual Studio 2010, namely Parallel Tasks and Parallel Stacks, as well as the newly revamped Threads window, and thus we’ve talked about them quite a bit. For an overview, you can read the MSDN Magazine article at http://msdn.microsoft.com/en...
  • Blog Post: ParallelExtensionsExtras Tour - #14 - SingleItemPartitioner

    (The full set of ParallelExtensionsExtras Tour posts is available here .) In a previous ParallelExtensionsExtras Tour blog post, we talked about implementing a custom partitioner for BlockingCollection<T>. Custom partitioning is an advanced but important feature supported by both Parallel.ForEach...
  • Blog Post: When To Use Parallel.ForEach and When to Use PLINQ

    If you've played around with PLINQ and Parallel.ForEach loops in .NET 4, you may have noticed that many PLINQ queries can be rewritten as parallel loops, and also many parallel loops can be rewritten as PLINQ queries. However, both parallel loops and PLINQ have distinct advantages in different situations...
  • Blog Post: ParallelExtensionsExtras Tour - #11 - ParallelDynamicInvoke

    (The full set of ParallelExtensionsExtras Tour posts is available here .) Delegates in .NET may have one or more methods in their invocation list. When you invoke a delegate, such as through the Delegate.DynamicInvoke method, the net result is that all of the methods in the invocation list get invoked...
  • Blog Post: F# PowerPack supports PLINQ

    The F# team has released the F# PowerPack for download on CodePlex , and we're very excited that the PowerPack now has direct support for PLINQ. From the CodePlex site: F# Parallel LINQ Integration FSharp.PowerPack.Parallel.dll provides an F#-style API for parallel operations on sequences that...
  • Blog Post: "Parallelism in .NET" Series by Reed Copsey, Jr.

    Reed Copsey, Jr. has been writing a great series of articles on parallelism with the .NET Framework 4. The articles provide the insights of an expert developer who has been using parallelism with .NET to speed up real-world programs. Recommended reading. Parallelism in .NET Introduction Part...
  • Blog Post: DryadLinq now available also for non-academic use

    Several months ago, Microsoft announced for academic customers the availability of DryadLINQ . DryadLINQ is a LINQ provider developed by Microsoft Research that enables .NET developers to use the LINQ programming model for writing distributed queries and computations against a cluster of computers using...
  • Blog Post: FAQ :: Why is the speedup not X on my X-way machine?

    We’ll be regularly posting answers to frequently asked questions that we’ve gotten on the forum, internal email lists, etc. Here’s the first – enjoy! Why is the speedup not X on my X-way machine? Or, why does my parallel code run slower? Less than ideal speedup can typically be attributed to two...
  • Blog Post: A Tour Through the Parallel Programming Samples for .NET 4

    On Code Gallery, we have a plethora of samples that highlight aspects of the .NET Framework 4 that help with writing scalable and efficient parallel applications.  This post examines each of those samples, providing an overview of what each provides. Project Name: AcmePizza Languages: C#, Visual...
  • Blog Post: Reactive Extensions and Parallel Extensions

    It’s awesome to see the Reactive Extensions to .NET (Rx) live on the DevLabs site.  If you haven’t checked out this exciting project, we urge you to do so.  Not only is it cool and useful technology, but the download includes a back ported (and unsupported) release of Parallel Extensions for...
  • Blog Post: Scaling out PLINQ: DryadLINQ at PDC09 and Supercomputing09

    PLINQ enables developers to scale up computations in order to leverage the multiple cores available in modern hardware. For many problem domains, this is quite useful and sufficient. What happens, however, when a workload being processed is so big that even a manycore machine is insufficient to adequately...
  • Blog Post: What's New in Beta 2 for PLINQ

    Included in the .NET 4 Framework Beta 2 is a more robust and faster version of PLINQ. Between B1 and B2, PLINQ changes have mainly been under the covers, so hopefully no need to rewrite any of your applications to see the improvements. 1. Many improvements to performance and scalability 2. GroupBy...
  • Blog Post: Slides from Parallelism Tour

    Last week, I had the privilege of touring around Tennessee, Kentucky, Ohio, and Michigan, speaking about the new parallel computing support in Visual Studio 2010 and the .NET Framework 4. Many folks I spoke with were interested in getting a copy of the slide deck I used, so I’ve attached it to this blog...
  • Blog Post: Parallelized Map and Filter Operations

    Common operations like map and filter are available in parallelized form through PLINQ, though the names differ.  A map can be achieved with PLINQ’s Select operator, and a filter with PLINQ’s Where operator. For example, I could implement a ParallelMap operation that takes in one array and returns...
  • Blog Post: Parallel Extensions and I/O

    In this post, we’ll investigate some ways that Parallel Extensions can be used to introduce parallelism and asynchrony to I/O scenarios. Here’s a simple scenario. I want to retrieve data from a number of web resources. static string[] Resources = new string[] { "http://www.microsoft.com"...
  • Blog Post: Cancellation in Parallel Extensions

    One of the great features that crosses all of Parallel Extensions types is a consistent approach to cancellation (see http://blogs.msdn.com/pfxteam/archive/2009/05/22/9635790.aspx ). In this post we explore some of the ways cancellation is used in Parallel Extensions and explain the guidance we developed...
  • Blog Post: How PLINQ processes an IEnumerable<T> on multiple cores

    As Ed Essey explained in Partitioning in PLINQ , partitioning is an important step in PLINQ execution. Partitioning splits up a single input sequence into multiple sequences that can be processed in parallel. This post further explains chunk partitioning, the most general partitioning scheme that works...
  • Blog Post: ParallelOptions.MaxDegreeOfParallelism vs PLINQ’s WithDegreeOfParallelism

    We exert a good deal of effort ensuring that the APIs we provide are consistent within Parallel Extensions as well as with the rest of the .NET Framework.  This is from many angles, including behavior and general design, but also naming.  So when there are slight differences in naming, it raises...
  • Blog Post: Samples for Parallel Programming with the .NET Framework 4

    Along with the release of the .NET Framework 4 Beta 1 , we've just published a slew of samples that demonstrate using Parallel Extensions in a variety of ways. You can download these from Code Gallery at http://code.msdn.microsoft.com/ParExtSamples . These samples include raytracers, a sudoku game...
  • Blog Post: What’s new in Beta 1 for Parallel LINQ (PLINQ)?

    A number of improvements have been made to Parallel Extensions since the Visual Studio 2010 CTP across the Task Parallel Library (TPL), Parallel LINQ (PLINQ), and our coordination data structures. You can find the latest on TPL ( 1 2 3 ) and the data structures ( link ) on this blog. Here are the big...
  • Blog Post: .NET Framework 4.0 Poster for Download

    Brad Abrams posted about a cool .NET Framework 4.0 poster which was distributed at the PDC last week and which you can download . Zoom in on the CORE section right in the middle for a glimpse into the parallelism support in .NET 4.0.
Page 1 of 2 (44 items) 12