`
tubaluer
  • 浏览: 1499898 次
文章分类
社区版块
存档分类
最新评论
  • sblig: c / c++ 是不一样的都会输出 100
    j = j++

Visual Studio 11开发指南(19)C++11更新-行模式库和代理库

 
阅读更多
Visual Studio 11,具备并行模式库代理库、 更轻松地开发自然并行的多个处理器上运行的代码。

这些库的主要范式,它是根据任务 (任务) 和并发运行库自定义的调度程序

到目前为止,处理任务的概念,我们使用task_handle ●类型 (或直接键入task_group ●),如下所示:


这里计算的 i + z 我们必须捕获的 lambda 表达式中引用变量 (& 我,和 & z),然后期望这两个任务完成他们的工作。

现在,使用 Visual Studio 11,我们可以直接使用的任务 ●类型和未来的概念,如下所示:


这简化了语法,更需要捕获变量的引用,并为每项任务,要等待通过调用方法wait()的每个任务并返回值角色的方法get ()

键入任务 ●也有可能实现持续的概念。这一概念允许滑雪轮流的异步任务的遵循,即是说,不论Tn 取决于 Tn-1 任务的任务和这样的结果如果前一任务已完成他的工作,或没有。在联系日益紧密的世界中,异步操作将概括为避免冻结的用户界面,很重要的是为了简化开发过程。

若要实现这一概念的延续,任务 ●类型实现的then()方法,将会执行一次该任务已完成其工作。


这里的每项任务,返回值是作为参数传递,lambda 表达式中的then()方法。

在此版本中我们还加基地算法的并行算法 (parallel_for、 parallel_for_each、 parallel_invoke ))

并行算法的尝试

parallel_sortparallel_radixsortparallel_buffered_sort的标准如果命运它只运行并行模式中相同的方式使用这些算法。


虽然在大多数情况下,这是一个简单的类整数的性能足以 (示例矢量的整数 40 000 000,得到一个序列(std::sort)parallel_sort(),它是这种情况,或允许更好地控制可能会提高性能与 711 分。)

每种算法,都来做重载,此方法允许设置的谓语的排序和要使用的分区的大小。


默认分区大小为 2048,对于大多数情况下就足够了。邮件可以玩到最后一个分区的大小来提高性能。不过,如果分区大小小于或等于向量的大小,它是将使用任何方法std::sort ()中。(默认情况下,如果向量的元素的数目是 < = 2048总是将使用std::sort ()版本)。


您还会注意是否系统至少不会以任何方式使用的 std::sort () 的虚拟处理器。

可用其他算法的尝试并使用需要。例如,在我们的例子中的基数排序


提供更好的结果 197.09 上 40 000 000 个项目。默认分区大小为 256 * 256

parallel_buffered_sort给 631


减少

申请的数量,最小,最多的一组所有成员称为一般减少。应用减少并行可以或者涉及争用条件或问题的另外的浮点操作的舍入为例。

Visual Studio 2010 年时他们希望提出的减少,例如双平行的循环,循环的量的一种方法是使用concurrency::combinable <T>对象


Visual Studio 11,它是现在可以使用算法parallel_reduce(),似乎比类型的使用效率更高(concurrency::combinable)。

它的使用是相对 std::accumulate)


转型

最后的最后的算法是加工parallel_transformation()算法


分享到:
评论

相关推荐

    Visual C++2010开发权威指南(共三部分).part1.rar

    第一部分 Visual C++ 2010开发与新特性 第1章 Visual C++ 2010开发环境简介 1 1.1 Visual C++ 2010简介 1 1.2 Visual C++ 2010下载安装指南 1 1.3 Visual C++ 2010主要特点与新特性 3 1.4 Visual C++ 2010开发环境...

    VC++2010权威开发指南+源代码

    第一部分 Visual C++ 2010开发与新特性  第1章 Visual C++ 2010开发环境简介 1  1.1 Visual C++ 2010简介 1  1.2 Visual C++ 2010下载安装指南 1  1.3 Visual C++ 2010主要特点与  1.3 新特性 3  1.4 Visual ...

    Beginning Visual C++ 2010

    本书由Ivor Horton撰写,是针对初学者的一本关于Visual C++ 2010编程的入门指南。全书共分为20章,详细介绍了如何使用Visual C++ 2010进行Windows应用程序开发。 #### 二、重要章节概览 ##### 第1章:Programming ...

    VC++2010权威开发指南+源代码.part2

    第一部分 Visual C++ 2010开发与新特性  第1章 Visual C++ 2010开发环境简介 1  1.1 Visual C++ 2010简介 1  1.2 Visual C++ 2010下载安装指南 1  1.3 Visual C++ 2010主要特点与  1.3 新特性 3  1.4 Visual ...

    PT80-NEAT开发指南v1.1

    NEAT 开 发 指南 文档 适用于 PT80 系列 移动数据终端 版本记录 版本号 版本描述 发布日期 V 1.0 初始版本。 2012-04-12 V1.1 修改前三章内容 2012-09-25 目录 第一章 关于本手册.....................................

    C++Programming HOW TO

    Java风格API是指那些采用了类似Java的设计模式和编程习惯的C++类库。这种API通常更加注重代码的可读性和可维护性,对于习惯了Java开发的程序员来说更加友好。 #### 15. C++ IDE工具 IDE(Integrated Development ...

    vc源代码合集0951.rar

    2012-06-12 11:53 237 【Visual C++】18.简单的愤怒小鸟弹球demo无删减版.rar 2012-06-12 12:22 2,615 【乱码加密】源代码.txt 2012-06-12 12:06 228,818 一个简单的学生成绩管理系统.rar 2012-06-12 12:47 2,916 ...

    VC编程入门经典教程(Beginning.Visual.C.Plus.Plus.2008.Mar.2008高清.pdf)

    《VC编程入门经典教程》(Beginning Visual C++ 2008)是一本专为初学者设计的C++编程指南,尤其针对Visual Studio 2008环境。本书语言通俗易懂,非常适合那些希望从零开始学习C++编程的读者。 #### 二、C++基础...

    Microstation 编程 VC++ C#

    - **VC++**即Visual C++,是Microsoft推出的一种C++集成开发环境,可用于开发各种类型的应用程序,包括Microstation的插件开发。 - **C#**是一种现代的面向对象的编程语言,同样可以用来开发Microstation的插件。 #...

    mini2440用户手册

    1.1.4 WindowsCE 5.0 系统特性.........................................................................................................- 19 -  1.1.5 WindowsCE 6.0 系统特性.................................

Global site tag (gtag.js) - Google Analytics