C#多核心变成 利用多核心优势并行计算

第二章 命令式数据并行

几种并行类型:

数据并行

任务并行

流水线

在System.threading.tasks.parallel下

parallel.for

parallel.foreach(可以自定义parytitioner)

parallel.invoke

1. Parallel.Invoke

没有特定执行顺序

交错并发:逻辑内核通过时间片机制和快速上下文切换实现并行的假象

并发:不解释

热点:潜在的可并行代码

加速比:串行执行时间/并行执行时间

2. Parallel.for

每一次迭代一会当作一个任务交给一个线程

迭代范围上界判断是小于,所以需要加一

3. Parallel.ForEach

可以通过partitioner分区器进行分区,每一个迭代处理一个分区,Tuple<int,int>

退出

ParallelLoopState

Break: 不会马上结束,执行完小于当前迭代的内容

Stop:尽快退出

ParallelLoopResult

IsCompleted 循环完成

!IsCompleted && !LowestBreakIteration.HasValue Stop终止

!IsCompleted && LowestBreakIteration.HasValue Break终止

AggregateException

.InnerExceptions内部异常集合

parallelOptions

maxDegreeoOfParallelism并行度

CancellationToken取消token

taskScheduler任务调度器

第三章 命令式并行任务并行

System.Threading.Tasks.Task

一个task代表一个异步操作,并不针对一个线程

状态

TaskStatus.Created初始状态

.WaitingForActivation依赖其他任务的任务的初始状态

.WaitingToRun通过TaskFactory.StartNew所创建的任务的初始状态

.Cancelled

.Faulted

.RunToCompletion

task.Start()

task.Wait() 等待也都有超时的重载

Task.WaitAll()

Task.TaskFactory.StartNew方法可以参数传入cancellationToken,或者TaskCreationOptions

TaskCreationOption

.AttachedToParent与一个父任务关联

.None默认行为

.LongRunning长时间操作,调度器可对其用粗颗粒度的操作,一般大于一秒

.PreferFairness告诉调度器,更早被调度的任务更早执行

task.ContinueWith延续任务

TaskContinuationOptions操作或者条件

时间: 2024-12-13 17:31:28

C#多核心变成 利用多核心优势并行计算的相关文章

iOS核心动画高级技巧之核心动画(三)

iOS核心动画高级技巧之CALayer(一) iOS核心动画高级技巧之图层变换和专用图层(二)iOS核心动画高级技巧之核心动画(三)iOS核心动画高级技巧之性能(四)iOS核心动画高级技巧之动画总结(五) 隐式动画 隐式动画主要作用于CALayer的可动画属性上面,UIView对应的layer是不可以的,只要你改变属性的值,它不是突兀的直接改变过去,而是一个有一个动画的过程,这个时间等属性你可以通过事务(CATransaction)来控制,如果你不自己提供一个事务,它的默认时间是0.25秒,当然

简单模拟structs2核心控制器利用反射原理实现参数传递和物理视图跳转

在能够运用struct2框架进行简单网站开发后,对structs2的一些较原框架强大的功能希望有更深刻的理解,于是尝试从底层开始摸索,本文就在重新学习structs2后,利用简单代码对核心控制器的主要功能进行理解. 首先,介绍一下struct2的处理流程: 1.浏览器发出请求,即***.action 2.请求被核心控制器的StrutsPrepareAndExecuteFilter拦截 3.搜索structs.xml配置文件,寻找Action的属性name为***的配置信息,而后根据class属性

2008年北大核心有效期 计算机类核心(2011-01-31 15:02:46)

计算机仿真2012年后还是核心吗?本人认为,99%是.依照评选的标准和打点的情况来看是没有问题.此外,众家说法是:一般上了,除非停刊基本不会出去的.入选通知上有说明:每四年重新评测修订一次,所涉及的期刊数据是前六年至前两年的,例如2004年版的期刊数据是1999-2002的,2008年版的数据将是2003-2006的,那么2012年版的数据是将是2007-2010年的.据我这几年读计算机仿真样刊的经验来看,他们的质量是稳步提升的,而且编辑部也学聪明了,习惯让投稿作者在文献引用时引用自家刊例,这样

