技术分析报告:StorageReview实验室打破π计算世界纪录

StorageReview实验室团队利用先进的计算系统,成功将π计算至202.112.290.000.000位,刷新了自己之前保持的105万亿位的世界纪录。这一成就突显了现代高性能计算(HPC)和精心设计的商用硬件平台的卓越能力。

关键技术组件:

  • 计算平台: 搭载Intel Xeon 8592+处理器,提供强大的计算能力。
  • 存储解决方案: 使用了28块Solidigm P5336 61.44TB NVMe SSD,总存储容量接近1.5PB,展现了极高的存储密度和带宽。
  • 计算周期: 近乎连续的85天计算,显示了系统的稳定性和持续运行能力。

技术挑战与解决方案:

  1. 内存与存储限制: 面对大规模数字运算的内存需求,团队通过优化的算法和高效的存储解决方案克服了这一难题。计算π所需的大量算术操作,特别是乘法,对内存访问速度提出了极高要求,团队通过高密度SSD和优化的I/O管理来缓解这一压力。
  2. 算法选择: 利用Chudnovsky算法,该算法基于快速收敛级数,适合处理大量数字计算,且对存储和计算资源的需求进行了有效平衡。
  3. 系统设计: 专门定制的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代码,显然经过了深思熟虑,我们的测试结果及与开发者的交流表明,它能够以较低层级与硬盘直接协作,从而优化整体表现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/867314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Unity navigation面板】

