1. 全球首个GW级超算集群的技术突破
上周在得克萨斯州落成的GW级超算集群,标志着高性能计算领域迈入新纪元。这个由上万张H100加速卡构建的计算怪兽,单机柜功率密度突破100kW,整体计算能力相当于150万颗苹果M2芯片的算力总和。
1.1 硬件架构解析
该集群采用模块化液冷设计,每个计算单元包含:
- 8台DGX H100系统
- 640GB HBM3显存
- 400Gbps InfiniBand网络
- 定制化电源管理系统
特别值得注意的是其冷却方案:采用两相浸没式液冷技术,将服务器完全浸没在不导电的氟化液中,使PUE值低至1.05,比传统风冷数据中心节能40%。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 工程实现的关键挑战
2.1 电力供应解决方案
为满足72MW的峰值功耗,项目团队设计了三级供电体系:
- 主变电站:2组138kV变电站
- 配电单元:48台2MW变压器
- 机柜级:智能功率分配模块
重要提示:这种高密度供电需要特别关注谐波抑制,项目采用了12脉冲整流技术将THD控制在5%以下。
2.2 网络拓扑优化
为避免"大象流"问题,网络架构采用:
- 三级Clos网络拓扑
- 自适应路由算法
- 光电混合布线方案
实测端到端延迟稳定在1.2μs以内,比传统架构提升3倍。
3. 软件栈创新
3.1 调度系统特性
定制开发的调度器具有以下突破:
- 支持百万级并发任务
- 动态功耗感知调度
- 故障预测准确率99.7%
python复制# 简化的调度算法伪代码
def schedule(task):
while True:
node = find_optimal_node(task)
if check_power_budget(node):
allocate(task, node)
break
else:
throttle_other_tasks(node)
3.2 存储架构
采用"热-温-冷"三级存储体系:
| 层级 | 介质 | 容量 | 延迟 |
1. 概述
本文分享 服务引用 的最后一部分:远程暴露。
在 《精尽 Dubbo 源码分析 —— 服务引用(一)之本地引用(Injvm)》 一文中,我们看到了本地引用,在 #createProxy(map) 方法中,当 registryURL 非空时,会使用 Protocol#refer(interfaceClass, urls.get(0)) 方法,引用服务。代码如下:
java复制// ReferenceConfig.java
private T createProxy(Map<String, String> map) {
// ... 省略无关代码
// 本地引用
if (urls.size() == 1) {
// 引用服务
invoker = refprotocol.refer(interfaceClass, urls.get(0));
if (logger.isInfoEnabled()) {
logger.info("Using injvm service " + interfaceClass.getName());
}
// 远程引用
} else {
// 循环多个注册中心的 URL ,引用服务
List<Invoker<?>> invokers = new ArrayList<Invoker<?>>();
URL registryURL = null;
for (URL url : urls) {
// 引用服务
invokers.add(refprotocol.refer(interfaceClass, url));
if (ProtocolUtils.isRegistry(url)) { // 是注册中心
registryURL = url; // 使用最后一个注册中心的 URL
}
}
// 注册中心 URL 非空
if (registryURL != null) {
// 对有注册中心的 Cluster 只用 AvailableCluster
URL u = registryURL.addParameter(Constants.CLUSTER_KEY, AvailableCluster.NAME);
// 创建 StaticDirectory 对象
invoker = cluster.join(new StaticDirectory(u, invokers));
// 注册中心 URL 为空
} else {
invoker = cluster.join(new StaticDirectory(invokers));
}
}
// ... 省略无关代码
}
-
远程引用服务,顺序如下图:

-
在
#createProxy(map)方法中,我们可以看到,若注册中心非空,则调用Cluster#join(directory)方法,创建集群 Invoker 对象。在 《精尽 Dubbo 源码分析 —— 集群容错(一)之抽象 API》 中,我们已经详细分享。 -
本文涉及的类,如下图所示:

2. Protocol
2.1 ProtocolFilterWrapper
接 《精尽 Dubbo 源码分析 —— 服务引用(一)之本地引用(Injvm)》 一文,我们从 ProtocolFilterWrapper#refer(interfaceClass, url) 方法开始。代码如下:
java复制public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {
// 注册中心协议
if (Constants.REGISTRY_PROTOCOL.equals(url.getProtocol())) {
return protocol.refer(type, url);
}
// 引用服务,返回 Invoker 对象
// 给改 Invoker 对象,包装成带有 Filter 过滤链的 Invoker 对象
return buildInvokerChain(protocol.refer(type, url), Constants.REFERENCE_FILTER_KEY, Constants.CONSUMER_SIDE);
}
- 当
url.protocol = registry时,调用protocol.refer(type, url)方法,继续引用服务。注意,此处的protocol是 QOS 的包装类。如下图所示:
- 否则,调用
#buildInvokerChain(invoker, key, group)方法,创建带有 Filter 过滤链的 Invoker 对象。在 《精尽 Dubbo 源码分析 —— 服务暴露(一)之本地暴露(Injvm)》「2.1 ProtocolFilterWrapper」 已经有详细解析。
2.2 RegistryProtocol
2.2.1 refer
本文重点在于 RegistryProtocol#refer(interfaceClass, url) 方法,引用远程服务的核心实现。代码如下:
java复制 1: public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {
2: // 获得真实的注册中心的 URL
3: url = url.setProtocol(url.getParameter(Constants.REGISTRY_KEY, Constants.DEFAULT_REGISTRY)).removeParameter(Constants.REGISTRY_KEY);
4: // 获得注册中心
5: Registry registry = registryFactory.getRegistry(url);
6: if (RegistryService.class.equals(type)) {
7: return proxyFactory.getInvoker((T) registry, type, url);
8: }
9:
10: // 将 url 的 query 参数,作为我们的引用配置。配置规则,参见《Dubbo 开发指南 —— 配置规则》http://dubb
