任务并行化.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
任务并行化

* * 面向对象和多核编程 多核编程 LabVIEW多核编程的概念 多核 编程 多核时代的到来 在过去,处理器制造商们一直通过单纯地提高时钟频率来提高CPU性能。然而近年来,单核CPU已经接近频率和功耗的极限,新策略是通过增加 CPU 的内核来提升系统整体性能。 摩尔时代的GHz竞争被多核争霸所取代 多核(multicore chips)是指在一枚处理器(chip)中集成两个或多个完整的计算引擎(内核)。 多核 编程 多核时代的到来 2006年5月,英特尔率先揭开了多核计算时代的帷幕。酷睿?2 双核处理器的横空出世结束了始自 1993 年的奔腾时代。 进入2009年,处理器已经由双核逐步升级,IBM、富士通、AMD和Intel等众多芯片制造商展示出其六核、八核等多核处理器,Intel公司甚至已宣称将在五年内推出80核的处理器!多核时代悄然到来。 目前,四核服务器已成为市场主流。 多核 编程 开发并行程序 多核技术能够使服务器并行处理任务,多核架构能够使用的软件更出色地运行。但是对运行程序也要是能针对多核进行并行处理,否则程序运行性能的提升并不明显。 在多核处理器上开发程序要比在单核处理器上要困难得多。虽然多个应用程序可以方便地运行在不同处理器上,但是程序员们必须非常谨慎地编写程序代码,以有效利用多核技术。 多核 编程 开发并行程序 编写并行程序的首要挑战就是,确定程序中哪些部分能够并行地执行,然后通过代码予以实现。这些可以并行执行的代码称为线程。因此,整个并行程序也被称为多线程应用程序。 行业专家认为编写能够利用多核处理器的应用程序是一个严峻的挑战。 “要充分利用并行处理器的能力,软件必须解决并发性问题。但是正如所有编写过多线程代码的开发员所说的一样,这是编程中最为困难的任务之一。”—— Bill Gates 多核 编程 开发并行程序 并行应用程序的开发流程 多核 编程 开发并行程序 NI LabVIEW软件提供了一个理想的多核处理器编程环境,利用LabVIEW的图形化特点,可以很容易地编写和表述并行程序代码。LabVIEW可以为并行程序代码自动生成线程,并自动地处理这两个线程的同步。 这个优点可以很好地帮助没有多线程编程经验的工程师将更多时间用在解决实际问题中,而无需关注应用程序的底层实现。 多核 编程 开发并行程序 在 LabVIEW 上编写多线程程序非常方便,我们应该充分利用这个优势。一般情况下,编写程序时应当遵循这样的原则:可以同时运行的模块就并排摆放,千万不要用连线,顺序框等方式强制它们依次执行。在并行执行时, LabVIEW 会自动地把它们安排在在不同线程下同时运行,以提高程序的执行速度,节省程序的运行时间。今后多核计算机将成为主流配置,多线程的优势会更为明显。 多核 编程 开发并行程序 假如有一个或某几个线程占用了 100% 的 CPU,此时系统对其他线程就会反应迟钝。例如,程序的执行线程占用了100% 的 CPU,那么用户对界面的操作就会迟迟得不到响应,甚至于用户会误认为程序死锁了。所以在程序中要尽量避免出现 100% 占用 CPU 的情况。    此类问题最简单的解决方法就是在循环内加一个延时。在很多情况下,运行时间很长的循环往往都只是为了等待某一个任务的完成,在此类循环体的内部几乎没有耗时较多的、又有意义的运算,所以必须在循环框内加延时。 多核 编程 LabVIEW多核编程的三种开发架构 多核 编程 任务并行化 任务并行化是在软件中实现独立任务的并行处理。两个程序运行在双核机器上,两个应用程序在本质上是独立的。尽管它们并非彻底独立,因为还需要共享一些通用资源,但双核能更有效地处理两个并行任务。 LabVIEW图形化编程方式允许开发人员通过绘制并行代码部分或分支代码来实现任务的并行化。两个没有数据交换的独立任务无需额外编程即可独立运行。 多核 编程 任务并行化 图1显示的简单数据采集过程中,上部分代码为模拟电压输入任务,下部分代码为数字输出任务。每个线程可在不同CPU内核中运行,极大提升了执行速度。 多核 编程 数据并行化 硬件设计师通过使用多核处理器来改善计算能力,软件程序员也必须找到新的编程策略来驾驭并行计算的能力。一项技术的出现有效地利用了多核处理器并行化处理数据的优势,我们称之为“分治策略(Divide and Conquer)”技术。 数据并行化是一种将大块数据集分割成小块并行处理的编程技术。完成数据处理后,再将其组合成单个数据集。这项技术使程序员最大限度利用多核处理器,有效使用所有的处理能力。 多核 编程 数据并行化 多核 编程 流水线 流水线是一项应用广泛的技术,用于顺序软件仸务的性能提升。简单说来,流水线是将顺序仸务分步处理的方式,就如同产品装配线的模式。

文档评论(0)

wangyueyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档