中国科学院半导体研究所汪林望:在曙光超级计算机上对第一性原理计算软件LS3DF进行1000万个硅原子模拟

news2024/11/19 9:30:12

编者荐语:

面对纳米材料等大体系时,电荷补丁法可以计算几千甚至上万原子, 但是电荷补丁法作为非自洽计算,不能给出原子受力,也不能用来弛豫原子坐标。面对摩尔条纹或线性位错等问题,我们需要弛豫原子的坐标,为解决这些问题,龙讯旷腾推出LS3DF线性标度法。

以下文章来源于计算机科学技术学报JCST ,作者JCST

JCST于2024年第1期出版一篇关于在国产超算上实现大规模第一性原理计算的研究论文。该论文提出了一种可大规模扩展且高效的第一性原理计算软件LS3DF的实现,使其能够在曙光超级计算机上处理高达1000万个硅原子的系统,并达到34.8 PFLOPS的峰值性能。本篇论文由来自中国科学院计算技术研究所、中国科学院大学、中国科学院半导体研究所、盐城工学院和华为技术有限公司多位作者共同撰写。

论文信息

标题:10-Million Atoms Simulation of First-Principle Package LS3DF on Sugon Supercomputer

作者:Yu-Jin Yan (严昱瑾), Hai-Bo Li (李海波), Tong Zhao (赵曈), Lin-Wang Wang (汪林望), Lin Shi (石林), Tao Liu (刘涛), Guang-Ming Tan (谭光明), Wei-Le Jia (贾伟乐), Ning-Hui Sun (孙凝晖)

单位:中国科学院计算技术研究所;中国科学院大学;华为技术有限公司;中国科学院半导体研究所;盐城工学院

关键词:深度计算单元,电子结构,高性能计算,线性标度三维分块算法(LS3DF),曙光超级计算机

引用信息:Yan YJ, Li HB, Zhao T et al. 10-million atoms simulation of first-principle package LS3DF on Sugon supercomputer. JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY 39(1): 45−62 Jan. 2024. DOI: 10.1007/s11390-023-3011-6

研究动机

随着摩尔定律的推进,半导体器件的尺寸缩小至纳米级别。在这种尺度下,量子效应对半导体器件仿真中的影响变得至关重要,因此带来了大规模电子结构计算的挑战。当前电子结构计算主要依赖密度泛函理论,但该方法在处理大规模系统时面临着高昂的计算成本。

为应对这一问题,本研究在国产曙光超级计算机上实现了一种大规模、高效的线性标度三维分块算法(LS3DF)。该文通过对算法和系统层面的优化,成功在一千万原子体系的模拟中表现出极佳的可扩展性和良好的计算效率,为仿真模拟下一代半导体器件提供关键支持。

研究方法

本研究通过一系列算法级和系统级优化方法,成功实现了LS3DF方法的高效率和大规模应用。

算法层面,对原有的共轭梯度迭代算法进行了优化,改进了迭代方向,从而加快了算法的收敛速度。此外,还采纳了混合精度的计算策略以缩短计算时间,同时通过理论分析保证了算法准确性的不受影响。

系统层面,引入粗粒度并行处理方法,针对原先算法的细粒度划分导致大量通信代价的问题,如图1所示,通过改变算法的划分粒度以减少数据传输所需的时间。如图2所展示的,本文通过实施多流三维快速傅里叶变换方法,可更充分利用曙光深度计算单元的计算资源。此外,本文还采取了其它系统优化措施,例如核融合和冗余计算移除,进一步提高异构计算机的计算效率。

通过以上两个层面的优化策略,LS3DF方法能够有效处理高达1000万个硅原子的复杂系统,并在峰值性能上取得显著提升。这项工作对于未来在更大规模超级计算机上实现整个半导体器件的电子结构模拟工作具有深远的意义。

图1. LS3DF方法的细粒度并行与粗粒度并行

图2. 多流三维快速傅里叶变换方法

实验和结果

本研究首先对LS3DF算法在小规模体系上的效率进行了测试,并在图3中展示了结果。经过优化的LS3DF算法在效率上比原始异构版本累计提高了3.1倍。

同时,本文在大规模体系上进行了算法的扩展性测试。图4展示强扩展性结果:当计算一百万原子体系的节点从400个增加到3200个时,并行效率仍能维持在81%。图5则展示了弱扩展性结果:当计算原子体系规模从8000增至1000万(计算节点相应从3增加至3800)时,算法的扩展效率达到了98.72%,并实现了峰值性能的21.2%(34.8 PFLOPS)。

