一、almutil显示的数字,为什么和工程师的感受对不上
很多HyperWorks管理员都遇到过类似的困惑:almutil显示Unit池占用率超过80%,但工程师反馈"最近没那么紧张"。问题不在almutil本身,而在almutil默认显示的是Leveling应用之前的原始数据。
Altair官方文档明确说明:"When checking license usage through Altair One or ALMUtil, you might see higher AU counts than expected. This is because the displayed usage is before leveling is applied."
要看到实际扣费,需要在almutil或Altair One的License Usage选项卡中,找到下拉菜单里的"Collapse on Share String"选项并启用。这个选项不在主界面上,不注意的话很容易漏掉。
二、Leveling到底是怎么算的
HyperWorks的Altair Units池有一个特殊机制叫Leveling。当同一个用户、同一台机器上同时运行多个Altair应用时,系统只按消耗最高的那个应用扣Unit。
Altair官方文档举了一个具体的例子:一个用户先打开HyperMesh(21 AU),再启动Radioss(30 AU),总消耗是30 AU而非51 AU。如果继续在同一台机器上提交一个OptiStruct作业(50 AU),总消耗变为50 AU。如果此时再提交第二个OptiStruct作业,第二个作业按0.9的系数叠加,总消耗变为95 AU(50 + 0.9×50)。
需要说明的是,Leveling和Stacking都不受机器核心数的限制。官方文档明确写道:"Leveling and stacking is not confined by the number of machine cores"。即使一台机器只有8个物理核心,同一用户同时运行HyperMesh和HyperGraph,仍然只按最高的那个扣费。
三、什么情况下Leveling不生效
Leveling有一个前提条件:同一个用户、同一台机器。一旦这个条件不成立,Unit就会实打实地叠加。
Altair官方文档写得很清楚:当不同用户运行同一个应用时,Unit是叠加的"two users running HyperMesh = 21 + 21 AUs"。两个工程师各自在自己的机器上打开HyperMesh,就是42 AU,没有任何折扣。
此外,并非所有Altair产品都支持Leveling。某些产品(如APA应用)即使在同一用户、同一主机下,多个实例也会直接叠加。官方文档举例:运行两个20 AU的APA应用,总消耗是40 AU。
四、求解器的叠加规则更复杂
Altair的Decay机制规定,当多个求解器作业从同一许可证服务器并发运行时,第二个及后续的相同求解器作业按0.9的系数叠加。触发条件不仅是"同一用户",还包括"同一许可证服务器"。也就是说,如果用户A和用户B从同一台许可证服务器提交了同一个求解器的作业,Decay机制仍然可能生效。
第一个OptiStruct扣50 AU,第二个扣45 AU(50×0.9),第三个继续按此规则叠加。
但有一个容易被忽略的规则:OptiStruct优化任务按1.5倍系数消耗。Altair官方文档明确指出:"If OptiStruct runs an optimization (OptiStruct license feature), the draw per core is multiplied by 1.5 for a given job."一个4核的优化作业,消耗不是4×30 = 120 AU,而是4×30×1.5 = 180 AU。
五、Solver HPC的按核阶梯计费
当求解器不是从GUI内部启动、而是直接提交到命令行时,Unit按CPU核心数阶梯计费。Altair官方文档给出的阶梯表是:1到4核每核30 AU,5到36核每核1.6 AU,37到70核每核0.8 AU,71到200核每核0.6 AU。
官方文档中有一个具体的例子:三个并行的Radioss作业,总共48核,总Unit消耗是90.8 AU(30 + 32×1.6 + 12×0.8)。almutil的默认视图不体现这个阶梯,管理员如果只看原始数据,看到的"三个Radioss作业各占30 AU"和实际计费的90.8 AU,数字接近但逻辑完全不同。
六、理解这些规则后,看数据时要注意什么
第一,almutil的默认视图不是实际扣费数据。需要启用"Collapse on Share String"后,看到的才是Leveling和Decay之后的真实消耗。
第二,不同场景下的叠加规则不同。同一用户同一机器上Leveling生效,不同用户之间Stacking叠加,优化任务有1.5倍系数,Solver HPC按核数阶梯计费。这些规则almutil的默认视图都不体现。
第三,almutil只能告诉你"许可证被谁持有",不能告诉你"持有许可证的人是否真的在使用"。如果需要监测"某个会话是否长时间无操作"这类行为,需要在客户端层面增加额外的监测能力。
注:本文技术规则描述依据Altair官方许可文档。