核时估算 API

如果你要一次算十几种配置、或者想把估算接进自己的脚本,用网页点来点去太慢。这个接口一个 GET 请求就返回核时、墙钟、费用和内存建议。免费、不需要注册、不需要密钥。

2026-10-17 · 单 IP 每分钟 30 次

用法

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。

为什么做这个

写这个站的过程中,我给不同体系算了几十遍核时,每次都要重新按计算器。既然网页端已经有一个估算器,把它抽成一个接口只是顺手的事;开放出去,别人写脚本时也能少按几次计算器。

如果你用它做出了有意思的东西(标定表、成本对比、教学材料),欢迎告诉我。

不想写脚本?

网页端估算器支持滑杆和即时反馈,还能一键复制结论。

打开估算器 内存估算
接口不收集任何个人信息,日志只记录请求路径。站点部分外链为推广链接。