图3. 8000个硅原子系统的逐步优化及其相应的加速效果

图4. 一百万硅原子系统的强扩展性

图5. AB_CG算法的弱扩展性结果

结论和展望

本文专注于大规模线性标度三维分块算法LS3DF的高效实现,成功将电子结构计算的规模扩展至千万原子级别,与当前半导体器件的规模相匹配。文章中提出的优化策略同样适用于未来的E级计算机,这为未来半导体器件的全面模拟计算提供了重要的技术基础。

作者简介

严昱瑾,中国科学院计算技术研究所,博士生,研究方向包括高性能计算、大规模并行计算和第一性原理计算。

李海波,华为技术有限公司与中国科学院计算技术研究所联合培养博士后,研究方向包括数值线性代数、计算逆问题和机器学习。

赵曈,中国科学院计算技术研究所,特别助理研究员,研究方向包括人工智能基础理论、高性能计算和博弈论。

汪林望,中国科学院半导体研究所,首席科学家,研究方向包括开发“ab initio”电子结构计算方法,并将其应用于材料设计和发现。

石林,盐城工学院,副教授,研究方向包括第一原理计算和 III-V 半导体。

刘涛,中国科学院计算技术研究所,工程师,研究方向包括高性能计算、机器 学习和人工智能的科学应用。

谭光明,中国科学院计算技术研究所,研究员,研究方向包括并行算法设计与分析、并行编程与优化、计算机体系结构、生物信息学和大数据。

贾伟乐,中国科学院计算技术研究所,研究员,研究方向包括高性能计算、人工智能和大规模并行计算。

孙凝晖,中国科学院计算技术研究所,研究员,中国工程院院士,研究方向包括并行处理架构、分布式操作系统、性能评估和文件系统。

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

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

相关文章

javaSwing模拟写字板

一、摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并且涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此简易JAVA写字板程序,使用Java程序编…

Object Detection--Loss Function:从IoU到CIoU