【Unity navigation面板】 Unity的Navigation面板是一个集成在Unity编辑器中的界面,它允许开发者对导航网格(NavMesh)进行配置和管理。 Unity Navigation面板的一些关键特性和功能: 导航网格代理(NavMesh Agent&…

Python爬虫获取视频

验证电脑是否安装python 1.winr输入cmd 2.在黑窗口输入 python.exe 3.不是命令不存在就说明python环境安装完成 抓取快手视频 1.在phcharm应用中新建一个项目 3.新建一个python文件 4.选择python文件,随便起一个名字后按回车 5.安装requests pip install requests 6.寻找需要的…

Beats:使用 Filebeat 从 Python 应用程序中提取日志

本指南演示了如何从 Python 应用程序中提取日志并将其安全地传送到 Elasticsearch Service 部署中。你将设置 Filebeat 来监控具有标准 Elastic Common Schema (ECS) 格式字段的 JSON 结构日志文件,然后你将在 Kibana 中查看日志事件发生的实时可视化。虽然此示例使…

【Python实战因果推断】23_倾向分3

目录 Propensity Score Matching Inverse Propensity Weighting Propensity Score Matching 另一种控制倾向得分的常用方法是匹配估计法。这种方法搜索具有相似可观测特征的单位对,并比较接受干预与未接受干预的单位的结果。如果您有数据科学背景,您可…

Python使用matplotlib绘制图像时,中文图例或标题无法正常显示问题

Python使用matplotlib绘制图像时,中文图例或标题无法显示问题解决方法 一、问题描述二、解决方法 欢迎学习交流! 邮箱: z…1…6.com 网站: https://zephyrhours.github.io/ 一、问题描述 Matplotlib库是Python中经常使用的绘图工…

【设计模式之美】策略模式实践:不同大小(采用不同的策略)文件进行排序

文章目录 一. 问题与解决思路二. 代码实现与分析1. 业务代码逻辑的架子2. 代码重构:使用策略模式来解耦代码逻辑 三. 进一步:满足开闭原则:使用注解或配置文件 设计原则和思想其实比设计模式更加普适和重要,掌握了代码的设计原则和思想&#…

如何注册微信公众号

如何注册微信公众号 如何注册一个微信公众号 😊📱摘要引言正文内容1. 准备工作内容定位和受众群体公众号名称和头像 2. 网页注册流程第一步:访问微信公众平台第二步:选择账户注册类型第三步:填写基本信息第四步&#x…

ChatGLM2-6B 运行代码解读(二)

目录 一、cli_demo.py 解读 3.1 transformers 3.2 AutoTokenizer.from_pretrained 函数 3.3 AutoModel.from_pretrained 函数 3.4 model.eval() 函数

树型结构数据存储实践

很多业务场景会遇到树形结构的数据,如公司的人员职级树、行政区划树等。 使用类似MySQL的数据库进行存储,需要将树形结构(二维)存储到行格式(一维)的db中。 本文介绍了树型结构数据存储的三种方式&#xf…

华为HCIP Datacom H12-821 卷27

1.单选题 IS-IS中地址的总长度最少为多少Byte? A、20 B、2 C、16 D、8 正确答案:D 解析: 地址总长度最长为13+6+1=20Byte,最短为1+6+1=8Byte。 2.多选题 下面哪些路由协议支持通过命令配置发布

Java视频点播网站

作者介绍:计算机专业研究生,现企业打工人,从事Java全栈开发 主要内容:技术学习笔记、Java实战项目、项目问题解决记录、AI、简历模板、简历指导、技术交流、论文交流(SCI论文两篇) 上点关注下点赞 生活越过…

[FreeRTOS 基础知识] 事件组 概念

文章目录 事件组 定义事件组 基本原理 事件组 定义 在实时操作系统(RTOS)中,事件组是一种用于任务间通信和同步的机制。事件组允许多个任务等待一个或多个事件的组合,当这些事件的组合满足特定条件时,任务可以被唤醒。…

vb.netcad二开自学笔记2:认识vs编辑器

认识一下宇宙第一编辑器的界面图标含义还是很重要的,否则都不知道面对的是什么还怎么继续? 一、VS编辑器中常见的图标的含义 变量 长方体:变量 局部变量 两个矩形块:枚举 预定义的枚举 紫色立方体:方法 橙色树状结构…

优惠券管理系统设计

优惠券管理系统的设计旨在高效地创建、分发、追踪和分析优惠券的使用情况,以促进销售、增强客户忠诚度并提升营销活动的效果。以下是设计一个高效优惠券管理系统的关键要素和步骤: 1. 需求分析与目标设定 明确业务目标:确定优惠券使用的具体…

shell中不常见的命令

** iconv 功能:将文件内容字符集转成其他字符集 常用选项: -l 列出所有已知的字符集 -f 原始文本编码 -t 输出编码 -o 输出到文件 -s 关闭警告 将文件内容转换 UTF8: # iconv -f gbk -t utf8 old.txt -o new.txt 将 csv 文件转换 GBK&…

直播电商如何实现分账?

随着直播电商的兴起,越来越多的企业开始选择通过直播平台来推广自己的产品。而在直播电商中,主播是非常重要的一环,他们的表现直接影响到产品的销售情况。因此,如何与主播合作,让他们更加积极地推广产品,成…

UE4_材质_材质节点_Fresnel

学习笔记,不喜勿喷,侵权立删,祝愿生活越来越好! 一、问题导入 在创建电影或过场动画时,你常常需要想办法更好地突显角色或场景的轮廓。这时你需要用到一种光照技术,称为边沿光照或边缘光照,它的…

Android动态设置系统音量最大值

产品需求 通过设定最大音量限制大屏声音输出,设置完后需要立即生效且需要记忆;以10%为递增状态,设置最大音量后,无论最大音量调节至多少百分比,音量条始终显示为100%(比如最大音量设置为80%,即…

Threejs环境、透视相机、坐标系、光源

文章目录 如何引入threejsnpm方式script方式script module方式 基本流程与坐标摄像机Geometry(几何体)和Material(材质)光源 如何引入threejs 对于很多刚刚上手threejs的朋友,可能第一步引入threejs就出问题了, 明明已经导入了,就是这样问题…

【搭建Nacos服务】centos7 docker从0搭建Nacos服务

前言 本次搭建基于阿里云服务器系统为(CentOS7 Linux)、Nacos(2.0.3)、Docker version 26.1.4 本次搭建基于一个新的云服务器 安装java yum install -y java-1.8.0-openjdk.x86_64安装驱动以及gcc等前置需要的命令 yum install …