StorageReview 和我们的合作伙伴刚刚将 Pi 解算到 105 万亿位,这是一项新的世界纪录,比之前的记录高出 XNUMX%。
我们对突破计算的界限并不陌生,但这一次以 Pi(e) 为对象。继去年之后火爆 100 为了达到万亿位数的基准,我们决定加大力度,将 Pi 的已知位数推至 105 万亿位数。这是 105,000,000,000,000 之后的 3 个数字。我们对去年运行的平台进行了一些更新,在运行过程中发现了一些令人惊讶的事情,并在此过程中学到了一些东西 - 包括 Pi 的第 105 万亿位;6!
StorageReview 实验室实现了 105 万亿位数字的破世界纪录,凸显了现代硬件令人难以置信的功能。这一成果由配备 2TB DRAM 和近 PB Solidigm QLC SSD 的尖端 128P 1.5 核 AMD EPYC Bergamo 系统提供支持,代表了计算和存储技术领域的里程碑式成就。
挑战
在100万亿的数字化进程中,我们遇到了一些技术限制。例如,该服务器平台仅支持前端插槽16个NVMe SSD。虽然我们拥有充足的 CPU 能力,但此计算在处理过程中以及输出最终 TXT 文件时在后端需要大量存储。
为了解决上次的存储问题,我们使用 PCIe NVME 适配器雪橇来挤入另外三个 SSD。然后,对于输出,请注意,我们在 RAID0 中有一个 HDD 存储服务器,并有一个 iSCSI 共享返回计算盒。这次,我们想让这个服务器更加“企业化”一点,所以我们请了一些朋友来帮忙。有趣的是,向服务器添加一堆 NVMe SSD 并不像看起来那么容易。
硬件
这项艰巨任务的核心是双处理器 AMD EPYC 9754 Bergamo 系统,每个系统提供 128 个内核。 AMD 处理器以其在高复杂性计算任务中的卓越性能而闻名 (人工智能、高性能计算、大数据分析),提供了必要的马力。与之相辅相成的是 1.5TB DRAM,确保快速的数据处理和传输速度。与此同时,近 XNUMX PB Solidigm QLC 存储 提供了前所未有的容量和可靠性。
我们的基础机箱平台与去年相同(QCT 盒子),但我们将 CPU 升级为 AMD EPYC 9754 Bergamo 芯片。我们想要追求速度和小数点的改进,同时避免使用存储进行计算,这意味着我们必须调用 SerialCables 来提供 JBOF。这本身就带来了一些挑战,我们将在下面详细介绍。
产品型号 | 值 |
---|---|
开始日期 | 19 年 14 月 10 日星期二 48:2023:XNUMX |
结束日期 | 27 年 09 月 53 日星期二 16:2024:XNUMX |
总计算时间 | 5,363,970.541 秒 / 62.08 天 |
开始到结束的挂墙时间 | 6,032,547.913 秒 / 69.82 天 |
计算周期: 14年2023月27日-2024年75月XNUMX日,历时XNUMX天.
- CPU: 双 AMD Epyc 9754 Bergamo 处理器,256 个内核,在 BIOS 中禁用同时多线程 (SMT)。
- 记忆: 1.5 TB DDR5 RAM。
- 存储: 36 个 30.72TB Solidigm D5-P5316 SSD。
- SerialCables JBOF 中的 24 个 30.72TB Solidigm D5-P5316 SSD
- 直接连接服务器中的 12 个 30.72TB Solidigm D5-P5316 SSD。
- 操作系统: Windows Server 2022 (21H2)。
通向 105 万亿美元之路
产品型号 | 值 |
---|---|
常数 | Pi |
算法 | 楚德诺夫斯基 (1988) |
小数位数 | 105,000,000,000,000 |
十六进制数字 | 87,200,612,490,794 |
线程模式 | Cilk Plus 工作窃取 -> 256 / 256 |
工作记忆 | 1,492,670,259,968 (1.36 TiB) |
总内存 | 1,492,984,298,368 (1.36 TiB) |
逻辑最大检查点 | 157,783,654,587,576 (144 TiB) |
逻辑峰值磁盘使用率 | 534,615,969,510,896 (486 TiB) |
逻辑磁盘字节读取 | 44,823,456,487,834,568 (39.8 PiB) |
写入的逻辑磁盘字节数 | 38,717,269,572,788,080 (34.4 PiB) |
遇到挑战
此次运行的一个新组件是添加 NVMe JBOF,将可用存储扩展到处理器所需。我们的测试平台提供 16 个 NVMe 托架,其余 100 个仅用于 SATA。虽然我们的 2 万亿次运行利用了三个内部 PCIe U.19 适配器将 NVMe 驱动器数量扩展到 XNUMX 个,但这并不是最佳选择。对于这次重新运行,我们添加了一个 串行电缆 24 盘位 U.2 JBOF,这在两个方面有很大帮助:更多的计算交换存储和内部输出文件存储。不再有疯狂的 RAID0 HDD 存储服务器!
串行电缆 24 盘位 JBOF 使我们能够将原始运行的驱动器数量增加近一倍。我们为 y-cruncher 交换空间分配了 30 个驱动器,留下 6 个 SSD 用于存储空间 RAID5 输出卷。这种方法的一个巨大优势出现在输出阶段,我们不会像第一个 10T Pi 迭代那样受到单个 100Gb 连接的速度的阻碍。虽然 JBOF 解决了驱动器总数问题,但它确实引入了一个限制:单个驱动器性能。
在具有直连 U.2 SSD 的服务器中,每个驱动器有四个 PCIe 通道。如果每个驱动器直接连接到主板,则相当于 96 个 PCIe 通道可容纳 24 个 SSD。 JBOF 的总带宽受到它可以连接回主机的 PCIe 通道数量的限制。
在本例中,我们使用了两个 PCIe 交换主机卡,将 JBOF 分成两组,每组 12 个 SSD。每组 12 个 SSD 共享 16 个 PCIe 通道。虽然在将 SSD 连接到我们的主机方面仍然具有相当大的优势,但我们确实遇到过通过 JBOF 运行的交换驱动器落后于直接连接到服务器的驱动器的情况。这不是 JBOF 的错。这只是技术限制,或者更确切地说是服务器可以使用的 PCIe 通道数量的限制。
精明的读者可能想知道为什么我们在这次运行中停在 36 个 SSD,而不是增加到 40 个。这是一个有趣的故事。在许多服务器中,可寻址 PCIe 空间都有其限制。在我们的例子中,在 38 个驱动器数量中,最后一个 SSD 占用了 USB 芯片组的 PCIe 地址,我们失去了对服务器的控制。为了安全起见,我们将其减少到 36 个 SSD,这样我们仍然可以进入 BIOS 或登录服务器。突破界限确实会带来一些令人惊讶的发现。
诊断洞察力和解决方案
我们遇到的两个主要挑战中的第一个是与性能相关的。我们发现的是 阿姆达尔定律 在行动中。当 y-cruncher 在大型交换模式操作期间似乎“挂起”在我们的 256 核 AMD Bergamo 系统上时,出现了一个特殊问题。这种挂起的特点是缺乏 CPU 和磁盘 I/O 活动,挑战了软件行为的传统预期。这导致了对并行计算和硬件交互的复杂性的深入研究。
发现过程表明,该程序并未真正挂起,而是以严重有限的容量运行,在庞大的 256 核设置中以单线程运行。这种不寻常的行为引发了人们对阿姆达尔定律潜在影响的质疑,特别是因为所涉及的操作不是计算密集型的,并且不应在配备 1.5 TB RAM 的系统上造成严重延迟。
调查 当这个问题在消费者桌面上复制时,出现了意想不到的转变,凸显了阿姆达尔定律的严重影响,即使在不太广泛的系统上也是如此。这导致对根本原因进行了更深入的检查,发现了 Zen4 架构特有的 CPU 危险,涉及超级对齐及其对内存访问模式的影响。
在 AMD 处理器上,代码中的循环加剧了这个问题,由于其简单的性质,该循环的执行速度应该比观察到的要快得多。根本原因似乎是 AMD 的加载存储单元对内存别名处理效率低下。要解决这一复杂问题,既需要使用 AVX512 对循环进行矢量化来减轻超级对齐风险,又需要通过增强并行性来解决阿姆达尔定律导致的速度下降问题。这种综合方法不仅解决了眼前的问题,而且还对 y-cruncher 的计算过程进行了重大优化,为高性能计算环境中解决类似挑战奠定了先例。
下一个问题是在计算的最后步骤中遇到的,计算会意外停止,并且无法提供有关崩溃原因的信息。 Alexander Yee 获得了远程访问权限,这是十多年来第一次需要开发人员的直接干预来完成 Pi 记录。
我们没有参与此诊断过程,但 N512 乘法算法的 AVX63 代码路径中存在严重的浮点算术错误。 亚历山大能够远程诊断,提供固定的二进制文件,并从检查点恢复,最终在实施关键软件修复后成功计算。
反思与前进
这一努力说明了高性能计算的复杂性和不可预测性。解决这些挑战创造了新的 Pi 计算记录,并为软件开发和测试方法提供了宝贵的见解。最新的 y-cruncher 版本 v0.8.4 修复了已发现的问题,有望增强未来计算的稳定性。
将 Pi 计算到 105 万亿位数字绝非易事。它涉及细致的规划、优化和执行。 StorageReview 团队结合开源和专有软件,优化了算法过程,以充分利用硬件的功能,减少计算时间并提高效率。
Solidigm QLC SSD 凭借 PCIe Gen4 饱和读取性能和高达 61.44TB 的行业领先容量,提供令人难以置信的结果。 Solidigm 战略规划和营销副总裁 Greg Matson 表示:“想象一下这些驱动器可以在高性能计算或人工智能密集型应用中实现什么。”我们很高兴 Solidigm 的 SSD 能够为 Storagereview 计算 pi 的第二次破纪录尝试提供动力。他们的努力证明了 Solidigm 存储驱动器的真正功能,为数据密集型人工智能应用打开了一个充满可能性的世界。”
结论
Pi 的 105 万亿位数字的运行比我们预期的要复杂得多。反思一下,我们应该预料到会遇到新的问题;毕竟,我们正在完成一项以前从未完成过的计算。但随着 100 万亿次计算使用更多的“管道胶带和铁丝网”配置完成,我们认为我们已经完成了。最终,大家齐心协力才让这台设备冲过终点线。
虽然我们与合作伙伴一起为这一破纪录的成绩感到高兴,但我们必须问:“这到底意味着什么?” Pi 的 5 万亿位数字可能不会对数学产生巨大的影响。尽管如此,我们仍然可以在计算工作负载和支持它们的现代底层硬件的需求之间划清界限。从根本上来说,这项工作反映出,无论是企业数据中心集群还是大型 HPC 安装,正确的硬件都至关重要。
对于 Pi 计算,我们完全受到存储的限制。更快的 CPU 将有助于加速数学计算,但许多新世界纪录的限制因素是盒子中的本地存储量。对于这次运行,我们再次利用 Solidigm D5-P5316 30.72TB 固态硬盘 帮助我们在系统中获得略多于 1.1PB 的原始闪存。这些 SSD 是我们能够突破之前记录并达到 105 万亿 Pi 位数字的唯一原因。
不过,这确实提出了一个有趣的问题。我们的许多追随者都知道 Solidigm D61.44-P5 中的 5336TB SSD 高达 30.72 TB D5-P5430 SSD 有多种外形尺寸和容量可供选择。我们已经审查了这些驱动器,并有许多社交媒体帖子展示了这些令人惊讶的密集驱动器。其中 32 个 SSD 的存储容量接近 2PB,人们可能想知道 105 万亿位数的 Pi 的世界最大容量还能维持多久。我们想思考一下,不会太久。
已知最大的 Pi 十进制数字
1432360875 9463978314 2999186657 8364664840 8558373926:数字到 105,000,000,000,000
参与 StorageReview
电子报 | YouTube | 播客 iTunes/Spotify | Instagram | Twitter | TikTok | RSS订阅