本篇总结Loss Function中的IoU系列代码。 1. IoU 交并集,两个框交集面积除以并集面积。(论写写画画的重要性)(找原文看看) """ box1[x1, y1, x2, y2] box2[x1, y1, x2, y2] return iou ""…

Qt 作业 24/3/26

1、实现闹钟 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTime> #include <QLineEdit>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widget(QWidget *parent …

python(django)之单一接口管理功能后台开发

1、创建数据模型 在apitest/models.py下加入以下代码 class Apis(models.Model):Product models.ForeignKey(product.Product, on_deletemodels.CASCADE, nullTrue)# 关联产品IDapiname models.CharField(接口名称, max_length100)apiurl models.CharField(接口地址, max_…

关键技术解析:CH-99除硼树脂在超纯水制备中对硼高效去除的应用实践与性能优势

超纯水(UPW)是科技和研究领域的关键资源&#xff0c;其中硼元素的去除对于保证其品质至关重要。本文将介绍一种高效的除硼技术——Tulsimer CH-99树脂&#xff0c;并阐述其在超纯水制备中的应用及优势。 首先&#xff0c;让我们了解超纯水的制备过程。超纯水是通过一系列精密的…

JAVA面试大全之集合IO篇

目录 1、集合 1.1、Collection 1.1.1、集合有哪些类&#xff1f; 1.1.2、ArrayList的底层&#xff1f; 1.1.3、ArrayList自动扩容&#xff1f; 1.1.4、ArrayList的Fail-Fast机制&#xff1f; 1.2、MAP 1.2.1、Map有哪些类&#xff1f; 1.2.2、JDK7 HashMap如何实现…

二进制日志备份与恢复

二进制备份是 MySQL 数据库备份的一种方式&#xff0c;它通过记录数据库的所有更改操作&#xff0c;以二进制格式保存&#xff0c;实现对数据库的增量备份和恢复。binlog_format 是 MySQL 中用来指定二进制日志格式的参数&#xff0c;有三种常见的选项&#xff1a;STATEMENT、R…

就业班 第二阶段 2401--3.26 day6 Shell初识 连接vscode

远程连接vs_code可能出现的问题 C:\Users\41703\.ssh 验证远程主机的身份&#xff0c;如果连不上vscode&#xff0c;可以尝试删除这里面的公钥代码。 重新安装那个扩展&#xff0c;排除扩展本身的问题 谁连过我&#xff0c;并操作了什么 curl https://gitea.beyourself.org.c…

pytorch反向传播算法

目录 1. 链式法则复习2. 多输出感知机3. 多层感知机4. 多层感知机梯度推导5. 反向传播的总结 1. 链式法则复习 2. 多输出感知机 3. 多层感知机 如图&#xff1a; 4. 多层感知机梯度推导 简化式子把( O k O_k Ok​ - t k t_k tk​) O k O_k Ok​(1 - O k O_k Ok​)起个别名…

HeidiSQL导出SQL文件

目前开发阶段的数据库可视化工具逐渐转为了HeidiSQL&#xff0c;本文讲一讲导出到sql文件的小细节&#xff0c;给自己做个记录补充。 安装或数据库可视化工具比较可参考&#xff1a; windows下全免费手动搭建php8mysql8开发环境及可视化工具安装 导出 原来用Navicat的时候&am…

Salesforce宣布将停用Workflow Rules和Process Builder!

在近期的公告中&#xff0c;Salesforce透露在2025年12月31日之后将不再支持Workflow Rules和Process Builder。 Salesforce敦促用户在截止日期前将其自动化流程迁移到Flow Builder&#xff0c;以确保不间断的支持和漏洞修复。此举正值Salesforce将重点转向更现代、可扩展、低代…

Go语言学习Day4:函数(上)

名人说&#xff1a;莫愁千里路&#xff0c;自有到来风。 ——钱珝 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 1、函数的概念与定义①函数的概念②函数的具体定义③多返回值 2、函数参数与作用域①可变参数②形…

【Ubuntu】在Ubuntu中实现酣畅淋漓的性能释放:调整CPU频率

一、问题描述 在机器人开发中&#xff0c;经常需要运行诸如 SLAM 和 Planning 等 CPU 密集型程序&#xff0c;这些程序需要充分发挥计算机的性能&#xff0c;以确保算法的高效运行。然而&#xff0c;默认情况下&#xff0c;Ubuntu 通常将 CPU 设置为节能模式&#xff0c;导致 …

设计模式之组合模式解析

组合模式 1&#xff09;概述 1.定义 组合多个对象形成树形结构以表示具有“整体—部分”关系的层次结构。 组合模式对单个对象&#xff08;即叶子对象&#xff09;和组合对象&#xff08;即容器对象&#xff09;的使用具有一致性&#xff0c;组合模式又称为“整体—部分”(…

发送请求- header配置

请求头里是客户端的要求&#xff0c;把你的诉求告诉服务端&#xff0c;服务端按照你的要求返回数据 &#xff0c; 请求header需要严格全配置&#xff0c;把请求header全部传入&#xff0c;不能频繁访问&#xff0c;让后端知道它是正常请求 一般只配置User-Agent和Content Typ…

docker 搜索镜像命令

docker 搜索镜像命令 命令格式 docker search 关键字 如&#xff1a;docker centos 结果 result :

JVM(三)——字节码技术

三、字节码技术 1、类文件结构 一个简单的 HelloWorld.java package com.mysite.jvm.t5; // HelloWorld 示例 public class HelloWorld {public static void main(String[] args) {System.out.println("hello world");} }执行 javac -parameters -d . HellowWorld.…

零拷贝技术、常见实现方案、Kafka中的零拷贝技术的使用、Kafka为什么这么快

目录 1. 普通拷贝 2. 数据拷贝基础过程 2.1 仅CPU方式 2.2 CPU&DMA方式 3.普通模式数据交互 4. 零拷贝技术 4.1 出现原因 4.2 解决思路 4.2.1 mmap方式 4.2.2 sendfile方式 4.2.3 sendfileDMA收集 4.2.4 splice方式 5. Kafka中使用到的零拷贝技术 参考链接 本…

如何使用 ChatGPT 进行编码和编程

文章目录 一、初学者1.1 生成代码片段1.2 解释功能 二、自信的初学者2.1 修复错误2.2 完成部分代码 三、中级水平3.1 研究库3.2 改进旧代码 四、进阶水平4.1 比较示例代码4.2 编程语言之间的翻译 五、专业人士5.1 模拟 Linux 终端 总结 大多数程序员都知道&#xff0c;ChatGPT …