• 【话题交流】云计算知识专题——看看大家云计算知识知多少
    本月话题:云计算知识专题随着IT技术的不断发展,知识的不断更新迭代,大家讨论讨论说说看看大家对云计算方面的知识掌握多少,看看大家对目前云计算的了解看看谁是知识小能手
  • XHR 和 Fetch方法小知识
    XHR与Fetch的定义和功能XHR(XMLHttpRequest)XHR,全称为XMLHttpRequest,是浏览器提供的一个原生API,用于在JavaScript中异步地发送HTTP请求。它最早由IE5引入,目的是在不刷新整个页面的前提下,与服务器交换数据。XHR允许开发者发送异步请求,即在后台执行请求,而不会阻塞页面的其他操作。XHR提供了对请求和响应的完全控制,包括设置请求头、请求体、监听请求状态变化等功能。Fetch APIFetch API是ES6中新增的全局函数,提供了一种新的、现代的、基于Promise的异步网络请求方法。Fetch API的设计理念是为了解决XHR的一些缺陷,提供更简洁易用的API。Fetch返回一个Promise,使得异步编程更加简洁,易于理解和维护。Fetch API支持跨域请求,提供了更好的CORS支持,并且可以通过Promise的then和catch方法来处理响应。XHR与Fetch的使用方法XHR的使用方法使用XHR发送请求的基本步骤包括创建XHR对象、打开请求、设置请求头部、发送请求、处理响应等。XHR对象提供了诸如open()、setRequestHeader()、send()、onreadystatechange等方法,以及responseText、responseXML等属性,以便开发者可以精确控制请求的每一个环节。Fetch的使用方法Fetch的使用则更加简洁,只需传入URL即可发起请求,并通过返回的Promise对象来处理响应。Fetch支持链式调用,例如可以使用.then()和.catch()来依次执行多个回调函数。Fetch还支持.json()、.text()等方法来解析响应数据。XHR与Fetch的区别特性XHRFetch对象类型XMLHttpRequest对象Promise对象请求取消支持 abort() 方法不支持原生的请求取消响应类型处理通过responseType属性设置需要手动解析响应进度监听支持onprogress事件不支持Cookies处理自动携带默认不携带,需手动设置错误处理出现错误时会reject Promise只在网络错误时reject Promise跨域请求需要手动设置withCredentials自动处理跨域请求语法较为复杂,需要手动设置请求头简洁,链式调用兼容性较好,支持旧版本浏览器主要是现代浏览器以上表格总结了XHR和Fetch在使用上的主要区别。XHR适合需要精细控制请求和响应细节的场景,而Fetch则适合追求简洁代码和现代开发实践的项目。结论综上所述,XHR和Fetch都是用于发起HTTP请求的重要工具,它们各自有不同的优势和使用场景。XHR因其历史悠久和强大的功能,在一些旧项目中仍有广泛的应用。而Fetch以其简洁的语法和现代的Promise支持,逐渐成为了新项目的首选。开发者可以根据具体的项目需求和个人喜好,选择最适合的请求方式。Fetch API 和 XHR(XMLHttpRequest) 都是用于向服务器发送网络请求并获取数据的技术,它们有一些相同和不同点:    Fetch API 使用 Promise 和 Response/Request 对象处理请求和响应,而 XHR 使用事件和 XMLHttpRequest 对象处理请求和响应。    Fetch API 支持流式响应处理,XHR 不支持。    Fetch API 更易于使用和学习,代码通常更简洁,而 XHR 的语法和实现比较复杂,需要编写一些回调函数。    Fetch API 支持跨域请求判断更为严格,需要服务器进行 CORS 配置,XHR 则有 CORS 跨域请求的设置和 JSONP 实现。    在浏览器中使用 Fetch API 绕过了原始的怪异行为和安全风险,如 XSS 安全漏洞,XHR 则需要进行一些额外的配置和注意事项来防止这些安全问题。
  • Struts2框架知识分享
    Struts2 是 Apache 软件组织推出的一个相当强大的 Java Web 开源框架,本质上相当于一个 servlet。Struts2 基于 MVC 架构,框架结构清晰。通常作为控制器(Controller)来建立模型与视图的数据交互,用于创建企业级 Java web 应用程序      Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2是一个基于MVC设计模式的Web应用框架,大家可以看看之前分享过的一篇介绍什么是MVC:https://bbs.huaweicloud.com/forum/thread-02109154787690725011-1-1.htmlStruts2框架概述Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,由Apache软件基金会维护,目的是简化Web应用的开发过程。Struts2的核心组件包括模型(负责数据和业务逻辑)、视图(负责用户界面展示)和控制器(处理用户输入并调用模型和视图)。Struts2框架的特点MVC架构:Struts2采用MVC架构,将应用程序分成模型、视图和控制器三个部分,有助于代码的解耦和模块化开发。轻量级:Struts2作为一个轻量级框架,不会给应用带来过多负担。灵活性:Struts2提供了丰富的配置选项,允许开发者根据具体需求调整框架。社区支持:Struts2拥有庞大的社区,提供丰富的文档和资源支持。Struts2框架的应用场景Struts2广泛应用于电子政务、电子商务、内容管理系统等多种Web应用程序中。Struts2框架的执行流程请求拦截:用户发起请求后被Struts2的核心过滤器(如StrutsPrepareAndExecuteFilter)拦截。Action映射:根据struts.xml配置文件中的映射关系,将请求映射到相应的Action类。Action处理:调用Action类中的execute方法处理请求,该方法通常返回一个结果视图。结果呈现:根据Action返回的结果类型,如JSP页面或FreeMarker模板,呈现给用户。Struts2框架的优势易于维护:MVC设计模式使得代码结构清晰,易于维护。丰富的标签库:Struts2提供丰富的标签库,简化JSP页面开发。强大的拦截器:拦截器提供了数据校验、日志记录等功能。灵活的扩展性:Struts2支持通过插件扩展功能。Struts2框架的未来趋势人工智能集成:预计Struts2将与AI技术集成,增强数据分析能力。移动端优化:Struts2将加强移动端支持,提升用户体验。云计算应用:Struts2将探索云计算应用,优化资源利用。Struts2框架的实际应用案例在实际开发中,Struts2框架常用于处理用户注册、登录、信息发布等业务逻辑。例如,用户提交注册信息后,Struts2框架会拦截请求,根据配置文件找到对应的Action类处理请求,并返回成功或失败的视图。结论Struts2框架因其轻量级、灵活性和强大的社区支持,在Java Web开发中占据了重要地位。它不仅简化了开发过程,还提供了丰富的功能和易于维护的代码结构。随着技术的发展,Struts2将继续集成新技术,优化现有功能,以适应不断变化的Web开发需求。Struts2详细工作流程?     a.浏览器发出welcome.action请求     b.请求到达Struts的Filter控制器(由于web.xml配置)c.Struts控制器判断请求类型,如果是/welcome.action或/welcome格式请求,将调用struts.xml配置,寻找对应的Action组件     d.调用Action组件的execute方法处理请求,最后返回一个String视图标识     e.Struts控制器根据视图标识寻找相应的JSP(struts.xml中result配置)     f.调用JSP视图生成响应界面给浏览器显示。Struts2控制流程?         1)请求到来         2)创建ValueStack(Action放栈顶),进行初始化         3)调用拦截器Interceptor,在拦截器中是可以访问ValueStack的         4)调用Action,执行execute()方法         5)调用Result,Result负责把数据显示给用户         6)最后到页面,通过标记库(Taglib)取出数据       Struts2中常用的集中Result组件?    1)JSP响应         dispatcher :采用请求转发方式调用JSP组件响应。         redirect:采用请求重定向方式调用JSP组件响应。(在重定向后,原request和action都被销毁掉,因此在JSP获取不到值)    2)Action响应         redirectAction:采用重定向方式发出一个*.action请求         chain:采用转发方式发出一个*.action请求    3)流响应          典型功能:验证码和下载。          stream:可以将Action中的一个InputStream类型属性以流方式响应输出。    4)JSON响应           负责对Ajax请求进行数据响应。          json:可以将Action中的一个属性或多个属性以json格式响应输出        (注意:使用前需要引入struts-json-plugin.jar,然后将<package>元素的extends设置成"json-default")
  • MVC知识分享
    MVC模式是什么?MVC(Model-View-Controller)模式是一种软件设计模式,用于将应用程序的数据、业务逻辑和用户界面分离,以便于提高代码的可维护性和可扩展性。在MVC模式中,通常包含以下三个主要组成部分:Model(模型):负责处理数据和业务逻辑,通常包含数据库对象的实体类以及一些用于存储非数据库表完整相关的VO对象。View(视图):负责展示数据,通常包含用户界面相关的代码,如HTML、CSS、JS等。在前后端分离的项目中,后端的视图文件可能已经迁移到前端项目中。Controller(控制器):负责接收用户输入,调用模型和视图去完成用户的请求,通常包含接收客户端请求、获得请求数据和将准备好的数据响应给客户端的代码。MVC模式的优缺点MVC模式的优点包括:关注点分离:将数据、业务逻辑和界面显示分离,降低耦合度。易于维护:每个组件负责特定的任务,便于单独开发和维护。可扩展性:可以独立地替换或更新模型、视图或控制器。然而,MVC模式也有其缺点:可能增加复杂性:对于简单项目,引入MVC可能会增加不必要的复杂性。性能问题:如果不正确使用,可能会导致性能问题。MVC模式的使用场景MVC模式适用于需要清晰分离数据、业务逻辑和用户界面的大型应用程序开发。在现代Web开发中,MVC模式被广泛采用,例如在Java Web、Ruby on Rails、Laravel等框架中都有实现。(1) 什么是MVC?       MVC是一种设计思想,根据职责不同将程序中的组件分成以下3个部分。       V(View视图):负责与用户交互。将数据展现,或者是接收数据       M(Model模型):负责业务处理。业务模型,数据模型       C(Controller控制器):负责协同模型和视图工作。视图有请求调用模型处理,模型处理完毕调用视图响应。(2)为什么使用MVC?      MVC是一个非常优秀的设计思想,基于该思想架构程序,可以提高程序的结构灵活性,便于日后维护、扩展和升级。注意:下面内容助于理解:1)  一个模型可以被多个视图共享模型只负责输出数据,不关心数据的表现形式,同一仹数据,可以使用多个不同的视图展现给用户。模型只负责处理数据,不关心是谁在调用,可以使用多种不同的界面来调用模型。2)  方便测试    模型一般使用java 类来开发,在开发完成之后,可以立即测试。如果业务逻辑直接写在servlet里面,则需要部署在服务器上面才能测试,比较麻烦。3)  组件复用    控制器可以做成一个通用的模块。4)  代码好维护,利于分工协作。    按照 mvc 的思想,可以对程序迚行分层,一般划分成表示层(包括 v,c)、业务层(m中的业务逻辑部分)、持久层(m中的数据访问逻辑部分)。下一层的代码发生改变,只要接口不变,不会影响到上一层的代码。mvc的缺点1)  采用 mvc 以后,会增加代码量,相应的开发周期以及开发的成本会相应增加。2)  使用 mvc,需要良好的设计。如果设计不当,会增加开发的难度。在表示层Servlet中调用业务层代码的接口,当业务层发生改变时不影响Servelt ;在业务层Service中调用DAO的接口,DAO发生改变不影响Service和其上层 结论一般来说,如果一个程序需要良好的架构,需要良好的代码的可维护性及可扩展性,需要使用mvc思想来架构。反之,则不必使用。
  • nginx配置ssl和反向代理的配置代码
    Nginx是一款高性能的Web服务器和反向代理服务器,它不仅可以提供静态文件服务,还可以提供动态内容服务,如PHP、Python、Node.js等。在本文中,我们将介绍如何在Nginx中配置SSL证书和反向代理。一、配置SSL证书在生产环境中,为了保证用户与服务器之间的安全通信,我们需要为网站启用HTTPS。要在Nginx中启用HTTPS,我们需要首先获取一个SSL证书。证书可以从证书颁发机构(CA)购买,也可以使用Let's Encrypt免费获取。假设我们已经获得了一个名为your_domain.com.crt的证书文件,接下来我们需要将这个证书文件放到Nginx的配置目录中。然后,在Nginx的配置文件中添加以下内容:server { listen 80; server_name your_domain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name your_domain.com;ssl_certificate /path/to/your_domain.com.crt; ssl_certificate_key /path/to/your_domain.com.key; # 其他配置...}在上面的配置中,我们首先创建了一个监听80端口的服务器块,将所有HTTP请求重定向到HTTPS。然后,我们创建了一个监听443端口的服务器块,加载SSL证书和密钥,并指定HTTPS协议。二、配置反向代理反向代理是Nginx的一个重要功能,它可以将客户端的请求转发到后端的多个服务器,从而实现负载均衡和高可用性。在Nginx中,我们可以使用proxy_pass指令来实现反向代理。假设我们有一个名为backend的后端服务器组,其中包含两个后端服务器:backend1.example.com和backend2.example.com。我们希望将客户端对your_domain.com的请求转发到这两个后端服务器。那么,我们可以在Nginx的配置文件中添加以下内容: http { upstream backend { server backend1.example.com; server backend2.example.com; }server { listen 80; server_name your_domain.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }}在上面的配置中,我们首先定义了一个名为backend的后端服务器组,包含两个后端服务器。然后,在server块中,我们使用location指令将请求转发到backend服务器组。同时,我们还设置了一些代理头信息,以便后端服务器能够获取到客户端的真实IP地址等信息。总结一下,本文介绍了如何在Nginx中配置SSL证书和反向代理。通过配置SSL证书,我们可以为网站提供安全的HTTPS通信;通过配置反向代理,我们可以实现负载均衡和高可用性。希望这些示例代码和说明对你有所帮助。
  • 几个好用的自动化测试工具总结
    自动化测试工具概述自动化测试工具在软件开发过程中扮演着至关重要的角色,它们能够显著提高测试效率、减少人为错误,并加快软件发布周期。随着技术的不断发展,市场上有许多优秀的自动化测试工具,如Selenium、TestComplete、Appium、JMeter等。每种工具都有其独特的优势和局限性,选择合适的工具对于确保软件质量和提升开发效率至关重要。自动化测试工具比较Selenium优势开源免费:Selenium是一个开源的自动化测试框架,无需支付额外费用即可使用。多语言支持:支持多种编程语言,如Java、C#、Python等,适应不同的开发环境。跨浏览器测试:几乎可以覆盖所有主流浏览器的自动化测试。社区支持:拥有庞大的社区支持,提供丰富的资源和插件。劣势上手难度:对于非编程背景的测试人员来说,上手难度较大。脚本维护:需要一定的编程知识才能编写和维护测试脚本。TestComplete优势用户友好:提供直观的界面和丰富的记录和播放功能,易于上手。对象识别机制:内置对象识别机制,自动识别元素变化,减少维护成本。GUI操作支持:支持桌面应用的GUI操作测试。劣势成本较高:作为一个商业工具,成本较高,可能不适合预算有限的团队。不开源:不开源可能导致某些定制需求难以满足。Appium优势跨平台:支持iOS和Android平台的自动化测试。原生应用和混合应用测试:可以对原生应用和混合应用进行自动化测试。劣势复杂UI交互处理:对于复杂的UI交互和动态内容的处理可能不够灵活。JMeter优势性能测试:提供性能测试报告,适合性能测试场景。脚本维护:测试脚本维护方便,易于复制和修改。劣势脚本灵活性:相对于直接使用编程语言进行接口测试,灵活性不足。报告能力:报告功能主要用于性能测试,配置过程复杂。总结在选择自动化测试工具时,应根据项目需求、团队技能和预算等因素综合考虑。Selenium和TestComplete各有所长,适用于不同的测试需求和团队环境。Selenium适合编程能力强、需要高度自定义测试脚本的团队,而TestComplete则适合需要快速上手的团队。Appium和JMeter则在移动应用和接口测试方面表现突出。最终目标是选择能够提高软件质量、加速产品上市的自动化测试工具,实现软件开发的双赢。
  • [技术干货] C++解决线性代数矩阵转置
    最近学习啦线性代数有关知识,于是想了一个利用数组解决线性代数中的矩阵转置问题思路      由线性代数相关知识点,如果将第一个矩阵的所有元素绕着一条从第一行第一列出发的右下角 45° 的射线做镜面反转,那么就可得到这个矩阵的一个转置矩阵。代码实现    用户需要自定义输入第一个数组(程序中的数组代表线性代数中的矩阵),也就是需要转置运算的数组 A,定义分三个步骤进行:1、定义该数组的行数2、定义该数组的列数3、定义该数组的元素然后被定义的数组经程序运算,输出转置后的数组 B。#include <stdio.h>int main(){ int i,j,i1,j1,a[101][101],b[101][101]; printf("please input the number of rows(<=100)\n"); scanf("%d",&i1); printf("please input the number of columns(<=100)\n"); scanf("%d",&j1); printf("please input the element\n"); for(i=0;i<i1;i++) for(j=0;j<j1;j++) scanf("%d",&a[i][j]); printf("array a:\n"); for(i=0;i<i1;i++) { for(j=0;j<j1;j++) printf("\t%d",a[i][j]); printf("\n"); } for(i=0;i<i1;i++) for(j=0;j<j1;j++) b[j][i]=a[i][j]; printf("array b:\n"); for(i=0;i<j1;i++) { for(j=0;j<i1;j++) printf("\t%d",b[i][j]); printf("\n"); } return 0;}​总结  主要运用了线性代数及二维数组的特性知识点1、 二维数组的第一个下标表示行数,第二个下标表示列数,每个下标都是从 0 开始;2、 类型说明符、数组名和常量表达式的意义与一维数组相同;3、 二维数组的元素在内存中是“按行存放”,即在内存中先顺序存放第一行的元素,再存放第二行的元素,以此类推;4、 可以把二维数组看作一种特殊的一维数组,其特殊之处在于它的每一个元素又是一维数组。5、把m*n矩阵的行列互换之后得到的矩阵,称为的转置矩阵性质对于矩阵A, B和标量c转置有下列性质:转置是自身逆运算。转置是从m × n矩阵的向量空间到所有n × m矩阵的向量空间的线性映射。注意因子反转的次序。以此可推出方块矩阵A是可逆矩阵,当且仅当AT是可逆矩阵,在这种情况下有 (A&#8722;1)T = (AT)&#8722;1。相对容易的把这个结果扩展到矩阵相乘的一般情况,可得出 (ABC...XYZ)T = ZTYTXT...CTBTAT。标量的转置是同样的标量。矩阵的转置矩阵的行列式等于这个矩阵的行列式。两个纵列向量a和b的点积可计算为如果A只有实数元素,则ATA是正半定矩阵。如果A是在某个域上,则A 相似于AT。
  • 存储服务2024.5月技术干货&资讯合集
    技术干货GaussDB(for Mongo) 的计算存储分离架构笔记https://bbs.huaweicloud.com/forum/thread-02120151664525860012-1-1.html在本地利用虚拟机搭建Hadoop大数据平台https://bbs.huaweicloud.com/forum/thread-0272151308744815014-1-1.htmlLinux无图形界面环境使用Python+Selenium实践https://bbs.huaweicloud.com/forum/thread-0236151308822754014-1-1.html华为OBS对象存储安全性详解https://bbs.huaweicloud.com/forum/thread-0204151309062863014-1-1.htmldatakit数据工具知识点分享https://bbs.huaweicloud.com/forum/thread-02120151309141664013-1-1.html物联网中的数据加密技术https://bbs.huaweicloud.com/forum/thread-0219152353935417027-1-1.html鸿蒙OS Next与安卓系统的比较https://bbs.huaweicloud.com/forum/thread-02127152353757480025-1-1.htmlFunctionGraph触发器的作用及使用原因https://bbs.huaweicloud.com/forum/thread-0220152353508496023-1-1.htmlGaussDB(DWS)处理高并发访问https://bbs.huaweicloud.com/forum/thread-0297152097629359008-1-1.htmlSSH 组合框架模式小知识分享https://bbs.huaweicloud.com/forum/thread-0249152098389447009-1-1.html操作系统的目标和功能笔记分享https://bbs.huaweicloud.com/forum/thread-0249152098650335010-1-1.html资讯资讯|计算基础软件全栈智能,加速开发者原生创新https://bbs.huaweicloud.com/forum/thread-0266152352225862014-1-1.html资讯|以创新、人才、价值三要素,加速中国原生产业生态繁荣https://bbs.huaweicloud.com/forum/thread-0220152352377870022-1-1.html资讯|数智之城何以为美?探寻城市蝶变背后的数字“密码”https://bbs.huaweicloud.com/forum/thread-0219152352720955026-1-1.html
  • 物联网中的数据加密技术
    物联网中的数据加密技术概述物联网(IoT)作为一个由无数互联设备组成的庞大网络,正逐渐渗透至我们生活的方方面面。随着技术的迅猛发展,物联网设备所处理的数据量呈现爆炸性增长,这也使得数据的安全性成为了不容忽视的问题。在物联网中,数据加密技术扮演着至关重要的角色,它不仅能保护数据在传输过程中的机密性,还能确保数据的完整性和可用性。物联网中的安全威胁与挑战物联网设备的安全威胁主要来源于数据在传输过程中可能遭遇的窃听、篡改以及未经授权的访问。例如,智能家居系统中的摄像头、工业控制系统中的生产数据、甚至是智能交通系统中的车辆通信,都需要通过加密技术来保护个人隐私和敏感信息。加密技术的应用在物联网中,加密技术的应用十分广泛,包括但不限于以下几个方面:数据传输加密:使用SSL/TLS协议确保数据在网络中传输的安全性,防止数据被窃听或篡改。设备身份认证:通过X.509证书等技术实现设备身份的认证,确保设备间的通信安全。数据存储加密:对存储在物联网设备上的数据进行加密,以防数据泄露。远程访问控制:使用加密技术对远程访问物联网设备的通道进行保护,防止未授权访问。加密技术的选择在选择物联网中的加密技术时,需要考虑到算法的效率、安全性和适用性。对称加密算法如AES、DES因其速度快而被广泛使用,而非对称加密算法如RSA则因其安全性高而在密钥交换等场景中占有一席之地。此外,为了适应物联网设备的资源限制,轻量级加密算法也被提了出来,这类算法具有较低的计算复杂度和内存占用。物联网中的加密技术在物联网(IoT)中,数据传输的安全性至关重要,因为它涉及到个人隐私、商业秘密和国家安全等多个层面。为了确保数据传输的安全,加密技术发挥着关键作用。以下是一些在物联网中强化加密技术的方法:使用安全套接层(SSL)和传输层安全(TLS)协议:SSL和TLS是广泛应用于物联网的安全数据传输协议,它们基于公钥基础设施(PKI)和对称密钥加密算法,能够保护数据的机密性、完整性和身份认证。虚拟专用网络(VPN)技术:VPN技术可以在公共网络上建立一个加密的通信隧道,确保数据传输的机密性和完整性,避免数据在传输过程中被窃听和篡改的风险。数据加密传输:数据加密传输是指对数据进行加密处理,然后再进行传输,以确保数据传输的安全性。在物联网中,数据加密传输是一种保证数据传输安全的必要手段。其加密技术有很多种,包括对称加密、非对称加密、混合加密等。密钥管理和加密算法的选择:密钥管理是保证数据安全的关键环节,涉及到密钥的产生、存储、分发、更换和销毁等环节。有效的密钥管理系统能够确保密钥的安全性,防止密钥泄露或被滥用。此外,密钥生命周期管理也是确保系统安全的重要措施。加密技术的应用场景:在物联网领域,数据加密技术广泛应用于设备身份验证、数据传输、数据存储和远程访问控制等方面。例如,在智能家居系统中,用户的数据通信需要经过加密以保护个人隐私;在工业物联网中,生产数据的加密传输可避免敏感信息的泄露。加密技术的挑战与对策:随着物联网技术的快速发展,加密技术也面临着新的挑战,如密钥管理的复杂性、加密算法的局限性、缺乏统一的标准和规范等。为了应对这些挑战,需要简化证书认证流程并采用自动化的方式进行证书审核与管理,采用先进的加密技术和算法进一步提高数据安全水平。通过上述措施,可以有效地强化物联网中的加密技术,确保数据传输的安全性,保护用户数据不被未授权访问和篡改。随着技术的不断进步,未来的物联网加密技术将更加强大和可靠,以应对日益复杂的安全威胁。深入研究物联网中对称加密和非对称加密有什么区别及其各自的适用场景?对称加密与非对称加密的区别对称加密和非对称加密是两种常用的加密方法,它们在密钥管理、安全性和效率方面有所区别。对称加密密钥管理:对称加密使用同一个密钥进行加密和解密,因此密钥的分发和管理是一个重要挑战。安全性:对称加密的安全性依赖于密钥的保密性,如果密钥泄露,加密的信息就会被破解。效率:对称加密算法通常较快且高效,特别适合处理大量数据。非对称加密密钥管理:非对称加密使用一对密钥,即公钥和私钥。公钥用于加密信息,私钥用于解密。公钥可以公开分享,但私钥必须保密。安全性:非对称加密提供了更高级别的安全性,因为即使公钥是公开的,没有私钥也无法解密信息。效率:非对称加密的加密效率较低,尤其是在处理大量数据时。各自的适用场景对称加密的适用场景文件传输:对称加密适用于需要高速传输大量数据的场景,如文件加密、数据库加密。网络数据传输加密:对称加密也常用于网络数据传输加密等需要高速加密大量数据的场景。非对称加密的适用场景数字签名:非对称加密常用于数字签名,确保数据的完整性和来源。密钥交换:非对称加密用于安全地交换对称加密的密钥,如SSL/TLS协议中的密钥交换。身份验证:非对称加密支持第三方验证,即验证消息是否来自发送方。在实际应用中,对称加密和非对称加密往往结合使用,以达到既安全又高效的加密通信。例如,在HTTPS通信中,非对称加密用于安全地交换对称加密的密钥,之后的通信则使用对称加密来保证数据传输的效率.物联网设备在进行数据传输时通常使用哪些类型的加密算法?物联网设备在进行数据传输时通常使用以下几种类型的加密算法:对称加密算法对称加密算法使用相同的密钥进行加密和解密。常见的对称加密算法包括:Triple DES (3DES):一种数据加密标准,也称为三重数据加密算法(TDEA)。高级加密标准 (AES):例如使用256位密钥的AES-256。非对称加密算法非对称加密算法使用一对密钥,即公钥和私钥进行加密和解密。常见的非对称加密算法包括:RSA:一种广泛使用的非对称加密算法。数字签名算法 (DSA):用于验证消息的完整性和真实性。哈希算法哈希算法是一种将任意长度的消息压缩到固定长度摘要的算法,常用于消息认证、数字签名等领域。常见的哈希算法包括:MD5:一种较早的哈希算法,现在已不再推荐使用。SHA系列:包括SHA-1、SHA-256等,是目前更安全的哈希算法。数字证书数字证书是一种用于身份验证和信息加密的电子凭证,常用的数字证书有X.509证书等。物理层安全物理层安全是指利用物理特性实现信息安全,例如使用物理层加密技术将信号转换为不可解密的信号。这些加密算法可以用于保护设备之间的通信,防止信息泄露和攻击,从而提高物联网的信息安全性.物联网中密钥管理的常见挑战有哪些,以及如何解决?物联网中密钥管理的常见挑战物联网中的密钥管理面临多方面的挑战:设备多样性:物联网设备种类繁多,形态各异,这给密钥的管理和安全带来了一定的困难。资源限制:物联网设备通常资源有限,如何在有限的资源下实现有效的密钥管理是一个重要的问题。通信安全:如何保障物联网设备之间的通信安全,防止密钥的泄露和攻击,也是密钥管理需要解决的重要问题。密钥更新:在密钥更新过程中,如何确保更新的密钥安全、准确、完整的传输到所有设备是一个难题。密钥协商:在资源受限的设备上实现高效的密钥协商是一个挑战。现有的许多密钥协商协议在安全性、效率或可扩展性方面存在不足。解决方案针对上述挑战,一些解决方案被提出:轻量级加密算法:针对资源受限的设备,可以使用轻量级加密算法,如椭圆曲线密码学,这种算法可以在资源有限的环境中运行,同时提供足够的保护。分布式密钥管理:这种方法通过将密钥管理的责任分配给网络中的多个节点,以减轻单个节点的负担。例如,可以使用分布式密钥管理方案,如基于P2P的密钥协商协议,以提高网络的鲁棒性和安全性。安全协议:使用专门设计的安全协议可以应对各种安全威胁。例如,使用基于公钥的加密协议,可以在设备之间建立安全的通信通道,防止数据泄露和未经授权的访问。访问控制策略:为了更有效地控制对设备和数据的访问,可以使用基于属性的访问控制策略。例如,基于属性的访问控制模型可以根据设备的属性(如位置、类型等)来决定是否允许其访问特定的资源。未来研究方向未来的研究可能会关注以下几个方面:智能密钥管理:利用人工智能技术,使密钥管理更加智能化,能够自适应地应对各种复杂的网络环境和攻击。高效密钥管理:随着加密算法和密码技术的进步,提高密钥管理的效率,以适应物联网设备的高效运行。安全密钥管理:未来的密钥管理方案将更加注重安全性,包括使用更强大的加密算法,以及实施更为严格的安全策略,以保护物联网设备和数据的安全。结论综上所述,物联网中的数据加密技术是确保数据安全的关键。随着物联网技术的不断发展,加密技术也在不断地进化以应对新的安全挑战。无论是对称加密、非对称加密还是轻量级加密算法,都在各自的领域内发挥着重要作用。未来,随着技术的进一步发展,我们有理由相信会有更多高效、安全的加密技术出现在物联网领域,为我们的数据保驾护航。
  • 鸿蒙OS Next与安卓系统的比较
    系统架构差异鸿蒙OS Next与安卓系统在系统架构上有本质的区别。安卓系统是基于Linux内核的宏内核设计,而鸿蒙OS Next则是基于微内核设计。安卓系统的宏内核包含了操作系统绝大多数的功能和模块,这些功能和模块都具有最高的权限,一旦一个模块出错,整个系统就有可能崩溃。相反,鸿蒙OS Next的微内核仅包括了操作系统必要的功能模块,如任务管理、内存分配等,微内核的稳定性较高,即便其他模块出现问题,也不会对整个系统的运行造成阻碍。应用场景差异鸿蒙OS Next与安卓系统的应用场景也有较大的不同。安卓系统主要应用于手机、电视、智能穿戴设备等有限的场景。而鸿蒙OS Next则定位于“万物互联”,不仅可以应用于手机、平板、智能穿戴设备,还可以应用于智能家居、自动驾驶、工业应用等几乎所有能够接入物联网的智能设备。流畅度比较在流畅度方面,用户普遍反映升级到鸿蒙OS Next后的设备运行更为流畅。这是因为鸿蒙OS Next对安卓底层进行了优化,并使用了自主研发的方舟编译器,提升了系统的流畅度。相比之下,安卓系统在使用一段时间后,由于系统内产生的垃圾文件增多,可能导致性能下降,出现卡顿情况。总结综上所述,鸿蒙OS Next与安卓系统在系统架构、应用场景和流畅度方面均有明显差异。鸿蒙OS Next的微内核设计提供了更高的系统稳定性,而其广泛的应用场景和优化的流畅度则为其带来了更大的市场竞争优势。随着鸿蒙生态的不断发展和完善,鸿蒙OS Next有望在移动操作系统市场中占据一席之地,并为用户和开发者带来更好的体验和价值
  • FunctionGraph触发器的作用及使用原因
    触发器的作用FunctionGraph(以下简称FG)的触发器是一种事件驱动机制,它使得用户能够在特定的事件发生时执行预定义好的函数。这些事件可以是定时的(如每天早上8点发送日报),也可以是实时触发的(如用户提交表单时验证数据的准确性)。触发器提供了一种简便的方法来编排复杂的云服务和应用程序之间的交互,而不需要写大量的代码去处理这些交互。使用触发器的原因使用触发器的主要原因有以下几点:提高效率:触发器可以自动化地响应事件,无需人工干预,从而提高了工作效率。简化开发:开发者可以将精力集中在核心的业务逻辑上,而不是繁琐的异步处理逻辑。弹性伸缩:触发器可以根据事件的多少自动调整函数执行的次数,这对于应对业务高峰期特别有用。降低成本:由于触发器只在事件发生时才执行函数,因此可以有效避免不必要的资源浪费,从而降低了成本。触发器的种类和使用场景FG支持多种类型的触发器,包括但不限于:TIMER:定时触发器,可用于定期执行某些任务,如每日报表生成。APIG:API网关触发器,可用于在API调用时触发函数执行,适用于微服务架构。OBS:对象存储触发器,可用于在文件上传、下载或删除时触发函数,适合用于实时文件处理场景。SMN:消息通知触发器,可在接收到消息时触发函数,适用于需要即时反应的场景。总结综上所述,FunctionGraph的触发器是一个强大的功能,它让开发者能够轻松地在各种云服务和应用程序之间建立连接,并且能够根据实际需要自动执行相应的函数。这不仅提高了开发效率,还降低了成本,使得复杂的工作流程变得简单易管理。
  • 资讯|数智之城何以为美?探寻城市蝶变背后的数字“密码”
    “人们来到城市是为了生活,人们居住在城市是为了生活得更好。”——亚里士多德1条智慧热线铺就社情民意和谐之美白云山水,滋养万物。拥有366.68万常驻市民的广州白云区,是广州人口最多、面积最大的中心城区。生活在大城市里的人们都向往着“让生活越来越美好”,然而随着交通拥堵、住房困难、民众纠纷、环境恶化等压力的接踵而至,日益暴露的“城市病”搅得大家心烦意乱。城市不该是钢筋水泥的森林,而应该是人们安顿身心的幸福家园。一座城市,只有真正感知人们内心的呼声,落实市民生活质量日益提升的诉求,才能成为众心向往的“理想之城”。倾听群众心声,了解社情民意,广州12345政务服务便民热线是为解决城市热点问题而特设的渠道。然而,广州白云区每年受理来自12345热线的群众诉求50+万件,日均接收群众诉求1000+件,诉求信息不仅数量庞大、类型繁杂,还常有难以确定职责归属的疑难事项,这也让政务热线受理中心的工作者身心俱疲,难以及时有效地分派、处理每日堆增的诉求工单。广州白云区率先于全市各区建设“12345热线智慧办理系统”,携手华为云卓越运营,对实际工作流进行深度分析、全面梳理业务逻辑、提升现有技术能力,最终实现疑难工单识别、AI智能转派工单、热线话题挖掘和关联分析,更高效、更精准地处理群众“急难愁盼”的民生诉求问题。首先,通过AI算法训练智能派单模型,对实时工单分析研判,自动推荐工单承办部门,实现工单转派由5分钟提升至秒级,以前需要10人处理的工作,现在2人就可以快速完成,流转效率提升300倍,办理时长压缩近20%;同时,为了更好地从根源处预防和解决多人、高频投诉问题,华为云基于海量工单中的共性要素构建知识图谱,为广州白云区构建起“一人多诉、多人同诉、群体高发、突发热点、敏感诉求”系列预警模型,通过AI关联分析在共同的时间段、空间位置、标签群体诉求工单背后的根因,提前建立应对突发事件的预防体系,防患于未然。如今,在华为云的助力下,广州市白云区12345热线已累计智能派单超100万件,智能派单的工单比重及准确率保持在80%以上,助力白云区热线2023年综合考核成绩排名全市11个区第一。未来,这一条智慧热线,将持续牵动着每一位白云区居民的幸福生活。1个“数字助手”激发乐业创富之美2000多年前,丝绸之路连接起了亚欧大陆的无数商户。西安,作为古丝绸之路的东方起点,已成为现代化国际大都市,用科技推动企业振兴,促进经济发展,西安2023年实现GDP约1.20万亿元,同比增长5.2%。强工业、促消费,已让西安经济稳步增长,此外,西安的“小老板”们与大工业、大消费互相赋能,已成为推动西安经济增长的超级动能。截至23年底,西安市场主体总量突破317万户,获评“全国营商环境创新城市”和“国际化营商环境建设标杆城市”。提升营商环境,让百万“小老板”们乐业创富,是这座西北第一城激活经济的重中之重。围绕个体工商户重点关注的变更转让、降低成本、减租退税、金融扶持等事项,西安政务服务网上线“助企惠企服务专区”给大家送去更有温度、有速度的服务。第一,依托全量多维“企业库”和“政策库”,利用“大数据比对及后台智能筛选”,超2600条惠企政策精准找对人,点对点落实企业福利。在西安市产业发展引导专项资金项目中,通过“政策通”平台对符合条件的企业进行生产经营及受处罚情况、企业信用信息情况、企业纳税情况等方面资质审查,68家企业共收到1087万政策奖励,让企业真切感受到了实实在在的办事便利和服务温度。第二,依托市一体化政务服务平台,建成“一件事一次办”线上联办系统,全市共上线38个“一件事一次办”集成服务,办理业务时,只需输入身份证,表单中其余信息自动调取回填,自动生成申请表,大幅减少企业申报时间和申报难度,0跑动办好事。这些有温度、有速度的政务服务背后,是政务大数据中台对上亿条法人、信用、政策等库表数据的安全高效调用和开发。从22年起,华为云卓越运营与西安市大数据局组建联合工作组,对全市43个重点委办局进行了数据治理,共归集数据50亿+条,为“企业库”和“政策库”的梳理奠定了坚实基础。华为云数据仓库服务DWS支持千级并发事务毫秒级查询,ROMA Connect服务集成能力可将数据/应用接口开发时间缩短一半以上,使得数据能快速被应用调用,高效支撑企业一件事一次办、政策免申即享等惠企应用。冬去春来,年复一年,华为云用精湛技术和贴身服务助力西安市的一体化政务服务能力排名从“中”提升至“高”,助力西安市政府大幅提升了中小企业办事的便利度和体验感。截至2024年4月,西安政务服务网已点对点发布惠企政策2600+条,兑现财政类政策资金超269亿元。1条数字化“护城河”筑牢城市政务安全之美两江浮广厦,三镇耸云中。于水中央,因水而盛的江城武汉,正加速成为全国数字经济一线城市。云作为新质生产力,为武汉数字经济的蓬勃发展提供了强劲的支撑。经过几年合作耕耘,武汉携手华为云共建全国首个集政务域、可信域、产业域于一体的城市云——“武汉云”,承载了122个政府部门和企业单位、400多个政务系统的运行,在智慧医疗、智慧教育、智慧城区等政务民生领域发挥了重大作用。得益于多政府部门数据信息的广汇聚,政务服务触角变得更广、更紧密,政府治理变得更加智能,然而,也对云上安全提出了更严苛的要求。武汉携手华为云,构筑了基于一个安全云脑+七层防线的立体纵深安全防护体系。如今,武汉云已达成信息系统安全等级保护三级认证,这是国家对非银行机构的最高级认证,且护网行动历年累计零失分。首先,华为云为武汉构筑了“七层安全防线”,从物理、身份、网络、应用、主机、数据到运维,端到端构筑云平台的安全能力,全面防治来自众多场景的复杂攻击,实现云内外数据无缝对接、分钟级安全性能扩展,与传统安全形成代际优势。此外,华为云卓越运营构筑了以“安全云脑”为核心的安全运营体系,解决政府安全运营人力投入大、威胁处置时间长、安全价值不可见等痛点,确保精准的风险研判和治理。同时,安全云脑内置300+检测模型、100+处置剧本,可实现99%的威胁自动化处置。武汉云的安全检测从分钟级提升到秒级,安全处置从小时级提升到分钟级。另外,安全云脑的资产仪表盘提供3000+主机资产管理可视化能力,态势感知大屏提供风险可视、攻击可视、响应可视能力,帮助武汉云真正实现“一键安全合规、一体全程处置、一屏全面感知、一云全局分析”。云平台的安全保障了城市的高质量发展,从扫健康码到抢消费券,从社保账户查询到公积金提交提取,这朵看不见的云,稳稳地守护着市民的便捷生活。2023年9月,武汉云安全云脑荣获了中国信息通信研究院第三批“安全守卫者计划”优秀案例。转自华为云
  • 资讯|以创新、人才、价值三要素,加速中国原生产业生态繁荣
    在鲲鹏昇腾开发者大会2024上,华为副总裁、ICT产品组合管理与解决方案部总裁马海旭发表致辞,他表示:鲲鹏昇腾将与开发者一起,以创新激发创新、用价值回馈价值、以人才培育人才,打造一个更加繁荣的中国原生产业生态。以下为马海旭讲话全文随着AI技术的快速发展,AI正在重塑我们的时代,推动千行万业迈向智能化,每个行业、每个场景都正在被AI重新定义,智能世界正在加速到来。智能世界,算力是基础。计算产业通过打造坚实的算力底座,正成为驱动创新和变革的关键力量。各个国家都在不断提高对计算产业的重视程度,投入大量资源,致力于提升构建大规模算力、推动技术创新、培养专业人才,抢占计算产业的制高点,这为计算产业的厂商和开发者带来巨大的时代发展机遇。计算产业涉及服务器、操作系统、人工智能框架、数据库和中间件、大数据平台、云平台等多类产品和服务。硬件厂商、软件厂商、云服务提供商、开源社区、开发者群体都可以在这个产业生态中取得广泛的发展,共生共赢,共建一个欣欣向荣的生态体系。鲲鹏昇腾两大产业今天取得的成绩,与每一名伙伴和开发者都密不可分。鲲鹏昇腾产业一直致力于在技术和架构上的突破领先,从达芬奇架构,到系统层面的天池和全对等架构。再到集群层面的天成和天工架构,发展创新从未停止。鲲鹏不仅仅提供鲲鹏主板,还在网卡、RAID、DPU、操作系统、数据库等全栈软硬件上持续创新和突破。现在,鲲鹏已广泛服务于金融、电力、政府、运营商等行业的IT系统和核心生产系统。昇腾持续发展超大规模高速互联和计算、存储、网络高效协同运转能力,同时也在进一步提升CANN和昇思框架的易用性,现在昇腾AI已服务于国内几乎所有头部互联网、运营商、大模型厂商企业,为国内AI大模型的创新提供澎湃算力,加速千行万业智能化升级。鲲鹏昇腾与生态伙伴凝心聚力、跬步千里。4年多以来,已有13家OEM伙伴推出基于鲲鹏主板的服务器;昇腾有超过40家的硬件伙伴,已有超过50个主流基础大模型基于昇腾训练和迭代。总共有超过6700家行业伙伴加入到鲲鹏昇腾两大生态体系,共同孵化了超过18700个解决方案。人才培养上,华为始终坚持“以产业聚集人才、以人才引领产业”,与教育部合作“智能基座”产教融合项目,联合72所高校,培养了超过70万名学生,为中国的计算产业发展构筑了坚实的人才基础。鲲鹏昇腾已与超过610万名开发者紧密协作、相辅而行,携手打造了一个全新的计算产业生态。面向智能化时代,华为发布了All Intelligence战略,加速千行万业的智能化。鲲鹏昇腾希望与开发者一起,以创新激发创新、用价值回馈价值、以人才培育人才,打造一个更加繁荣的中国原生产业生态。首先,坚持开放,打造更易用、更高效的开发体系。鲲鹏以AI为使能动力,从编译器、操作系统等底层提供更加智能化的支持,让底层算力可以被极致使用。鲲鹏利用AI技术,做到业务负载的动态感知,以AI辅助的原生开发流水线让应用开发更加高效。昇腾进一步聚焦易用和分层分级开放,丰富一系列的加速库,加速大模型的训练、调优,以及推理快速部署,为开发者构建开发快、体验好的软硬件环境。其次,深化协同,构筑更活跃、更成熟的生态体系。今年,鲲鹏展翅和昇腾万里伙伴计划将进一步升级,成立鲲鹏昇腾原生创新汇、新增原生开发赋能与认证、提供NRE和样机等激励,激发原生开发创新,提升生态协同效率和应用开发效率,将与广大开发者及伙伴一起深入业务应用场景,逐步打造一个全新的行业智能化应用生态,让鲲鹏昇腾在千行万业智能化进程中发挥更大作用。最后,多层扩展,培养更全面、更多元的计算人才。我们将推出原生人才高校促进计划、建立鲲鹏昇腾科教创新卓越中心和孵化中心、完善原生人才发展体系。通过持续推进并扩展教育部“智能基座”项目,开发更加多元化和更加全面的鲲鹏昇腾课程,与各高校一起发展更多原生计算体系人才。我们会加大投入,跟开发者走得更近,让开发者更方便、更快地使用鲲鹏和昇腾相关的技术栈和产品。通过多层次、系列化的开发者活动和竞赛,为开发者提供创新创意的舞台,让每一位开发者都能够脱颖而出,让前沿科技创新进一步加速,让开发者的每一行代码都成为改变世界的力量。转自华为计算公众号
  • 资讯|计算基础软件全栈智能,加速开发者原生创新
    5月10日,鲲鹏昇腾开发者大会2024上,华为计算产品线研发总裁鲁鸿驹先生以 《计算基础软件全栈智能,加速开发者原生创新》为主题做分享,他表示:全面升级计算基础软件,昇腾使能大模型时代极简开发,AI使能鲲鹏释放极致算力。以下为鲁鸿驹发言全文我们所工作的IT领域是一个充满变化的产业,回顾过去30多年的产业发展,AI大模型正在成为继互联网、移动互联网以后第三波的产业浪潮,将给整个IT产业带来翻天覆地的变化。一方面,AI市场的渗透率速度预计将会远超当年的互联网和移动互联网,在未来2-3年内超越60%市场渗透率。另一方面,根据行业专家的分析,由AI大模型带来的AIGC产业规模正以50%以上的年复合增长率快速增长,在三年内就会超越千亿美金,带来巨大的商业机会。 从技术视角看,AI大模型技术还在进行着快速迭代。更大的模型规模,更长的序列,多模态,强思维这些都要求我们不断迭代和更新所依赖的基础大模型和领域模型。而从应用视角看,智能对话、文生视频、编码辅助等每天都在上线新应用。AI大模型带来这样高速的发展与变化,对所有IT行业的企业和开发者而言,速度将会决定命运,这将依赖于高效的算力提供。但是,高效的算力运用在今天仍然面临诸多挑战,对AI算力而言,开发者的核心诉求是大模型高效稳定的训练和推理。主要挑战有:如何跟进快速发展的主流模型和算法?大模型的训练耗时很长,如何提升算力的利用率,加速训练进程?随着集群规模变大,故障发生频繁,如何降低训练中断损失?如何在保证时延的前提下,提升推理的吞吐,从而降低规模推理的成本?对于通用算力,开发者的核心诉求是应用的极致优化和快速上线。为了更好的应对这些挑战,鲲鹏昇腾基础软件栈进行了全面升级。接下来将分鲲鹏和昇腾两个部分介绍。首先是昇腾基础软件。为了让各种大模型在昇腾集群上训的好、推的快,我们对昇腾AI基础软件做了6大全栈升级。包括:在硬件使能层,应用使能层CANN提供完备的大模型融合算子,使能业界主流大模型开箱即用。在框架层,昇思MindSpore升级多维并行加速能力,为大模型训练并行执行提供最优策略。在应用使能层,昇腾加速库 MindSpeed 提供大模型训练加速能力,兼容业界的主流生态;昇腾推理引擎 MindIE 提供调度、服务化和量化的能力,使推理变得更加简单高效;围绕集群高可用,MindX DL 提供智能健康监测和自动恢复能力,让大模型训练更加稳健。在开发使能面上,MindStudio升级了大模型调试调优能力,让大模型开发更加简单高效。以下将讲述这些升级的能力如何通过全栈协同优化帮助开发者进行模型训练、推理和开发调试。训练的挑战就是如何让客户开发的模型能够在昇腾算力集群上跑起来,最好是开箱即用。围绕这个目标,我们从算子库的完备性、AI框架、原生支持三方库三个维度来提升能力。在算子库的完备度上,CANN目前已全面支持主流大模型所需要的基础算子和80多个大模型融合算子。Ascend C提供60多个高阶API,使能开发者自主开发高性能算子和构建自有的加速库。在AI框架能力上,昇思MindSpore提供多级编译的能力,让开发的效率倍增。同时,我们进一步完善了昇腾对PyTorch API的支持,覆盖度已达到95%。另外,为了让开发者更好的在昇腾上使用业界主流的三方库,我们通过社区代码贡献的形式,原生支持 huggingFace 和 DeepSpeed等社区的主流能力。另外,为了让开发者更好的在昇腾上使用业界主流的三方库,我们通过社区代码贡献的形式,原生支持 huggingFace 和 DeepSpeed等社区的主流能力。通过这些基础软件能力的升级,昇腾做到了主流大模型100%支持,预置模型分钟级的开箱使用,易用性极大的提升。大模型调好之后,接下来是长周期的训练。目前一个千亿到万亿规模的大模型,往往需要训练几个月的时间。能否通过基础软件的优化来加速这个过程,实现模型的快速迭代?昇腾基础软件从计算、通信、并行和内存四个维度进行了全面优化,最大程度提升了大模型的训练速度。在计算优化上,通过大模型融合算子性能提升30%;在通信优化上,通过通算融合和集合通信算法创新,实现通信效率提升15%;在并行算法上,提供8维并行算法,同等算力规模下,训练性能提升8%;在内存优化上,通过选择性重计算策略,内存节省35%。同等卡数下能够支持更大参数规模的模型训练。基于上述优化,我们将昇腾算力集群的算力利用率提升了17%,训练时长同比缩短17%,更好的支撑客户大模型快速迭代。训练不光要快,还要稳。随着大模型规模不断的增大,AI算力集群规模也在增加。但集群规模越大,故障频率就越高。根据我们的计算,集群规模达到10万卡的时候,一个算力集群MTBF会缩短到2-3小时。算力集群的高可用已经成为大模型常稳训练的关键。昇腾算力集群通过软硬协同的优化,保障开发者的训练任务稳定运行:训练前,提供健康状态监控和预防性维护的能力,确保训练启动时系统处于最佳的状态。训练中,支持300+典型故障的实时自动检测和隔离,确保早发现早处置。故障发生后,通过分布式缓存加速、集合通信的快速建立,超大规模的集群故障发生后的任务恢复的时间从小时级降低到30分钟以内,今年将进一步优化到10分钟。这些关键能力的提升帮助我们将常稳训练的时间提升到30天以上,大大的提升了训练的效率。要实现大模型的商业正循环,不能仅仅是训的快,训的好,还得推的快,推的高效。推理需要同时兼顾时延和吞吐。时延决定最终用户的使用体验,吞吐决定规模推理的系统成本,进而决定是否能够实现盈利。昇腾推理基础软件通过全栈联合优化降低时延,提升吞吐效率:首先,我们通过对集合通信算法的优化和核心算子的通算融合,将推理的时延降低了60%。基于推理引擎 MindIE 启发式并行解码,进一步将平均推理的时延降低2倍。创新的自适应量化压缩,可以在不影响推理精度的情况下减少访存开销,将系统的吞吐率提升30%。叠加并行算法优化和细粒度的作业调度,进一步将系统吞吐提升30%。这些关键能力的协同优化,帮助我们在满足时延的条件下,将推理的吞吐提升6倍,大大降低了推理成本。大模型推理是很复杂的过程,昇腾推理引擎 MindIE 可以帮助开发者轻松完成。以当前最热的OpenSora为例,开发者只需要三步就可以完成文生视频。第一步将OpenSora模型导入到MindIE进行编译,第二步配置工作流参数,第三步生成视频。当前,模型规模更大、序列长度更长,单机放不下,需要引入多机推理。这时如何降低通讯时延,达成MOE负载均衡同时提升NPU内存使用效率成为主要的挑战。为了应对这些挑战,我们提供了完整的弹性推理的解决方案:首先是多机低时延通信技术。通讯的时延占比降低50%,为弹性推理提供了通信基础。其次,支持MOE动态调度,达成专家负载均衡,提升NPU使用效率,支持参数规模可以平滑扩展至万亿乃至更大的规模。最后是序列并行推理。降低NPU内存占用,支撑序列长度从K级到M级弹性推理。以上的特性,只需要开发者进行简单的资源配置即可使用,让弹性推理触手可及。大模型开发过程中性能调优是非常耗时的工作,典型场景至少需要2周的时间。为了提升开发体验,MindStudio在代码、框架、通信和算子方面升级了调优的能力。昇腾算子开发工具链进行了功能升级,着重强调三个能力。Ascend C支持C/C++编程风格,计算内存同步抽象,使能代码量降低30%。提供在板调试的能力,调试效率提升5倍。在调优方面,推出多级指令流水线,快速识别性能优化点最终能够帮助开发者将典型算子开发效率从两个月提升到两周。鲲鹏基础软件的技术升级,核心变化是使用AI的能力全面升级鲲鹏基础软件,为应用释放鲲鹏的极致算力:首先是操作系统,我们围绕五大领域持续创新,助力openEuler成为AI时代性能最优的OS。其次,在开发阶段,鲲鹏DevKit 智能识别应用计算模式,自动实现代码优化。在构建阶段,我们将AI能力注入编译器中,实现编译选项自动调优,内存数据最佳排布。在运行阶段,鲲鹏BoostKit 通过AI动态感知业务特征,开展全栈优化,提升系统性能。最后,使用AI模型优化传统数值计算方式,让高性能计算速度更快、更准。在操作系统方面,我们的目标是在openEuler中持续贡献,共同打造AI时代的首选OS:在计算子系统,通过自动感知负载,实现计算任务的智能调度和功耗调解,计算的能效提升15%。在存储子系统,通过动态内存大页、自适应NUMA等技术,将内存管理和应用特征灵活匹配,实现文件读写等访存密集类应用的性能提升。在网络子系统,通过用户态协议栈、网络加速等技术,降低端到端网络时延15%。在多样性计算上,openEuler通过异构内存管理等技术,提升多样性算力的利用率。在安全方面,提供了HiTLS高性能密码组件、软硬协同算法优化,以及精密计算统一框架,性能提升55%以上。可喜的看到,得益于整个社区的持续投入和创新,openEuler系操作系统已经得到了国内客户的广泛认可。2023年新增算力市场份额第一,达到36.8%。openEuler社区版本全球下载量达到239万,社区日活开发者超过4000人,成为操作系统领域最活跃的开源社区。    未来十年是计算架构创新的黄金时代,计算架构快速演进,应用日趋复杂。如何编写高性能代码,使其匹配新的计算架构,充分发挥硬件能力,需要开发者对应用计算特征、指令集、微架构等了然于胸。这需要丰富的领域知识和开发经验,技术挑战非常大。DevKit最新推出的鲲鹏亲和代码优化功能,结合AI技术辅助编程,适配硬件架构,自动生成最优代码。典型场景下应用性能提升10%-30%,让普通开发者也能具备专家级优化能力。对于应用开发者而言,编写完代码后下一个挑战就是选择合适的编译选项对自己的程序进行编译优化,使其在不同计算平台上都能获得良好的性能。我们为鲲鹏编译器引入AI能力,学习程序特征,辅助编译优化。其中,编译选项自动调优,智能搜索编译选项空间,找到最佳组合,主流场景性能提升5%,相比人工调优,时间缩短50%。内存数据排布优化,通过AI模型识别冷热数据,匹配多级内存架构,实现数据的智能预取,将访存密集型应用提升10%以上。有了AI辅助的编译优化,开发者无需再理解复杂的编译选项,大幅降低了编译优化门槛。接下来是应用上线环节。过去,我们一次配置好系统参数,很少再调整,但整个计算任务对运行环境的要求不同,很难做到动态最优。在真实的场景下,很多数据中心服务器的利用率低于50%。BoostKit推出了负载感知加速系统WAAS,可以基于每个计算任务深度调优,启用最优的加速库,自动配置全栈最优参数。我们在华为云数据中心进行实测,在不修改代码的情况下把计算资源的利用率提升20%。针对计算密集型的场景,可以在同等物理资源配置的情况下,业务性能提升50%。高性能计算作为“计算金字塔尖上的明珠”,广泛存在于气象预测、油气探测、制造和生物等领域。它的工作特征是计算耗时长,问题复杂难以求解。传统的高性能计算是基于物理公式和数学方程精准的进行计算,具备可解释性,但耗时长。与此同时,很多客户拥有非常宝贵的海量历史数据,是否可以通过AI训练,以历史数据为样本,形成领域的专业模型,以推理替代部分复杂计算过程,从而实现高性能计算的应用加速。这是全新的高性能计算和AI融合计算模式,集成精准计算和AI快速推理的两个优势,计算效率大幅提升。融合计算模式以AI4S加速库的形式落入高性能计算加速套件中。通过一套标准API简单方便调用,可以一键部署,开箱即优。我们已经和自然资源部第一海洋研究所合作,将AI4S加速库应用到海浪的预测中。转自华为计算公众号
  • 【话题交流】大数据专题——看看大家大数据知识知多少
    本月话题:大数据专题随着IT技术的不断发展,知识的不断更新迭代,大家讨论讨论说说看看大家对大数据方面的知识掌握多少,看看大家对目前大数据的了解
总条数:598 到第
上滑加载中