zoukankan      html  css  js  c++  java
  • Samples for Parallel Programming with the .NET Framework

    The .NET Framework 4 includes significant advancements for developers writing parallel and concurrent applications, including Parallel LINQ (PLINQ), the Task Parallel Library (TPL), new thread-safe collections, and a variety of new coordination and synchronization data structures.

    This sample includes example applications and library functionality that demonstrate, utilize, and augment this support (it is not production quality). This sample is a single .zip containing a single Visual Studio .sln file, which then contains multiple Visual Studio projects that highlight key capabilities provided by the .NET Framework 4 and the parallel programming support it provides. Below are descriptions of the included examples.

    (For discussions of Parallel Extensions and/or these samples, visit the forums athttp://social.msdn.microsoft.com/Forums/en-US/parallelextensions/threads. For documentation on the parallelism constructs in .NET 4, seehttp://msdn.microsoft.com/en-us/library/dd460693(VS.100).aspx. For information direct from the Parallel Extensions team, subscribe to the team blog athttp://blogs.msdn.com/pfxteam. For videos/articles on parallelism and Parallel Extensions, visit the Parallel Computing Developer Center athttp://msdn.com/concurrency.)

    image Project Name: AcmePizza          Languages: C#, Visual Basic          Description: This simple and somewhat silly application demonstrates using concurrent collections with WPF.  The collections are wrapped with observable facades, such that multiple threads may modify the collections concurrently, and those updates are safely propagated to UI controls.         
    image Project Name: Antisocial Robots          Languages: C#          Description: Demonstrates doing a computationally-intensive operation many times per second, as a bunch of “robots” try to get as far away from each other as possible.         
    image Project Name: BabyNames          Languages: C#, Visual Basic          Description: This is one of the first applications we ever built to use Parallel LINQ.  Using LINQ and PLINQ, it queries a data set of baby name popularity information, sorts the results, and displays the results in a simplistic WPF user interface.          
    image Project Name: BlendImages          Languages: C#          Description: A demo of very simple image manipulation using a Parallel.For loop.  The application allows the user to load up two images and blends them together into a single, new image.         
    image Project Name: Boids         Languages: C#         Description: An implementation of a classic flocking algorithm, utilizing WPF for pretty 3D visualization of the “boids”, whose next positions and velocities are computing in parallel.        
    image Project Name: ComputePi          Languages: C#, Visual Basic          Description: A console application that estimates the value of PI using a variety of both serial and parallel implementations, the latter done with both PLINQ and the Parallel class.
    image Project Name: DiningPhilosophers          Languages: C#, Visual Basic          Description: A WPF application that demonstrates the classic “Dining Philosophers” synchronization problem.  The application implements several solutions, including one based on asynchronous techniques using Tasks.
    image Project Name: EditDistance          Languages: C#, Visual Basic          Description: A console application that uses Tasks to parallelize a dynamic programming problem, that of computing the “edit distance” between two strings.         
    image Project Name: GameOfLife          Languages: C#, Visual Basic          Description: This application provides an implementation of Conway’s Game of Life, using the Parallel class to parallelize the processing of the cellular automata.
    image Project Name: ImageColorizer          Languages: C#, Visual Basic          Description: This application manipulates an image by converting the majority of the image to grayscale, except for portions of the image containing user-selected hues.
    image Project Name: LINQRayTracer          Languages: C#, Visual Basic          Description: Based on Luke Hoban’s LINQ implementation of a ray tracer, this application parallelizes a computationally intensive LINQ query using PLINQ.
    image Project Name: MandelbrotFractals          Languages: C#, C++/CLI          Description: This application provides an implementation of the classicMandelbrot fractal, parallelizing the processing of the fractal using the Parallel class.
    image Project Name: Morph          Languages: C#          Description: Implements a morphing algorithm between two images.  Parallelization is done using the Parallel class.
    image Project Name: NBodySimulation         Languages: C#, F#         Description: Implements a classic n-body simulation using C# and WPF for the UI and using F# for the core computation. Parallelism is achieved using the Parallel class.        
    image Project Name: NQueens          Languages: C#, Visual Basic          Description: This application implements a solution to the N-Queens problem, using both LINQ and PLINQ.
    image Project Name: OptionPricing          Languages: C#, Visual Basic          Description: This Excel VSTO application utilizes PLINQ to price Asian Options.          
    image Project Name: ParallelGrep          Languages: C#, Visual Basic          Description: This console application implements “grep” functionality across a file system using PLINQ.
    image Project Name: PlinqKnobs         Languages: C#         Description: A simple console application that demonstrates some of the ways execution of a PLINQ query may be controlled and configured.        
    image Project Name: Raytracer          Languages: C#, Visual Basic, F#          Description: This Windows application provides an animated, ray-traced bouncing ball.  Sequential and parallel implementations are provided, as is a special parallel implementation that colors the animated image based on which thread was used to calculate which regions.
    Project Name: Raytracer         Languages: C#     Description: This WPF application is a Reversi game.  The AI algorithms are minimax with alpha-beta pruning, and the parallel AI (light player) uses Tasks and CancellationTokens to achieve speedup via parallelism.
    image Project Name: ShakespeareanMonkeys          Languages: C#, Visual Basic          Description: This application implements and parallelizes a genetic algorithm for breeding monkeys able to speak text from Hamlet.
    image Project Name: SpellChecker          Languages: C#, Visual Basic          Description: This application implements and parallelizes a spellchecking algorithm based on the same edit distance calculation in the Edit Distance sample.
    image Project Name: Strassens          Languages: C#          Description: This application implements several algorithms for performing and parallelizing matrix multiplication, including theStrassen algorithm.
    image Project Name: Sudoku          Languages: C#, Visual Basic          Description: This is a fun application that provides a full Sudoku experience, including on-demand puzzle generation and solving.  Unlike many Sudoku demos which parallelize the solver, this implementation parallelizes the generator, using PLINQ.  It also demonstrates a use for speculative execution.
    image Project Name: VisualizePartitioning          Languages: C#, Visual Basic          Description: This application demonstrates various approaches to partitioning as employed by both Parallel and PLINQ.
    image Project Name: ParallelExtensionsExtras Languages: C#          Description: This class library provides a plethora of interesting and useful extensions to take advantage of and complement the functionality available in the .NET Framework 4 for parallel programming.
  • 相关阅读:
    《代码之道》试读:规范书变更请求
    解读ASP.NET MVC 4 规划路线图
    淘宝数据魔方技术架构解析
    《程序员实用算法》试读:1.2.2主要的优化:函数调用
    《软件框架设计的艺术》试读:2.2 模块化应用程序
    磁盘分割原理
    无锡云计算中心3年内到底做了什么
    模式识别的一些资料
    边缘检测算法
    用递归方法来搜索连通区域
  • 原文地址:https://www.cnblogs.com/springwind268/p/3888034.html
Copyright © 2011-2022 走看看