ios开发核心动画七:核心动画与UIView动画的区别

/** UIView与核心动画区别?(掌握) 1.核心动画只作用在layer. 2.核心动画看到的都是假像,它并没有去修改UIView的真实位置. 什么时候使用核心动画? 1.当不需要与用户进行交互,使用核心动画 2.当要根据路径做动画时,使用核心动画:CABasicAnimation,CAKeyFrameAnimation,两个都可以根据绘制的路径UIBizerPath来绘制路径来执行动画 3.当做转场动画时, 使用核心动画 (核心动画转场类型比较多)CATrasition或是UIView的核

chkconfig命令核心案列及核心原理

chkconfig sshd on  设置sshd开机自启动 chkconfig sshd off  设置sshd开机不启动 chkconfig --level 35 sshd on    设置sshd在运行级别3.5开机自启动 /etc/rc*.d   对应运行级别配置文件目录 对/etc/init.d/oldboy chkconfig管理脚本的要求 1.执行/etc/init.d/oldboy restart 格式正常服务 2.脚本的开头增加如下 #chkconfig:35 56 24 #d

大数据的核心价值是什么?

下面是一些长篇的讨论,这里我把大数据的核心价值理解为核心商业价值. "很多人还没搞清楚什么是PC互联网,移动互联网来了,我们还没搞清楚移动互联的时候,大数据时代又来了."--马云卸任演讲 本文尝试从三大产业的角度将大数据的核心商业价值分类讨论. 首先例举一些大数据的典型应用,然后解释大数据的定义,最后总结大数据的价值. 我们知道: 第一次工业革命以煤炭为基础,蒸汽机和印刷术为标志, 第二次工业革命以石油为基础,内燃机和电信技术为标志, 第三次工业革命以核能基础,互联网技术为标志, 第四

什么是大数据的核心价值?

以下是一些长篇的讨论.这里我把大数据的核心价值理解为核心商业价值. "非常多人还没搞清楚什么是PC互联网,移动互联网来了,我们还没搞清楚移动互联的时候,大数据时代又来了. "--马云卸任演讲 本文尝试从三大产业的角度将大数据的核心商业价值分类讨论. 首先例举一些大数据的典型应用.然后解释大数据的定义,最后总结大数据的价值. 我们知道: 第一次工业革命以煤炭为基础.蒸汽机和印刷术为标志, 第二次工业革命以石油为基础,内燃机和电信技术为标志, 第三次工业革命以核能基础,互联网技术为标志,

独家全功能USB2.0开发板,最强CY7C68013A-128核心板,超强资料不断提供更新服务

       学习USB开发再也不用买书啦,也不用花费重金去上培训班啦,IFLabs开创USB学习开发新模式,你所需要的知识.技术.范例.代码等等统统都在这里.IFLabs打造全网最丰富.最权威的USB开发平台和资料. 热卖的IFLabs精品USB2.0核心板套件再升级,全网独家推出最强.最全功能的Cypress USB 2.0 CY7C68013A-128AXC核心板开发板,全网最全配件和全网最全开发资料.只需这一次投入,即可实现USB接口开发的从入门到精通!并且有长期的全网最全开发手册更新支

cat /proc/cpuinfo 引发的思考--CPU 物理封装-物理核心-逻辑核心-超线程之间关系

CPU的物理封装,一个物理封装使用独立的一个CPU物理插槽,共享电源和风扇: CPU物理核心:在一个物理封装中封装了多个独立CPU核心,每一个CPU核心都有自己独立的完整硬件单元. CPU逻辑核心:一个CPU物理核心对外表现为多个独立的外部CPU接口,称这种每一个CPU接口为一个逻辑核心.其内部可能共享运行单元和缓存等. CPU逻辑核心是超线程技术下的产物,假设没有超线程技术,有多少颗物理CPU核心,OS就觉得有多少颗CPU.OS是根据CPU的外部接口来识别CPU数据,而不是根据CPU的实际内部