核时估算 API
如果你要一次算十几种配置、或者想把估算接进自己的脚本,用网页点来点去太慢。这个接口一个 GET 请求就返回核时、墙钟、费用和内存建议。免费、不需要注册、不需要密钥。
用法
curl "https://physedu.top/compute/api/v1/estimate?atoms=128&kpoints=12&encut=400&steps=100&cores=64&rate=0.06"
返回:
{
"input": {
"atoms": 128, "kpoints": 12, "encut_ev": 400,
"ionic_steps": 100, "cores": 64,
"yuan_per_core_hour": 0.06, "size_exponent": 2.6
},
"scaling_factor_vs_reference": 6.063,
"core_hours_per_step": 48.5,
"core_hours_total": 4850.3,
"wall_hours": 75.8,
"cost_yuan": 291.0,
"memory_gb_suggested": [64.0, 96.0],
"model_version": "1.0"
}
参数
参数 含义 取值 默认
atoms 体系原子数 1 - 5000 64
kpoints 不可约 k 点数 1 - 512 12
encut 平面波截断能(eV) 100 - 2000 400
steps 离子步 / 自洽步数 0 - 100000 100
cores 使用的核数 1 - 512 64
rate 每核时单价(元) 0 - 100 0.06
ni 规模标度指数 1.0 - 4.0 2.6
ni 是你唯一需要自己标定一次的参数。它决定「原子数翻倍,计算量涨几倍」。默认 2.6 是常见 DFT 经验值;如果你手上有自己体系的实测数据(同一体系两种原子数、同样参数下的耗时),把两个点代进去解出 ni 更准:
ni = ln(t2 / t1) / ln(N2 / N1)
计算模型
s = (atoms / 64)^ni × (kpoints / 12) × (encut / 400)^1.5
核时/步 = 8 × s
总核时 = 核时/步 × steps
墙钟(h) = 总核时 / cores
费用(元) = 总核时 × rate
内存建议 = [0.50 × atoms, 0.75 × atoms] GB
基准点:64 原子、12 个 k 点、ENCUT 400 eV 的体系,在 8 核上每个离子步约消耗 8 核时。这是经验起点,不是物理定律——实际耗时受泛函(杂化泛函会慢一个数量级)、赝势类型、结构好坏、机器差异影响,±50% 都正常。
边界与免责
· 单 IP 每分钟 30 次,突发允许 20 次;超出返回 429。
· 参数越界或非数字返回 400,错误信息在 error 字段里。
· 返回结果带 Access-Control-Allow-Origin: *,可以直接在浏览器里跨域调用。
· 这是估算,不是承诺。真金白银的预算请按你自己的一次标定结果再乘 1.5。
为什么做这个
写这个站的过程中,我给不同体系算了几十遍核时,每次都要重新按计算器。既然网页端已经有一个估算器,把它抽成一个接口只是顺手的事;开放出去,别人写脚本时也能少按几次计算器。
如果你用它做出了有意思的东西(标定表、成本对比、教学材料),欢迎告诉我。
接口不收集任何个人信息,日志只记录请求路径。站点部分外链为推广链接。