JUXAID
JUXAID
PYXAID是由Oleg V. Prezhdo和Alexey V. Akimov共同开发的优秀非绝热分子动力学软件,在凝聚态体系的激发态动力学模拟中得到了广泛应用。随后,Alexey V. Akimov开发的Libra进一步拓展了相关方法体系。此外,Hefei-NAMD、NEXMD、SHARC和Newton-X等软件也在激发态动力学研究中得到了广泛应用,并表现出良好的性能。
在此基础上,本项目开发了JUXAID,一个基于Julia语言的轻量化重构版本。该实现基于原程序的代码逻辑进行重新实现,并采用简洁的单文件结构。在保留从头算电子-核运动耦合核心理论框架的基础上,充分利用Julia在高性能数值计算与跨平台执行方面的优势,实现了非绝热分子动力学过程的高效模拟。同时,JUXAID引入了改进的表面跳跃算法(如SDM方法)以及更加灵活的模块化设计,从而提升了程序在复杂体系中的适用性与可扩展性。此外,JUXAID支持Linux与Windows等多平台环境运行,适用于大规模计算以及后续与机器学习方法的集成。
使用方法
julia namd.jl
性能对比
在以下两种硬件平台上,对PYXAID、MAXAID和JUXAID不同版本进行了性能测试:
-
服务器平台:
英特尔® 至强® 金牌 6444Y,256 GB 内存,CentOS -
桌面平台:
Intel(R) Core(TM) Ultra 9 285H,32 GB 内存,Windows 11
相对耗时对比表
| 软件版本 | 相对耗时(归一化,PYXAID=1) |
性能表现说明 |
|---|---|---|
PYXAID |
1.0 | 基准参考 |
JUXAID (v9) |
~1.0 | 与PYXAID基本一致 |
MAXAID |
10 ~ 20 | 电子态数增加时性能显著下降 |
JUXAID (v11) |
~0.17 | 显著优化,约为PYXAID的 1/6 |
更新日志
v11 相比 v9 的主要改进
1. 自相关函数FFT加速
-
v9 使用双重循环计算自相关函数(O(N²))
-
v11 使用 FFT 实现严格等价的自相关计算(O(N log N)
-
在长时间轨迹下显著提升
decoherence计算速度
2. 参数结构化(移除global)
-
v9 使用大量
global变量(hbar、kb、dt等) -
v11 引入
NAMDParams结构体统一管理参数 -
提高类型稳定性,增强
Julia编译优化能力
3. 多电子态映射预计算
-
v9 在每个时间步重复计算
delta_states和ext2int -
v11 预计算:
-
transition_map -
diag_orbital_map
-
-
显著减少重复计算开销
4. 避免存储完整时间序列对象
-
v9 存储完整
oe_es和me_es数组(内存开销大) -
v11 使用:
-
Hme_batch(轻量) -
单个
ElectronicStructure对象传播
-
-
大幅降低内存占用
5. Hamiltonian构造模块化
-
v9 在
main中集中实现(难维护) -
v11 拆分为函数:
-
build_spin_orbital_H! -
build_Hme_batch -
write_me_energies
-
-
提高代码可读性与可维护性
6. 减少临时数组分配
-
v9 使用矩阵乘法和广播(产生临时对象)
-
v11 使用显式循环更新矩阵
-
降低
GC压力,提高运行效率
7. hop算法优化
-
v9 使用
vec+cumsum -
v11 使用
view+ 在线累加 -
避免不必要的内存分配
8. 更易扩展并行计算
-
v11 将数据结构扁平化(
Hme_batch+ 单对象) -
更适合后续:
-
多线程(
Threads) -
多进程(
Distributed)
-
引用
这是PYXAID的原始文献:
-
Akimov A V, Prezhdo O V. The PYXAID program for non-adiabatic molecular dynamics in condensed matter systems. Journal of Chemical Theory and Computation, 2013, 9(11): 4959–4972.
-
Akimov A V, Prezhdo O V. Advanced capabilities of the PYXAID program: integration schemes, decoherence effects, multiexcitonic states, and field–matter interaction. Journal of Chemical Theory and Computation, 2014, 10(2): 789–804.
本工作:
论文正式发表后补充。