|
Creo Parametric中的多线程技术应用
Creo Parametric中当前和未来对多处理器支持的规划
近几年多核和多处理器的工作站逐渐普及,开始广泛采用;如果Creo安装在此类工作站上,随之而来产生的问题就是Creo如何最大限度的利用硬件资源.这个白皮书将讨论当前Creo如何利用多处理器以及后续发展路线图是什么.
针对这个白皮书的主题,术语“多处理器”的含义将包括多处理器或类似的在单一处理器上有多个核心.
随着多处理器工作站的增长普及,PTC经常被问到Creo(特别是Creo Parametric)用户如何能从硬件中获得益处, Creo的什么功能领域是“多线程” (利用多处理器),PTC关于进一步扩展Creo多线程/多任务的能力方面有什么规划.
总结一下最常见问题,发现一些不正确的想法,例如:
Ø 多线程仅意味着利用多个处理器
Ø 性能益处将只能通过多线程Creo获得.
Ø 在一个单一处理器的硬件上多线程不能提供任何益处.
Ø 多线程仅提供性能方面的益处.
这份白皮书将解释这些说法和其它常见的误解之所以不正确的原因,通过:
Ø 解释多处理器硬件的一般益处.
Ø 为多线程/多任务提供一个简要说明.
Ø 列出在Creo中受益于多线程/多任务的功能领域.
多处理器用途
在一个具备多处理器硬件资源的工作站上的操作系统(OS)有重要作用.这些处理器在处理某些任务时是否启用将有OS来决定. 如果一个应用程序是多线程的或几个应用程序是同步运行的,如果更有效率多个处理器会被使用.
然而有许多情况决定多处理器能力启用与否.
举例来说, 不同线程是否需要经常同步? 或者不同应用程序间需要经常同步连接或者相互间需要“等待”?如果运行多个处理器间的同步太频繁,在同一个处理器中运行线程或应用程序或许更有效率.
二
同步运行多个应用程序(流程)
当一个应用程序可以通过分割一个进程为几个线程来更快运行时-计算工作可以由几个处理器来做-这是一台多处理器工作站的益处之一; 而并行运行多个应用程序的益处常常被忽略.
性能增强常常是通过在不同处理器上并行运行几个应用程序来实现的. 例如,如果你在Creo中执行一个需要大量计算的命令时, 你的E-Mail、文档或其它应用程序仍旧能够敏捷响应. 这提高了多任务的性能–也意味着应用的可访问能力.
可访问性是一个在应用程序内能够实现的性能相关的益处. 通过一个应用程序的多线程执行,性能会得到显著提高. 这部分的细节将在下面的多线程部分更详细说明.
多线程
多线程能够提升软件性能是最常见的想法. 通过分割一个单一任务在几个处理器上同时执行任务能够更快执行. 一个例子就是Creo Parametric的渲染模块(ARX)中的光线追踪功能. 一幅渲染图片能够分割成有限个独立单元,分别单独计算然后再合并到一起. 这种多线程的性能效率通常称之为对称式多线程.
然而这种方法在许多情形下有效,但并不是全部情形或功能领域适合使用多线程方法来提升相关性能. 一些任务是连续执行的,意味着单独任务片段必须按一种特定顺序执行. 在这种任务中独立执行任务片段并不会有效或合理,因为某些任务片段是相互关联的,至到其它片段执行完成才能开始执行.
一个例子就是再生. 每一模型/特征需要按照特定顺序再生. 这种任务多线程执行不仅非常困难,而且可能会对性能有负面影响,因为需要频繁同步.
然而多线程也能够利用来提升用户体验、命令的可访问能力和一个或更多应用程序的及时响应. 一个例子就是在Wildfire 4.0版本中在装配模型检索期间可用的“停车标志”.
监控来自于“停车标志”输入的独立线程优先级高于检索线程,检索线程周期性中断以检查用户是否希望通过单击停车标志来中断检索. 如果停车标志与检索分享同一线程,停车标志在检索期间将不会响应. 通过将这个任务多线程,检索期间停车标志将能够访问并响应,从而大大节省响应时间. 这种多线程通常被认为是非对称式多线程.
三
在一个应用程序中运行另一个“外部”应用程序也是一种非对称式多线程.
一个例子就是在Creo中运行的嵌入式浏览器. 当浏览器线程在数据检入时处于繁忙状态时,Creo保持对用户操作的响应,因为浏览器是运行在一个独立线程中(在Creo Elements/Pro 5.0中引入的新能力).
多重处理
当一个应用程序以多线程方式运行在另一个应用程序中要比两个分别独立运行的但相互连接的进程方式有更多益处. 这种行为的一个例子就是Creo Parametric/Mathcad之间的集成–Creo Parametric和Mathcad实例作为独立进程来运行.
在某些情形下启动同一应用程序的几个进程(实例)要比将一个进程分割为两个或更多线程更多有益处. 举例来说, 利用一个软件工具启动几个Creo实例进程进行计算然后合并计算结果要比在一个Creo进程实例中执行几个线程来计算类似但分离的任务益处更大.
一个例子就是在行为建模(BMX)中的多目标设计研究利用分布式计算(dBATCH)来完成.
总结利用多处理器架构的功能区域
渲染
多线程 – 性能
渲染能够很好的利用多线程实现高性能计算. 光线追踪, 渲染计算的主体,能够通过对称式多线程分割成许多独立的任务. 因而多个处理器能够有效用于计算,最后再合并结果.
仿真分析
多线程 – 性能
非常类似于渲染计算,一个有限元分析高效的分解成片段.Creo Simulate中的求解器能实现高效的多线程运算,最高可使用8线程.
装配
多线程 – 响应性/性能
Creo Parametric模型的图形数据处理和几何数据检索采用不同的线程来完成.但是装配检索是连续性,每一个零件检索、放置和评估依次进行.
在检索期间图形的渲染由一个独立线程来完成,它通过提供一个逐步构建的装配显示来改善整个检索时间.通过分离某些任务(例如停车标志)到它自己的线程来提升在装配检索期间命令的可访问性.
四
装配再生是一种变更传递的方式,根据参数关系式来更新一个装配组件中受影响成员. 对于确保一个设计是“最新”来说是决定性步骤.如果想确保设计是最新而不是过期的,就必须再生.
正因如此,人们在不断的寻找能够使再生更有效的方式, 因为它不可避免;人们尝试在某些情形下应用多线程技术– 特别是在考虑大型装配时.
但是人们易于忘记的是装配再生也是一个连续顺序的过程,它必须遵循由用户设计的参照和关联依赖的信息流,而不是一组随机的、独立执行的任务. 特征再生顺序是参数化设计装配再生的关键.
装配再生是在相关联的不同模型间进行更新的复杂流程. 正因如此,它不能轻松的分割成一些独立任务来并行执行. 在大部分情形下, 为了继续装配中一些模型的再生, 它们需要来自于其它模型的结果,或者相反.
外观
多线程 -响应性/性能
外观对话框位于一个独立线程中,以确保用户对其它命令的访问
.
PDS嵌入浏览器.
多线程 - 性能
Creo Elements/Pro 5.0中可以独立进程来运行嵌入式浏览器–在浏览器执行一些大计算量的任务如检入
/下载在一个独立线程中运行时,Creo仍然保持对用户其它操作的及时响应.
行为建模
多重处理 – 性能
通过分布式计算来分配负载, BMX中的多目标设计研究能够大大受益于多重处理. 通过dBATCH启动Creo新实例能够在本地工作站上或其它分布式网络上的工作站的处理器中来进行计算.
数据交换
多重处理 – 性能
当前使用多个处理器来同步输入多个零件. 装配仍然是连续性的.
|
|