Open_CASCADE学习笔记-并行程序开发.pdfVIP

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

OPEN CASCADE 学习笔记 ——并行程序开发 著: Roman Lygin 译:George Feng 这 是 一 篇 关 于 开 源 三 维 建 模 软 件 O P E N C A S C A D E 内 核 的 博 文 : R O M A N L Y G I N 是 O P E N C A S C A D E 的 前 程 序 开 发 员 和 项 目 经 理 , 曾 经 写 过 许 多 关 于 该 开 源 软 件 开 发 包 的 深 入 文 章 ,可 以 在 他 的 博 客 ( H T T P : / / O P E N C A S C A D E . B L O G S P O T . C O M ) 上 面 找 到 这 些 文 章 。 序 在Open Cascade 的论坛上知道了Roman Lygin 在他的博客上写了 Open Cascade notes 系列文章,考虑到Open Cascade 的学习资料 并不多,于是从他的博客上下载了其中绝大部分文章,将其翻译过来以 方便大家学习交流。如果大家发现文中翻译有错误或不足之处,望不吝 赐教,可以发到我的邮箱fenghongkui@ ,十分感谢。 2012 年11 月22 日星期四 第1 节 并行程序开发综述 正如在之前的文章中提到的,我正在开发CAD Exchanger 的ACIS 导入部分,并 且将其开发成并发执行的。到目前为止结果非常理想(除了STL 的流解析,因为 之前文章中提到的Microsoft 的bug ,我安装了VS2008SP1 正在检测这个错误 是否得到了修正) 。所以我准备在这篇文章中分享我的经验,希望能够对其他开 发人员有帮助(有关并行性问题在论坛上讨论的也越来越多) 。也希望 Open CASCADE 小组能够从我的发现中受益。 我之前已经简短介绍过几次并行应用程序开发了,再强调一下在多核时代并行应 用程序将在某个时期成为主流,你最好现在就准备好应对这个趋势。这对你的职 业路线是非常有助的,这些能力将增强你的竞争力。最近发布的Intel Parallel Studio(它已经成为我的工具箱的很重要的部分)可以调试多线程应用程序,简化 开发人员的工作。关于并行程序开发这个方面有很多基础书籍。我现在在读的是 Timothy Mattson 等写的《Patterns for Parallel Programming》(我的一位这方 面非常熟练的同事推荐的),还有Erich Gamma 写的《Design Patterns》也是 类似的书(所有专业软件开发人员都需要读的书) 。它帮助我设计CAD Exchanger 中ACIS 导入部件的构架。 回到Open CASCADE,我可以明确的说Open CASCADE 对于并行应用程序非 常有用,但是正如其他软件库一样需要小心使用。 一般性评述 假如从较高的角度看问题,从问题领域看,而不是从一个特定的算法的角度看。 看看什么能够并发进行,什么需要顺序执行。例如,在我的初始 IGES 转换(参 考这里)实验中,我特别注意了 IGES 组的并行转换模块,这个模块运行的非常 好。但是整个程序的性能提高非常少,因为不是这部分占用的时间最多,而是 Shape Healing 占用了整个时间的50%-70%,而且该部分仍然是顺序执行的。 所以在重新设计算法之前,性能不会提高太多。我不得不重构ACIS 读取器,重 新设计传统的瀑布模型结构(其中遍历模型从根节点到叶节点) ,然后是 shape healing 模块。由此产生了很多有价值的东西。《Design Patterns》这本书具有很 好的指导作用,可以帮助确定算法的模式。 句柄 从6.2.x 开始Open CASCADE 的句柄(Handle_Standard_Transient 的子类) 已 经对引用计数实现了线程安全。要利用这个优点,你必须定义 MMGT_REENTRANT 系统变量为非空,或者在线程之间使用句柄之前调用 Standard::SetReentrant (Standard_True),这

文档评论(0)

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

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

1亿VIP精品文档

相关文档