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.)
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| Project Name: Morph Languages: C# Description: Implements a morphing algorithm between two images. Parallelization is done using the Parallel class. | |
| 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. | |
| Project Name: NQueens Languages: C#, Visual Basic Description: This application implements a solution to the N-Queens problem, using both LINQ and PLINQ. | |
| Project Name: OptionPricing Languages: C#, Visual Basic Description: This Excel VSTO application utilizes PLINQ to price Asian Options. | |
| Project Name: ParallelGrep Languages: C#, Visual Basic Description: This console application implements “grep” functionality across a file system using PLINQ. | |
| 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. | |
| 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. |
| 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. | |
| 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. | |
| Project Name: Strassens Languages: C# Description: This application implements several algorithms for performing and parallelizing matrix multiplication, including theStrassen algorithm. | |
| 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. | |
| Project Name: VisualizePartitioning Languages: C#, Visual Basic Description: This application demonstrates various approaches to partitioning as employed by both Parallel and PLINQ. | |
| 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. |
Samples for Parallel Programming with the .NET Framework的更多相关文章
- Task Cancellation: Parallel Programming
http://beyondrelational.com/modules/2/blogs/79/posts/11524/task-cancellation-parallel-programming-ii ...
- Introduction to Multi-Threaded, Multi-Core and Parallel Programming concepts
https://katyscode.wordpress.com/2013/05/17/introduction-to-multi-threaded-multi-core-and-parallel-pr ...
- Fork and Join: Java Can Excel at Painless Parallel Programming Too!---转
原文地址:http://www.oracle.com/technetwork/articles/java/fork-join-422606.html Multicore processors are ...
- Notes of Principles of Parallel Programming - TODO
0.1 TopicNotes of Lin C., Snyder L.. Principles of Parallel Programming. Beijing: China Machine Pres ...
- 4.3 Reduction代码(Heterogeneous Parallel Programming class lab)
首先添加上Heterogeneous Parallel Programming class 中 lab: Reduction的代码: myReduction.c // MP Reduction // ...
- Parallel Programming for FPGAs 学习笔记(1)
Parallel Programming for FPGAs 学习笔记(1)
- 论文笔记:Parallel Tracking and Verifying: A Framework for Real-Time and High Accuracy Visual Tracking
Parallel Tracking and Verifying: A Framework for Real-Time and High Accuracy Visual Tracking 本文目标在于 ...
- Parallel Programming AND Asynchronous Programming
https://blogs.oracle.com/dave/ Java Memory Model...and the pragmatics of itAleksey Shipilevaleksey.s ...
- A Pattern Language for Parallel Programming
The pattern language is organized into four design spaces. Generally one starts at the top in the F ...
随机推荐
- [Gitlab运维系列]Gitlab 403 forbidden 并发引起IP被封
问题 带着团队使用Git,使用的是自搭建的Gitlab.但今天打开页面的时候显示的是空白页面,上面还有一次文本Forbidden. 原因 Gitlab使用rack_attack做了并发访问的限制. 解 ...
- jQuery Mobile 所有class选项,开发全解+完美注释
全栈工程师开发手册 (作者:栾鹏) jQuery Mobile事件全解 jQuery Mobile 所有class选项 jQuery Mobile 所有data-*选项 jQuery Mobile 所 ...
- cocos2dx - 生成怪物及AI
接上一节内容:cocos2dx - tmx地图分层移动处理 本节怪物及简单AI实现 一.怪物 同cocos2dx - v2.3.3编辑器骨骼动画 里创建的CPlalyer一样,新建一个CMonster ...
- Hello World -- 第一篇博客
今年注定是不寻常的一年,因为技术,接触了许多大牛.通过一篇篇博文,看到了大牛们勤奋好学.孜孜不倦的精神,于是决定也开个博客,向大牛学习. 博客开了,写点什么呢?奈何肚子里墨水不多,吐出来也多是白沫,不 ...
- Xadmin集成富文本编辑器ueditor
在xadmin中通过自定义插件,实现富文本编辑器,效果如下: 1.首先,pip安装ueditor的Django版本: pip install DjangoUeditor 2.之后需要添加到项目的set ...
- flying-saucer + iText + Freemarker实现pdf的导出, 支持中文、css以及图片
前言 项目中有个需求,需要将合同内容导出成pdf.上网查阅到了 iText , iText 是一个生成PDF文档的开源Java库,能够动态的从XML或者数据库生成PDF,同时还可以对文档进行加密,权限 ...
- JS前端三维地球渲染——中国各城市航空路线展示
前言 我还从来没有写过有关纯JS的文章(上次的矢量瓦片展示除外,相对较简单.),自己也学习过JS.CSS等前端知识,了解JQuery.React等框架,但是自己艺术天分实在不过关,不太喜欢前端设计,比 ...
- JavaWeb之Maven配置
Maven和C#的nuget类似,可以通过设置就能引入框架等第三方,方便又省事.Java中使用Maven来管理第三方.今天尝试着配置了一下. 一.JDK的安装 关于JDK的安装可以查看百度经验,设置P ...
- PyCharm 2017 免费 破解 注册 激活 教程(附 License Server 地址)(Python 编辑器 IDE 推荐)
许多朋友都在问如何破解 PyCharm 2017 Professional 专业版,咪博士对此是坚决反对的! 不到万不得已,请不要这样做.破解之前,请拖到文章末尾,思考几个问题,想明白你确实需要这样做 ...
- 一天工作所用到的Git命令
一天工作所用到的Git命令 像大多数新手一样,我一开始是在网上搜索 Git 命令,然后把答案复制粘贴,并没有真正理解它们究竟做了什么. 后来我曾经想过:"如果有一个最常见的 Git 命令的列 ...
