通过NVIDIA的多进程服务增强分子动力学
Enhancing Molecular Dynamics with NVIDIA's Multi-Process Service
Alvin Lang Jun 04, 2025 15:44
NVIDIA's Multi-Process Service optimizes GPU usage in molecular dynamics simulations, boosting throughput by running concurrent processes on a单GPU。
分子动力学(MD)模拟,对于随着时间的推移建模原子相互作用至关重要,需要大量的计算资源。尽管如此,许多模拟涉及小型系统大小,通常不足以现代GPU。 NVIDIA的多进程服务(MPS)通过允许多个模拟在同一GPU上同时运行,从而提供了解决方案根据NVIDIA的说法,最大化GPU利用率并改善了吞吐量。
了解MPS
MPS是CUDA API的二进制兼容实现,可促进通过多个过程通过多个过程进行有效的GPU共享。它通过允许所有流程共享计划资源来减少上下文开关开销,并改善了整体GPU利用率。由于NVIDIA VOLTA GPU生成,MPS还支持来自不同过程的并发内核执行,从而在单个过程无法完全饱和GPU时提高性能。值得注意的是,MP可以使用常规用户特权启动,简化其部署。
使用OpenMM
实施MPS,以利用openmm中的MPS(流行的MD引擎),用户可以同时运行多个模拟。这是通过启动模拟脚本作为单独过程的几个实例来完成的。尽管单个模拟可能会放慢速度,但由于并行执行,总体吞吐量会增加。一个简单的命令结构E允许用户控制GPU定位和流程管理,增强资源分配效率。
基准测试性能
基准测试揭示了将MPS应用于不同尺寸系统时的显着吞吐量改进。例如,具有23,000个原子的DHFR系统受益于大量性能的提升,尤其是在Nvidia H100张量芯等高端GPU上。甚至更大的系统,例如具有409,000个原子的纤维素基准,吞吐量增加了约20%。
使用CUDA_MPS_ACTIVE_THREAD_PERCENTAGE
优化吞吐量,默认情况下,MPS允许全GPU资源访问所有进程。但是,设置cuda_mps_active_thread_percentage环境变量可以通过限制每个过程的线程可用性来进一步优化吞吐量。这种调整已显示出可显着提高集体吞吐量,尤其是在涉及多个并发过程的模拟中。
在自由能中应用计算
mps也证明在自由能扰动(FEP)模拟中也有优势,该模拟依赖于复制 - 交换分子动力学。通过同时在不同的λ窗口上运行多个模拟,MPS减轻了GPU的未利润,在使用NVIDIA的L40S或H100 GPU上使用三个MPS过程时,吞吐量增加了36%。