dcsimg

.NET Framework 4 Parallel Extensions Also Have Powerful Extras

WEBINAR:
On-Demand

Application Security Testing: An Integral Part of DevOps


.NET Framework 4 offers dozens of new classes, structures and enumerations to support many common parallelism scenarios. However, there are some additional scenarios not covered in the base classes that compose Parallel Extensions.

.NET Framework 4 includes the new Parallel Extensions. They offer the new task-based programming model, PLINQ (short for "Parallel Language Integrated Query") and many other features to tackle the multicore and manycore revolution. If you face one of these scenarios in which you have to make either simple or complex customizations to tailor the base classes to tackle certain specific requirements, be sure to check the scenarios covered by the new Parallel Extensions Extras.

Parallel Extensions Extras is a complementary project that isn't part of the .NET 4 classes but it has been developed by Microsoft. As these extras include the source code, you can also tailor them for your specific needs. The extras are a bit hidden because they are included in one of the projects within the Parallel Extension Samples. The direct link to download its recently updated latest version is http://code.msdn.microsoft.com/ParExtSamples/Release/ProjectReleases.aspx?ReleaseId=4179 . So, if you download these samples for parallel programming with .NET 4, you can find and inspect the "ParallelExtensionExtras" project that contains all the extras organized in many folders, as in the next picture that displays the contents for this project in Visual Studio 2010 Solution Explorer.

A typical situation that usually needs a customized scheduler is when you want to use many tasks to run a pipeline. Each task represents a stage for the pipeline and you want to make sure that the task scheduler dedicates a thread to support the execution of each task. To do so, you can use the ThreadPerTaskScheduler class, included in the ParallelExtensionExtras project. This class is a subclass of System.Threading.Tasks.TaskScheduler and provides a task scheduler that dedicates a thread per task. It simply starts a new thread to process the provided task. Thus, you can create the tasks that will compose each stage of the pipeline with the necessary parameters to specify this customized scheduler. The ThreadPerTaskScheduler class is one of the nine customized task schedulers provided by Parallel Extensions Extras.

There are many other additional examples and these classes are worth a deeper analysis with complete examples of how to take advantage of them. In future posts, I'll explain samples that cover their usage. Parallel Extensions Extras groups the classes in the following categories:

  • Coordination data structures in the "CoordinationDataStructures" folder.
  • Drawing in the "Drawing" folder.
  • Extensions in the "Extensions" folder.
  • Parallel algorithms in the "ParallelAlgorithms" folder.
  • Partitioners in the "Partitioners" folder.
  • Task schedulers in the "TaskSchedulers" folder.
  • Utils in the "Utils" folder.

.NET Framework 4 offers dozens of new classes, structures and enumerations to support many common parallelism scenarios.

View Article



Comments

  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Mobility is reaching an inflection point in enterprise. Smart enterprises are moving away from tactical point solutions for mobile device management, looking instead for a secure, comprehensive, unified, and future-proof mobile-app platform. Enterprise applications are now at the heart of mobile productivity, data is shared outside the enterprise walls, and the data itself may reside on multiple devices and clouds. Read this guide to learn how a unified endpoint management (UEM) solution is critical to …

  • Understand your options for workload automation. In this IT Central Station report, real Workload Automation (WLA) users discuss their experiences with WLA tools and the functionality they find most useful for meeting IT and business requirements.    Learn how you can:   • Extend the value of WLA through simple, cost-effective integration • Improve user productivity with templates, self-service, and unified visibility • Discover and resolve scheduling issues quickly …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date
×
We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.