新思科技(Synopsys)家的VCS,在半导体行业使用率极高,背景我们就不多说了。
对经常跑EDA或其他算力密集型任务的用户来说,在深度掌握本行业业务知识及熟练运用常见EDA工具以外,通常还需要在技能树上点上一门技能——IT,就是怎么(顺利)使用机器把手里的任务给(高效)跑完。
他们的IT技能升级打怪之旅一般分为三个阶段:
第一阶段:单机单CPU核,单任务
第二阶段:单机多CPU核,多任务
第三阶段:多机多CPU核,多任务
据我们观察,很多用户都已经处在第二阶段。
但是,依然有部分用户尚处在第一阶段,比如我们今天的实证主角。
我们之前的六篇实证都直接一步到位——上云后。
HSPICE │ Bladed │ Vina │ OPC │ Fluent │ Amber
今天我们看看上云前的幕后系列,又名:搬桌子的故事。
某IC设计公司运行EDA仿真前端设计和后端设计的分析任务,进行机电一体芯片技术的开发。现有机房设备较为老旧,共有8台单机,需要同时服务数字和模拟两个研发部门。
随着公司业务的发展,相关部门负责人几乎同时反馈业务峰值时计算资源严重不足,排队现象严重。
1、fastone平台是否能有效提升VCS任务运行效率?
2、fastone平台是否能有效提升本地机器资源利用率?
3、fastone平台是否支持大规模VCS任务自动化稳定运行?
Red Hat Enterprise release 5.7(Tikanga)
我们先来看看用户自己跑20000个任务和我们来跑的效果:
我们将本地机房的8台单机构建为一个统一管理的集群,运行20000个VCS任务的时间是用户自己所需时间的约1/50。1、用户使用一台单机C1运行20000个VCS任务,耗时40485分钟;2、将本地机房的所有8台单机构建为集群A,使用集群A运行20000个VCS任务,耗时809分钟。用户按常理推断,本地机房共有8台单机,将所有机器一起来运行大规模VCS任务的时间大概应该是使用一台机器机耗时的6-7倍(理想值为8倍,但由于存在长尾任务,存在一定差异)。单任务状态下的单机单核,就是一个任务只在一台机器上的一个CPU上跑。不管这台机器其实有几个CPU,反正就只用一个。资源利用率极其低下,可以说是暴殄天物。再细一点,这里其实还有个1.5阶段:单机多CPU核,单任务。效果类似。假设给你几个人(CPU核),完成一个叫做“搬桌子”的任务。不管你有几个人,同一时间永远只有1个人在搬整张桌子,其他人在围观。先拆桌子。比如把一张桌子拆成4个零部件,分给4个人来同时搬,有的搬桌子腿,有的搬桌面等等,搬得最慢的人决定任务的完成速度。补充一个背景信息:2009年4月,新思科技就发布了VCS的多核技术,通过将耗时的计算处理动态地分配至多个CPU内核来突破芯片验证的瓶颈,从而提高验证的速度。也就是说,应用十多年前就支持单任务多进程了,现在这个技术的名字叫Fine-Grained Parallelism,FGP。多任务状态下的单机多核,就是多个任务能同时在一台机器上的数个CPU上跑,受制于单台机器的最大核数,目前最多也就96个核了。上一阶段的多进程处理方式,存在一个明显的问题。哪怕你有8个人,一次也只有4个人在搬。搬完一张桌子再搬下一张。在你有8个人的情况下,一张桌子4个人搬,我们可以同时搬两张桌子啦。这样可以明显加快任务的完成速度。当然这一阶段还是会存在一些问题,会出现有人突然跳出来跟你抢人或者你也搞不清楚哪些人现在有空来帮你。因为资源使用的不透明和缺乏有序管理,会出现不同人对同一资源的争抢,任务排队等现象。同时,你会发现资源利用率还是不高。我们看看从第一阶段到第二阶段的实际VCS验证效果:对VCS进行多任务并行化处理后,一台单机运行相同VCS任务的时间缩短为原先的15%-16%,极大提升了运行效率。1、使用一台单机C1(8核)运行400个VCS任务,耗时806分钟;2、使用一台单机C2(8核)运行400个VCS任务,耗时793分钟;3、对VCS应用进行多任务并行化处理后,使用一台单机C1(8核)运行400个VCS任务,耗时130分钟;4、对VCS应用进行多任务并行化处理后,使用一台单机C2(8核)运行400个VCS任务,耗时122分钟。多任务状态下的多机多核,就是多个任务能同时在数台机器的数个CPU上跑,这个我们称之为集群化管理,一般都需要有调度器的参与。但其实,如果你的机器足够多,人(CPU核)足够多,你完全可以同时搬更多的桌子。这么多机器,这么多任务,怎么顺利一一配置、启动、关闭,提高整体资源利用率,最好还能自动化管理等等。这就需要一点技术了。至于云上资源的大规模动态化调度和管理,要更加高阶一点。而且云上资源跟本地不同,往往是个动态使用的过程,有时候甚至要抢。我们看看从第二阶段到第三阶段的实际VCS验证效果:由2台单机构建的集群运行相同VCS任务的时间为单机的约60%,并实现了自动化资源管理。1、使用一台单机C1(8核)运行400个VCS任务,耗时130分钟;2、使用一台单机C2(8核)运行400个VCS任务,耗时122分钟;3、将C1和C2构建为集群B,使用集群B运行400个VCS任务,耗时75分钟。fastone帮助用户实现了应用并行化,可以充分使用一台单机上的全部CPU资源,确保了最大的计算效率。fastone帮助用户实现了集群化管理,让多台机器能够并行化运行VCS任务,实现了数据、应用、资源的统一化管理。用户希望在面临大规模VCS任务时,上述方案的稳定性能够得到充分验证。fastone帮助用户充分验证了20000个VCS任务场景下,能够自动化规模化地调度资源高效完成任务,满足用户需求。到现在为止,我们成功帮助用户从单机单任务单进程运行的阶段大幅度跨越到了大规模任务自动化集群化运行阶段。我们有个为应用定义的云平台
集成多种应用,大量任务多节点并行
应对短时间爆发性需求,连网即用
跑任务快,原来几个月甚至几年,现在只需几小时
5分钟快速上手,拖拉点选可视化界面,无需代码
支持高级用户直接在云端创建集群