StorageReview实验室团队利用先进的计算系统,成功将π计算至202.112.290.000.000位,刷新了自己之前保持的105万亿位的世界纪录。这一成就突显了现代高性能计算(HPC)和精心设计的商用硬件平台的卓越能力。
关键技术组件:
- 计算平台: 搭载Intel Xeon 8592+处理器,提供强大的计算能力。
- 存储解决方案: 使用了28块Solidigm P5336 61.44TB NVMe SSD,总存储容量接近1.5PB,展现了极高的存储密度和带宽。
- 计算周期: 近乎连续的85天计算,显示了系统的稳定性和持续运行能力。
技术挑战与解决方案:
- 内存与存储限制: 面对大规模数字运算的内存需求,团队通过优化的算法和高效的存储解决方案克服了这一难题。计算π所需的大量算术操作,特别是乘法,对内存访问速度提出了极高要求,团队通过高密度SSD和优化的I/O管理来缓解这一压力。
- 算法选择: 利用Chudnovsky算法,该算法基于快速收敛级数,适合处理大量数字计算,且对存储和计算资源的需求进行了有效平衡。
- 系统设计: 专门定制的Dell PowerEdge R760服务器,配备24个NVMe直连驱动器背板,优化了I/O性能,减少了外部硬件依赖,提高了系统的整体稳定性和效率。
关键发现:
- 存储密度与带宽的重要性: QLC SSD虽在速度上可能不占优势,但其高密度和并行读写能力在大规模数据处理任务中展现出优势,成为本次计算的关键因素。
- 直接连接NVMe的优势: 直接连接的NVMe存储解决方案提供了最高水平的性能,确保了计算过程中数据交换的高速度,成为计算瓶颈的主要解决方式。
- 系统集成与优化: 系统级的优化,包括CPU到存储的匹配比例(2:1驱动器到计算比率),以及对硬件的直接控制(通过y-cruncher软件),对于实现最佳性能至关重要。
结论:
StorageReview实验室的这一壮举不仅代表了π计算领域的重大突破,也为高性能计算、大规模数据存储与处理技术的研究提供了宝贵经验。通过精心设计的硬件配置和算法优化,团队展示了如何克服传统内存与存储限制,实现前所未有的计算成就。未来,此类技术进步有望促进科学、工程等领域内更多创新应用的发展。
在探索测试大容量SSD的有趣方法时,自然而然地想到了在CPU和系统评测中常用的工具:y-cruncher。当进行大量计算并使用交换空间时,所需的空间大致是数字大小的4.7:1,这意味着计算100万亿位π大约需要470TiB的空间。简而言之,y-cruncher采用的Chudnovsky算法基于模函数理论和椭圆曲线理论衍生出的一个快速收敛序列。该算法的核心是一个无限序列:
关于100万亿位和105万亿位π计算,最常见的疑问是:“这有什么大不了的?为什么需要这么久和这么多内存?”这个问题伴随着对开源软件及开发者Alex Yee编程能力的其他质疑。从系统层面来看,计算如此庞大的π数字,如100万亿位,需要大量空间,因为涉及到复杂的算术运算,尤其是大数乘法,这本身就要求大量的内存。最优的大数乘法算法大约需要4N字节的内存来处理N位数,大部分用作临时存储空间。计算过程中多次访问这些内存,使得整个过程更依赖于磁盘I/O而非CPU性能。
Chudnovsky公式因其在计算π的多位数字方面的广泛应用而闻名,它要求大量的算术运算,包括乘法、除法和平方等,这些通常归结为大规模的乘法操作。过去,超级计算机使用AGM(阿贝尔-戈德纳-马斯刻若尼)算法,尽管速度较慢,但易于实现且能借助多台机器的简单粗暴计算力。然而,现代技术进步已将瓶颈从计算能力转移到了内存访问速度上。
处理器中的算术逻辑单元(ALUs)和浮点运算单元(FPUs)处理这些大数乘法的方式类似于纸上演算,将其分解为更小、更易管理的操作。以前,π的计算主要受限于计算能力,但如今,计算能力已超过内存访问速度,使得存储和可靠性成为了创造π计算记录的关键因素。例如,在我们的128核Intel机器和256核AMD Bergamo之间,性能差异不大,重点转向了磁盘I/O效率。
Solidigm SSD在这些计算中发挥着关键作用,其重要性并非源自其内在的速度,而是其卓越的存储密度。消费级NVMe驱动器能在较小体积内存储高达4TB的数据,而企业级SSD则通过堆叠芯片进一步增加容量。尽管QLC NAND相比其他类型的闪存可能速度较慢,但密集型SSD中的并行性提供了更高的聚合带宽,使其非常适合大规模的π计算。
当我们面对超大数字运算,这些数字无法一次性装入系统内存时,计算机必须依靠软件算法来执行多精度算术。这些算法将大数分解成可管理的小块,并采用特殊技巧进行运算处理。这里,Solidigm P5336 61.44TB NVMe SSD 的重要性显现出来。y-cruncher 软件会利用这些可管理的数据块,首先在系统内存中累积它们,然后将这些数据块交换到临时存储空间(scratch drive space)中去。
需要注意的是,由于上述复杂公式的每一个部分都需要由大量的比特来表示,因此在进行数据交换时,我们需要大约4.7:1的空间比率。
y-cruncher 内置了一个硬盘空间需求估算器,即便这个标签还保留着“disk”的旧称,我们在当前以及过去的计算中发现它非常准确。尽管你可以使用HDD或其他对象存储来应对大容量需求,但在第一次尝试中我们就发现,这只是复杂方程中的一个因素。随着AI应用的兴起,如何在靠近计算设备的地方获得足够大且速度快的存储,成为了我们StorageReview日常工作中反复出现的主题。在这一计算过程中,交换空间的性能是最大的瓶颈。直接连接的NVMe存储提供了最高的性能选项,尽管某些方案可能在单个设备的吞吐量上更快,但我们使用的大型高密度QLC SSD阵列在总体上完全能满足这项任务的要求。
在消费者级硬盘和CPU性能方面,y-cruncher同样内置了基准测试功能,允许用户调整各种参数以找到最适配硬盘阵列的性能设置。这一点极为关键。上面的截图展示了这一基准测试为消费者系统提供的反馈信息,包括CPU处理速度和SSD性能指标。
尽管开发者Alex提供了详尽的文档,但经过数周的测试,我们发现让y-cruncher直接与硬盘交互是最佳方案。我们尝试过网络目标、通过SAS RAID卡连接的硬盘、NVMe RAID卡以及iSCSI目标。当将硬件控制权交给y-cruncher时,性能差异显著。iSCSI也表现出可接受的性能,但我们仅在输出文件阶段测试了它,这部分可以利用“直接I/O”进行交互。至于交换模式下的RAID代码,显然经过了深思熟虑,我们的测试结果及与开发者的交流表明,它能够以较低层级与硬盘直接协作,从而优化整体表现。