Browse by Tags

Tagged Content List
  • Blog Post: Are deadlocks still possible with await?

    Developers familiar with parallel programming are also familiar with a wide range of potential problems that can occur when practicing the art.  One of the most well-known issues is “deadlock,” where two or more operations are waiting on each other to complete in a manner such that none of them...
  • Blog Post: Await, and UI, and deadlocks! Oh my!

    It’s been awesome seeing the level of interest developers have had for the Async CTP and how much usage it’s getting. Of course, with any new technology there are bound to be some hiccups. One issue I’ve seen arise now multiple times is developers accidentally deadlocking their application...
  • Blog Post: Achieving Speedups with Small Parallel Loop Bodies

    The Parallel class represents a significant advancement in parallelizing managed loops. For many common scenarios, it just works, resulting in terrific speedups. However, while ideally Parallel.For could be all things to all people, such things rarely work out, and we’ve had to prioritize certain scenarios...
  • Blog Post: Getting random numbers in a thread-safe way

    It’s very common in a parallel application to need random numbers for this or that operation. For situations where random numbers don’t need to be cryptographically-strong, the System.Random class is typically a fast-enough mechanism for generating values that are good-enough. However, effectively utilizing...
  • Blog Post: Concurrent, Multi-core Programming on Windows and .NET

    Thanks to everyone who attended our PDC pre-conference session yesterday on parallelism and concurrency! We had a wonderful turnout at the event, and David, Joe, and I all had a terrific time. Attached to this post are the slides we presented. (It turns out that the PDC site does allow you to submit...
  • Blog Post: Feedback requested: TaskManager shutdown, Fair scheduling

    One of the primary reasons we've released CTPs of Parallel Extensions is to solicit feedback on the design and functionality it provides.  Does it provide all of the APIs you need to get your job done?  Are there scenarios you wished the APIs supported and that you need to work around in klunky...
  • Blog Post: PLINQ Ordering

    There is a natural tension between ordering and performance in a parallel partitioning system such as PLINQ, which we addressed as guidance in the Dec07 CTP documentation:  “Although you can opt into ordering, this does come at a cost to performance because it constrains the options which...
  • Blog Post: Parallel loop performance

    We've received several questions on the MSDN Forums for Parallel Extensions about the performance of the Parallel class, and specifically of the loop constructs we provided in the CTP. We're very much aware that the performance of Parallel.For/ForEach in the CTP is not optimal, and that for some situations...
  • Blog Post: Ordering the output of parallel computations

    Frequently when attempting to do multiple operations in parallel, ordering becomes an issue. Consider an application where I'm rendering and writing out to a video file frames of a movie: for ( int i = 0; i < numberOfFrames; i++) { var frame = GenerateFrame(i); WriteToMovie(frame); } For...
  • Blog Post: Task Parallel Library on Channel 9

    Charles from Channel 9 sat down with several of us from the Parallel Computing Platform team to discuss the Task Parallel Library component of Parallel Extensions. A video of the conversation is now available on Channel9: http://channel9.msdn.com/Showpost.aspx?postid=384229 . We hope you like it, and...
  • Blog Post: Recursion and Concurrency

    When teaching recursion in an introductory computer science course, one of the most common examples used involves a tree data structure. Trees are useful in this regard as they are simple and recursive in nature, with a tree's children also being trees, and allow for teaching different kinds of traversals...
  • Blog Post: LINQ 101, "Parallelism Blockers," and PLINQ

    PLINQ is a very cool technology, and I believe it will prove useful for parallelizing operations in a wide range of important scenarios. Moreover, I believe that the programming model it provides will enable a wide-range of developers to easily take advantage of concurrency in their applications. However...
Page 1 of 1 (12 items)