区域
每份报价都会写明它的机器实际待在哪里。你会在报价卡片上看到一面国旗和一个代码,比如 US-CA 或 FI-HEL,它会跟着实例一路走过部署,一直到实例页面。
区域告诉你什么
区域是一个位置:一个国家,以及那个国家里的一个站点。它是关于硬件的事实,不是服务等级。位于不同区域、GPU 型号相同的两份报价,给你的是同样的 GPU。
它会改变什么:
| 关注点 | 区域如何影响它 |
|---|---|
| 交互延迟 | 你和机器之间的往返时间。区域越远,shell 用起来越迟钝,JupyterLab 单元格的响应也越慢,尽管计算本身跑得一样快。 |
| 数据传输 | 把数据集传上去或者把检查点拉下来都要跨过这段距离。距离越远,拷贝越久。 |
| 你的数据放在哪里 | 只要实例还在,你的磁盘就住在那台机器上、那个国家里。 |
它不会改变什么:GPU 执行你任务的速度。数据一旦到了机器上,在芬兰训练一小时就等于在加利福尼亚训练一小时。
实用的规则是:当你要在终端里敲字或者搬运大文件时,挑一个近一点的区域;而对于一个启动之后就丢在那里跑一整晚的任务,别再为它操心。
直白地说数据位置
你写到实例磁盘上的一切——数据集、检查点、你粘进 shell 的凭据——都存在那个区域的那台物理机器上,直到实例被销毁。销毁会删掉磁盘。
如果你有关于数据可以在哪里处理的规定,区域字段就是你手上的那个控制手段。请把它读作对硬件位置的陈述,而不是一份合规认证。
按区域过滤
市场的 区域 过滤器按国家缩小范围。它的选项列表是用那一刻目录里的报价生成的,所以它显示的是眼下有东西可租的国家,而不是 Superheat 曾经运营过的每一个地方。要缩到某一个站点,请把区域代码打进搜索框,它会匹配 GPU 型号、主机名和区域。
通过 API,GET /v1/offers 上的 region 参数既接受区域代码也接受国家代码,所以你想多具体或多宽泛都行:
# every offer in Finland
curl -s "$SUPERHEAT_API/v1/offers?region=FI&sort=price_asc" \
-H "Authorization: Bearer $SUPERHEAT_KEY"
# only the Helsinki site
curl -s "$SUPERHEAT_API/v1/offers?region=FI-HEL" \
-H "Authorization: Bearer $SUPERHEAT_KEY"
过滤不是保证
选一个区域只是缩小你能看到的报价范围。它不预留任何东西,也不会让容量凭空出现。
- 如果那个区域里没有东西符合你其他的过滤条件,页面就是空的。解决办法是放宽过滤条件,而不是等待——这里没有队列,也没有容量申请。
- 可用性是会变的。今天上午某个区域有四份空闲的 4× 报价,到了下午可能一份都没有,因为别人把它们租走了。
- 这个选择只对一次部署有效。销毁那个实例再重新部署,你会落到你在那一刻挑的地方。实例不会迁移,也没有哪个设置能把以后的部署钉在某个区域上。
- 停止实例会占住你原来所在的那台确切机器,所以它的区域也一并占住了。销毁则会把它放掉。
如果某个特定区域对你的工作很重要,请在围着它做计划之前先去市场看一眼;当你打算回到同一台机器上时,让实例保持停止而不是销毁。