高性能计算(HPC)技术在工业领域、科学研究等各个领域发挥着越来越重要的作用。当仿真用户及软硬件资源发展到一定的阶段,如何有效地管理和分配软硬件资源以及仿真任务调度是一个不容忽视的问题。现阶段业界主流方式是采用调度软件,来分配管理软硬件资源的使用。
调度软件给用户和计算资源之前提供了一个平台,帮助客户解决以下问题:
• 分配硬件资源池;
• 设置任务优先级和分配;
• 单机、DC、并行计算等自动选择;
• 解决资源利用不均衡问题;
• 用户各自访问数据管理;
• CPU/GPU集中管理;
• 利用闲暇时间资源;
• 软硬件利用率统计和报表;
以CST DC方案为例,提交的计算任务在DC统一排队;DC对每个任务处理会有四个环节:数据解析与预处理(时间占比一般10%左右)、计算求解、数据合并(求解与合并占比一般在80%左右)、数据回传(一般在10%左右),数据回传完成后DC才将当前计算资源释放为空闲;DC完成一个任务的解析、启动该任务计算后,再处理下一个排队任务,经常会出现DC排队任务等待时间较长的情况。
为了解决这个问题,本文给出了两种高性能计算云调度的方案,可以进一步提高仿真平台资源利用率。
1. 对单台GPU服务器可以完成的中小模型,建议不通过DC运行,而是通过高性能计算的云调度软件提交非DC方式计算,这样减少了DC数据解析、合并、回传时对硬件资源的时间占用,将硬件利用率提升20%;针对中小模型,同时还有2个优化的参考经验,
• 以GPU卡为单位细粒度的分配资源,避免超额分配。优化的分配标准是,求解中每颗GPU利用率都在70%以上,计算时可以通过观察GPU资源利用率来评估。如一个模型分配了4颗GPU计算,计算时有2颗GPU在70%利用率、2颗在20%利用率,说明资源过分配过多,该模型分配4颗GPU和2颗的计算的时间会差不多。也就意味着这种情况细粒度调整后,1个节点的硬件完成的任务数翻倍,利用率提升100%,同时每个任务的用时都和原来超额分配时一样。
• 求解时指定具体GPU ID计算,这样计算时可以获得指定的GPU全部资源,经常会带来5%左右的性能提升。如果不指定GPU,操作系统会在已有任务的GPU没有满负载时,继续分配计算任务,比如会出现这样一个场景:一个4颗GPU服务器运行了2个2GPU任务,这4颗GPU只有前2个或前3个负载超过70%,后面的1-2个利用率很低。如指定GPUID每个任务会独占2GPU,每个GPU利用率可能在50%左右,计算性能会有提升。
2. 对需要多台机器并行计算的中大型模型,借助云调度软件的动态部署技术,动态为每个任务部署自己的DC服务(DC占用很低的cpu资源),这时该DC服务只有一个任务、不需要排队,而且云调度软件不是依次处理排队任务,而是并行处理每个排队任务,彻底避免了DC的排队时间;任务完成计算和数据合并后马上注销DC服务、释放计算资源,由云计算软件数据回传,减少了回传的时间占用。通过这一方式,减少了DC方案中20%的非计算时间的资源占用。对中大模型,给计算任务分配的合理节点数,也参考中小模型思路,以分配的计算节点GPU利用率都达到70%以上为最优,避免超额分配。
综合上面2个方面,借助云调度软件与DC的结合使用可以为用户带来20%以上的利用率提升,也就是如果当前计算平台每天完成20个任务,通过优化方案可以每天完成24个以上的任务,加速CST仿真工作。
凌云仿真信息技术有限公司,有多年的高性能计算与调度软件经验,可以为用户提供结合DC功能的云调度平台,用户通过凌云网页提交CST计算任务,能够实现中小模型以非DC方式,细粒度的在指定GPU运行;以及中大模型动态部署DC后高效运行,DC任务运行结束后即刻释放资源,调度平台进行数据回传,大幅提升了计算平台的使用效率。