流场并行计算的一种实现方法.pdfVIP

  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文档。上传文档
查看更多
流场并行计算的一种实现方法 任安禄 邵立 (浙江大学CADCG国家重点实验室,杭卅I,310027) 摘 要 本文利用分块耦合和多线程技术,实现了流场计算与画速度矢量图和压力图之间的并行-即 在流场计算的同时可查看正在处理中的速度矢量图和压力图.同时.通过两台计算机互连并各自计算一 个分块来实现流场中不同分块计算之间的并行,其中分块间的数据传递是用winsock技术来实现的·本 文为在微机上实现流场的并行计算提出了一种方法. 关键词 分块耦☆·多线程技术·流场计算 I引言 由于计算机速度和内存的限制,并行计算是分块耦合求解的一个发展方向。据了解, 目前在国内外还没有出现基于Pc机的分块耦合求解并行计算的方法.而本文的任务就是 提出一种在单处理器下进行流场并行计算的方法。使得我们可在微机局域网上实现流场 分块耦合求解的并行计算,并且在计算流场的同时还负责画速度矢量图和压力图。 本文的目的是研究流场计算的并行性.为了实现流场计算和画速度矢量图和压力图 的并行,可采用多线程技术,把流场计算放在一个单独的线程中进行;为了实现不同分 块之间流场计算的并行,可采用Winsock技术,以便在两台互连的计算机之间传递数据。 总之,并行计算是分块耦合求解的一个发展方向.本文为流场的并行计算提供了一种方 法。 2流场计算与画速度矢量图和压力图之间的并行 流场计算与画速度矢量图和压力图之间的并行是通过多线程来实现的。当使用 Windows95(和其他的现代操作系统)时,它能够同时运行几个程序。这种能力称为多任 务处理。现在的很多操作系统允许线程.线程是分离开的过程而不是完整的应用程序. 一个线程很像一个子程序。~个应用程序能够创建若干线程~若干不同的执行流—可以 同时运行。线程提供了在多任务处理中进行多任务处理的能力。用户知道在同一时刻可 以运行几个应用程序,程序员知道每个应用程序可以在同一时刻运行几个线程。一个线 程是贯穿某一程序中的执行路径。在多线程的应戽j程序中,每一个线程有它自己的栈, 可以与在同一程序中运行的其他线程相对独立地工作。Vc的MFc明确区分两种线程:用 户界面线程和工作者线程。用户界面线程有一个消息泵,一般用于处理用户界面任务。 工作者线程通常用于完成不涉及用户界面的任务。把流场计算放在一个独立的工作者线 程中,以便在流场计算的同对可画速度矢量图和压力图并对其显示的方式进行设置。 当初始化一个进程时,Windows总要创建一个主线程。这个主线程在Wir☆lain函数 中开始执行,:直到WirLⅥain函数返回。对于许多应用程序来说,这个主线程可能是应用 程序所需要的惟一的线程.刨建多个线程的主导思想是尽可能利用CPU的时间。例如, 一个电子表格程序在用户修改单元中的数据录入项时,需要重颞执行计算。由于一个复 杂的电子表格重新计算要需要好几秒的时间,因此一个设计合理的应用程序不会在每次 用户作出修改后就去执行重计算。相反,电子表格的重计算功能由另一个单独的线程来 执行,而且这个线程的优先级比主线程的优先级低。这样,当用户在敲键时,系统运行 ;苯文获省自蘸辑事墓薹196045及浙大CADCG重点实验室基金资助 ·¨2· 程挂起等待输入,此时重计算线眷得到CP!J对问。只要用户再次开始输入,出于主线程 有较高的优先缓,’彬!占了霞汁蒡线程自;冀‘::权。生成多j、线瑶可使程序设计更多地考 虑到用户,另外要实现这类设计也是比较容易的。把画速度矢量图和压力圈及对其显示 的方式进行设置都放在主线程中,而流场计算则由另一个单独的线程来执行,这择蒇可 在流场计算的过程中随时查看速度矢量目种压力图。 Windows运行时,把它的时间片调度给所有处于活动态的线程。如果机器中有一个以 配给另一个CPU,直到所有的CPU都在执行线程。而在单处理机的机器中,操作系统给人 图1Windows93或WindowsNT 咀轮转方式安排各十线程的CPU时间片 一种积象:所有这些线程好象在同时运行。实际上操作系统是以轮转方式来向各个线程 提供时间片的,如图1所示。 使用多线程能导致一些有趣的问题。例如:如何防止两个线程同时访问同一个数据? 当一个线程正在更新一个数据集的过程中,另一个线程要读取数据时如何处理呢?第二 个线程读到的数据基本

文档评论(0)

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

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

1亿VIP精品文档

相关文档