背景
某医药公司在使用 VASP 生物医药分子模型优化自己的算法时遇到了性能低下的问题,为了解决这个问题,一起针对VASP分子模型的特点,进行技术匹配,最终发现,英特尔® oneAPI工具套件中的MPI库能够助其获得理想结果。
使用的技术
MPI (Message Passing Interface),是开发者们在科学计算程序中,用于在参与计算的不同 CPU、或服务器节点之间进行消息传递的一组规范或接口,通过这组接口,能帮助开发工程师们在不同的计算平台上快速编写可跨平台移植的并行计算程序,提升开发效率。
VASP(全称 Vienna Ab-initio Simulation Package)是维也纳大学Hafner小组开发的进行电子结构计算和量子力学-分子动力学模拟软件包。它是材料模拟和计算物质科学研究中最流行的商用软件之一。
测试
测试环境基于火山引擎g2i实例,采用双路版第三代英特尔® 至强® 可扩展处理器,提供强劲性能。
a. 测试步骤
步骤1,安装英特尔® OneAPI 工具套件,并使能环境变量;
步骤2,基于OneAPI 中的英特尔® Compiler 和MKL(数学核心函数库),编辑VASP 软件包的makefile,编辑相关库的地址,打开编译器优化配置,编译构建VASP 程序;
步骤3,获取测试用例,运行VASP 程序:
Bash
cd PATH-TO-CASE
mpirun -genv I_MPI_DEBUG=5 -np 4 PATH-TO/ binary/vasp_std
b. 优化效果
基于业务模型提供定制化解决方案,其中包括使用英特尔® oneAPI 工具套件提升性能[1]:
实际性能受使用情况、配置和其他因素的差异影响。更多信息请见www.Intel.cn/PerformanceIndex
c. 异常 case 优化:
客户测试中遇到了一个异常 case,导致容易超时甚至运算失败等问题,而且在不同的配置下最终运算结果会有小幅度的差异。
通过英特尔与火山引擎联合定位分析,最终选择了新版本的英特尔® MPI,结合测例中的NPAR参数调优:
• VASP 官方推荐实践:
• 调优后的最佳实践:去掉 NPAR 这个参数,可以获得平衡的性能以及稳定的结果输出。
结论
火山引擎向该生物医药科技公司提供了基于英特尔® oneAPI 工具套件中的MPI库,广泛赋能更加数字化和智能化的药物研发效率升级,并对VASP分子训练模型进行了NUMA亲和性优化,极大地提高了运算性能,从而提高研发成功率、降低研发成本。
[1] 测试日期为 2022 年 9 月,该数据由字节跳动提供,英特尔并不控制或审计第三方数据。请您审查该内容,咨询其他来源,并确认提及数据是否准确。