1. 简介
目前计算界关注的似乎是多核及并行处理,人们不再谈论如何提高处理器的时钟频率,而是更多地讨论如何在计算机中增加处理器芯核数量。但增加处理器芯核数量能给您带来什么好处,真如广告宣传说的那么神奇吗?
图 1: Intel Core i7 Processor - PowerMILL 10 benchmarks测试中使用的多核处理器之一。
PowerMILL 10 以以下两种独特的方式来应用并行计算技术:
首先,在前台准备、计算或编辑刀具路径的同时,在后台计算其它刀具路径,而处理速度几乎不受影响,使生产力成倍增长。这就是Delcam的后台处理,它适用于任何硬件,而多核计算机的效果更显著。
其次,并行处理将复杂计算分割成多个独立部分而同时对各个部分进行计算,也即单个计算会在全部CPU芯片中同时进行,从而缩短计算时间。并行处理必须在多核计算机上进行。
再者,也就是 PowerMILL 10所独有的在前台和后台同步进行并行处理, 这无疑使 PowerMILL 10 的性能较前面任何一个 PowerMILL 版本都有质的飞跃。
图 2: PowerMILL 10 在4核计算机上前台和后台同步进行并行处理计算图示。
Delcam对多个刀具路径策略计算测试表明,和早期单核计算机计算相比,使用多核计算机计算,刀具路径计算速度可提高3-4倍。实际的效果和硬件配置和所计算的刀具路径策略密切相关,随后我们将讨论此问题。
PowerMILL 10 优点:
● 平行刀具路径计算速度快4倍
● 最多可节省编程时间 2.5 倍*
● 减少刀具路径计算等待时间
● 增加额外工作能力
● 显著提高加工制造生产力
● 缩短交货时间
● 可处理内存占用更大的模型文件
*Delcam对多个刀具路径计算测试结果。 (见第3页PowerMILL 10性能改善中的第3部分。)
1.1. 预期效益怎样?
我们来看一个简单的例子。假设每天工作8小时,而其中50%的时间用于刀具路径计算,那么一年就相当于有大约120个工作日在不断地进行刀具路径计算。
对一系列刀具路径计算测试结果表明,在一4核计算机上使用PowerMILL 10进行计算,刀具路径计算时间可节省 60% ,也就是说每年可只用不到50天来计算刀具路径。
图 3: 在多核计算机上使用PowerMILL 10计算可能的时间节省 (天)。
以美元计算,如果产生刀具路径的内部成本是每小时50美元(考虑到运营商的成本,停机时间与等待数据造成的加工延误),这将相当于节省了70天的刀具路径计算费用,或是每年可节省的费用超过28,000.00美圆。
PowerMILL在多核处理器计算机上使用运行的潜在经济效益
1.2. 预期效益可实现吗?
尽管某些媒体所宣传的所谓并行处理可提高效益3-4倍是不现实的,但并行处理可以极大缩短计算时间则是不容置疑的。由于可在前台策划、产生和编辑刀具路径,而在后台计算刀具路径,因此可显著提高生产力。当交货时间紧迫时,这无疑可提升您的竞争力。
2. PowerMILL 10 中生产力的提升
PowerMILL 10 的许多功能完善都体现在缩短计算时间或尽量利用系统闲置时间计算上,它们极大地提高了产品的生产力。
后台处理 - 在前台和PowerMILL 交互的同时,于后台计算刀具路径、边界或单独残留模型状态。
并行处理 - 将全部计算分割成若干个子任务并同步处理,可极大缩短计算时间。并行处理仅适用于多核处理器。
加速特殊刀具路径计算 - 区域清除刀具路径计算时占用更小的内存,计算时间更短。这对路径计算中通常出现内存溢出的大型模型尤其重要。
2.1. 后台处理
PowerMILL 10 允许在对某些计算(例如生成刀具路径和边界)进行后台操作的同时,在前台做策略准备、编辑甚至计算其它刀具路径。
图 5: PowerMILL 10后台处理时间比较。前台准备、编辑或计算刀具路径的同时,在后台计算刀具路径。
后台处理使用十分简便,只需在刀具路径对话视窗中点击新添的‘队列’按钮,而不是点击‘计算’按钮,PowerMILL 即自动检查有关设置(如毛坯、刀具...)是否设置无误,随后即将刀具路径置于后台计算队列。您可继续您的工作,而 PowerMILL 按队列次序在后台逐个计算刀具路径。
注: 除刀具路径外,后台处理也适用于边界和残留模型计算。
2.2. 并行处理
PowerMILL 10 最重要但最不容易看到的功能提高是在刀具路径计算中使用了并行处理技术。
在 PowerMILL 9 中,为改善点分别计算,计算中使用了很多并行处理方法,而在
PowerMILL 10 中,刀具在模型上的运动的计算代码,也使用并行处理方法,为此,平行加工计算几乎全部都以并行处理方式进行。
图 6: 在全部4核上做多线程平行刀具路径处理
使用此代码的其它策略包括:
等高
三维偏置
区域清除
交叉等高
最佳等高
边界计算
此外,将刀具路径应用到残留模型的计算也全部使用并行处理。
如果配置有合适的计算机,并行处理将自动进行,不需做任何操作来激活。
3. PowerMILL 10 性能改善
Delcam 对 PowerMILL 10 在一系列典型3轴加工零件上做了测试,测试结果表明,使用多处理器的计算机进行平行加工刀具路径计算,可极大提高刀具路径的计算速度。第4页中的图 7给出了在相同计算机上不同处理器配置做平行策略加工路径计算时,PowerMILL 10相对PowerMILL 9 所需的计算时间百分比。
图 7: 不同配置情况下计算平行路径时,PowerMILL 10 和 PowerMILL 9 计算速度对比。
单处理器计算机因为其它方面的优化而有轻微改善。
目前平行加工进行并行处理效果最好,其它策略也有一定效果,但不敌平行加工那么显著。 而对大多数用户而言,最重要的是典型加工项目的整体性能表现。下图是使用不同策略对 PowerMILL 10 和 PowerMILL 9 进行benchmark测试的比较结果。
图 8: 不同处理器配置情况下PowerMILL 10 和 PowerMILL 9 benchmark 计算比较。
4核处理器的 benchmark 测试,PowerMILL 10 的速度快 1.5 倍。
可通过电子邮件PowerMILL10@delcam.com索取这些 benchmark 测试。安装盘 DVD 的PowerMILL examples文件夹中也提供了这些 benchmark 的测试内容。
4. 硬件影响
我们很容易想到,只要支持并行处理,那么改善性能的方法就是增加更多的处理器。然而,测试
结果表明,事情并不那么简单。从两张性能图我们可看到,处理器配置对计算时间有着重大影响。如果两个双核心处理器的计算速度大大低于1单个四核处理器还不明显,那么两个四核处理器(总共8个核)比单四核处理器性能还差一定会让您惊讶。
通过两个图表我们可看到:
增加更多芯核可改善性能,但...
4个以上芯核对性能的改善几乎无帮助,而且...
增加更多处理器反而对性能有害。
4.1. 增加更多芯核
为什么处理器增加得越多,效果越不明显?
计算机程序中的并行处理问题和公司组织某个产品的生产十分相似。我们需要决定谁做什么,如何协调他们的工作,如何将每个人的工作组成一最终产品。
人之间的相互关系意味着必须有某种形式的管理,也就是一般管理费用。首先必须建立一个有效的管理系统,然后就是使管理费用最少。
假设我们是一个做一个刊物,基本的程序是:
文章的撰写。
编辑和校对,随后印刷刊物。
假设做一个典型的刊物的工作分成以下部分:
任务 人工(小时)
● 文章撰写 20
● 刊物编辑 2
● 刊物印刷 22
显然,在这个事例中并行处理的目标是文章撰写。如果需要写4篇文章,那么3位撰稿人和一位编辑各写一篇各需要5个小时,这样总的撰写和编辑时间是7小时,(比一个人工作大约快3倍)。
如果有更多的撰稿人会是怎么样呢? 假设用两个撰稿人编写一篇文章,那么就需要这两个人能够密切合作,也不太可能他们能各花单个作者写作的一半的时间完成工作。如果他们每人能3小时完成工作,那么这个7人写作班子加上编辑完成杂志的撰写和编辑将需要 5 小时。
人员从4个增加到8个,翻倍了,但速度却只提高 40%。
如果有40篇文章,40个撰稿人,那么又存在另一个问题。每个撰稿人可半小时写一篇文章,但仍然仅有一个编辑花费2个小时来编辑刊物,增加再多的撰稿人都无法加速刊物的出版,这个时候就不得不考虑加一个编辑。
在CAM软件应用并行处理的道理相似。总是有一步占用的时间最多。对此任务进行并行处理时,另一个花费最多时间的任务又会暴露出来。为使计算速度显著提高,我们需要并行处理其它的任务。
性能的提高受程序中可在多核处理器中同步进行“并行化”处理的程序部分的多少所限制,这种性能提高效果逐渐减少的现象称之为Amdahl定律。例如,如图9所示,如果仅 50% 的刀具路径可进行并行化处理,那么理论上计算速度最多可提高 1.9倍,无论使用多少芯核。
图 9: Amdahl定律显示最多使用32核处理器对任务的不同部分进行并行处理时可获得的最大理论速度提升。
在 PowerMILL 中,最影响性能的是在模型上产生无过切的刀具路径。现在这部分以并行方式运行,但算法的特性决定了最有效的性能提高是并行运行4个处理。要进一步提高速度,我们需要让其它部分也能并行工作。
4.2. 增加更多的处理器
从图7和图8我们可看到,两个双核处理器比单个四核处理器要慢;还可看到,两个4核处理器比单个4核处理器要慢。我们知道PowerMILL当芯核多于4个时,性能增强就十分有限了。为什么会出现芯核在不同处理器上时PowerMILL性能下降的情况呢?
现代处理器的时钟速度极快,它们性能的主要瓶颈是从主内调用数据所需的时间。处理器制造厂家为消除此瓶颈而在处理器芯片中增添更快的 ‘cache’缓存,经常使用的数据就保存在此缓存供快速调用。而多核处理器它们共享处理器中的那么一个共同的缓存。
当处理器的芯核并行运行时,芯核之间的通讯即通过它们共享的那个缓存芯片而对任务进行协作,从而提高计算速度。然而,如果某些芯核处于不同处理器芯片,那么这种优势就没有了,这个时候芯核间的通讯只能通过外部总线或主内存来完成。
另一个问题是必须保持缓存的一致 - 缓存的内容必须和主内存的内容同步,反之亦然。保持单个缓存更新已经很复杂,而当需要保持两个或多个缓存和主内存同步,事情就变得更加复杂和困难。
4.3. 并行处理和后台处理
后台处理可不用等待PowerMILL计算完毕刀具路径后再进行下一步操作,而并行处理可减少刀具路径的计算时间。
PowerMILL 10 刀具路径计算速度的提升很大程度来自于前台和后台的并行处理的应用。因此,如果前台和后台同步计算,如果配以合适的计算机,那么最多可以使用8个芯核和8GB的内存。
4.4. 选用怎样的计算机?
PowerMILL 10 和PowerMILL 9的硬件要求完全相同。后台处理可工作于单处理器计算机,而使用双处理器计算机则可充分体验并行处理提高性能后的快感。
为充分发挥PowerMILL 10的各项潜能,我们建议使用以下配置的计算机:
Intel Core Quad Q9550 (2.83GHz, 1333MHz FSB, 12MB L2 Cache, Quad Core) 375W
8GB (4 x 2.0GB DIMM) 800MHZ ECC Dual Channel Memory (requires 64-bit O/S)
512MB PCIe x16 nVidia Quadro FX 3700 (MRGA15), Dual Monitor DVI or VGA Graphics Card (configured in a hardware mirror)
2 x 320GB (7,200 rpm) SATA 3.0Gb/s Hard Drive with NCQ and 16MB DataBurst Cache?
Genuine Windows Vista?Business x64 SP1
如果计算时间对您来说最重要,那么使用双4核处理器可帮助前台和后台计算,使计算速度最快。
2 x Intel Xeon?X5450 (3.00GHz, 1333MHz, 2x6MB Cache, Quad Core)
16GB, 667MHz, ECC Memory (8x2GB)
512MB PCIe x16 nVidia Quadro FX 3700 (MRGA15), Dual Monitor DVI or VGA Graphics Card
2 x 320GB (7,200 rpm) SATA 3.0Gb/s Hard Drive with NCQ and 16MB DataBurst Cache?
Genuine Windows Vista?Business x64 SP1 WITH Media
5. 未来发展
5.1. 刀具路径计算速度更快
未来版本的 PowerMILL 整体计算速度将会更快。计算速度的提升来自于以下两个方面:-
1. 增加程序中的多线程处理数量,从而改善双核和4核计算机的整体 benchmark 时间。
2. 优化数据结构,更好地利用处理器的缓存,使多芯片计算机工作更有效,显著改善双核和4核计算机上的应用效能。
5.2. 更大模型
未来版本的PowerMILL将全面支持 64-bit 计算机。64位计算机上的内存使用不受限制,安装多少就可使用多少,这样PowerMILL就可轻松处理超大型零件和特别复杂的零件。
6. 术语和更多阅读
有很多十分相似的术语来描述并行计算,本文中我们尽量使用以下术语:
处理器 - 处理器就是我们所说的CPU(Central Processing Unit)又叫中央处理器,其主要功能是进行运算和逻辑运算。过去处理器都是单个的,近年来出现越来越多的多核处理器,在单个芯片上可包含2、4甚至更多的芯核。
后台处理 - 前台准备(或计算)刀具路径的同时,于后台计算另一刀具路径,在此是同时进行两个不同计算。通常也将之称为多任务。
并行处理 - 同步对单个计算的不同部分进行计算处理,它将单个函数分割成可在不同处理器进行计算处理的多个部分。通常也称之为多线程处理。
并行计算 - 多个计算同步进行,它可是并行处理,也可是后台处理或是两者都有。通常也称之为多重处理或多核处理。
互联网上有很多有关并行计算的文章,通过下面几个链接可获取更多信息。
https://en.wikipedia.org/wiki/Parallel_computing 有关并行计算的综述。
https://en.wikipedia.org/wiki/Multicore_(computing) 讨论的演变和不同类型的多核处理器。
https://en.wikipedia.org/wiki/Multiprocessing 不同类型多重处理的详细介绍。
https://en.wikipedia.org/wiki/Multithreading_(computer_hardware) 讨论不同类型的多线程处理。
|