作者:zhengkai,分布式通信首席技术专家

当今的移动应用都向着智能化和多样化方向发展,例如AI辅助,VR/AR应用,沉浸式游戏等。然而现实中的移动设备,因为便携性要求受限于尺寸、电池容量以及温控等要求,往往在算力、能耗以及所支持的输入输出功能上无法对智能化沉浸式体验的应用提供全方位的支持,导致很多应用场景难以得到实现。

为了解决移动端算力瓶颈,HarmonyOS跨端分布式计算应运而生,给用户带来易协同、低延迟和高稳定的分布式体验。下面,我们将对跨端分布式计算技术进行详细的分析。

一、跨端分布式算力技术介绍

跨端分布式计算是HarmonyOS系统利用分布式软总线和分布式计算引擎,提供多设备协同的跨端分布式计算能力。允许多个HarmonyOS设备协同计算和资源分担以及实时的任务调度。

如图1所示,跨端分布式计算的目标是:

  • 能随时方便的发现和启用周边闲置的设备
  • 将周边的设备组建成算力和差异化功能的资源池
  • 为用户的高体验应用提供随需算力和特定能力的分布式卸载和协同能力
  • 组合成能胜任各种新业务场景需求的超级终端

图1 跨端分布式计算能力

简单一句话来概括就是,“让算力在分布式超级虚拟终端内高效、自由地流转”。

二、跨端分布式计算面临的挑战

前面介绍了HarmonyOS跨端分布式计算的整体概念,现在我们来探索一下跨端分布式计算面临的挑战。“跨端分布式计算面临的挑战就是无线不可靠的网络环境”,因为在无线不可靠的网络环境下,跨端分布式计算存在 “难协同、高延迟、低稳定”的问题。

  • 难协同:由于分布式设备的差异性较大且端侧的各种输入\输出设备的分布式协同无法被平台隐藏,使得跨端分布式设备协同较难。
  • 高延迟:跨端分布式应用使原本设备内的通信变成设备间的无线通信,有可能增加端到端的时延,而远程进程通信的时延直接影响分布式并行计算的并行效率(或者叫并行加速比),导致跨端分布式应用运行延迟高。
  • 低稳定:在超级终端内部存在多设备协同作业间业务争抢,且由于无线频段开放性受到外部无关业务干扰,使得分布式计算稳定性较低。

三、如何应对跨端分布式计算技术面临的挑战

你肯定会好奇,HarmonyOS如何应对挑战、解决问题?在无线不可靠的网络环境下,为实现灵活、高效和稳定的跨端分布式计算能力,HarmonyOS为开发者提供了“融合计算、极简协议及秩序化组网”的分布式计算能力解决方案。

1. 融合计算

融合计算是HarmonyOS为开发者提供的高效算力框架,如图2所示。可以根据应用特性以及设备特征,自动计算出最优调度策略,使应用在计算过程中实时保持最佳性能。同时,还提供极致的轻量化运行时,包括运行时的微秒级任务启动、空载时低资源占用,保障不同设备有足够的可调度余量,提供更高的并行加速比。

图2 融合计算

2. 极简协议

极简协议是HarmonyOS为开发者提供的极速接口,主要体现为极简RPC协议。

RPC,即远程进程调用,是分布式计算最核心的基础能力和基本通信原语,它是跨设备协同的核心组件。整个RPC的调用过程中,如图3所示,关键的瓶颈点有三个,分别是服务发现、序列化/反序列化及网络传输。下面,本文将从“序列化/反序列化”及“网络传输”来阐述极简协议对分布式计算能力的影响(“服务发现”将不做介绍,因其并不直接影响算力发挥)

图3 RPC的调用过程

(1)序列化/反序列化:

序列化/反序列化就是将数据从“处理器理解的形态”转换成“通信和网络能处理的形态”的过程以及逆向过程,极简化该双向过程的关键则在于智能的处理好通信开销和压缩等。

HarmonyOS通过运用大数据分析和数学建模的方法建立了一套智能的参数调优机制。针对例如游戏类和实时音视频类的应用做了定制的优化,实现百KB级别RPC(反)序列化的计算侧和网络侧综合时延控制在5ms以内。

(2)网络传输:

D2D(Device to Device,设备到设备)即邻近终端设备之间直接进行通信的技术。在传统分布式应用场景下,设备间更多的采用蓝牙或者WIFI direct等方式D2D的通信模型,过于厚重,协议的层次并非都必要,协议的接续和交互流程也不尽精简。

HarmonyOS分布式系统采用的极简D2D传输协议栈,相较于传统协议栈做了许多简化处理,包括压缩协议封装、增加协议处理的硬件亲和性,通过智能预测配合节电机制做预热处理,避免冷启动等。获得5-10倍的压缩数据同步传输速度提升,实现亚毫秒级的无线通信时延。

图4 极简D2D协议

从图4可以看出,采用D2D协议相较传统的TCP协议,优点如下:

  • 缩短协议路径:精简协议处理流程,软件处理时延减少50%
  • 减少线程调度:减少收发侧线程调度,线程调度时延减少55%
  • 芯片按需预热:感知设备与业务状态,芯片处理时延减少80%。

3. 秩序化组网

HarmonyOS分布式软总线采用秩序化组网机制,保障分布式计算的稳定性。通过实现独立的空域流量感知和调度引擎,根据业务QoS、信道质量评估信息、队列信息,分配设备内数据包排队策略、发送时隙,控制发送速率。同时,在HarmonyOS的生态设备之间,利用软时钟同步技术,实现协议和软件层面模拟的时分复用分配机制,实现规避相互干扰的空口资源调度机制,极大的减少了生态设备之间的相互干扰,提升了通信的稳定性。

软时钟同步技术如图5所示,节点间协调任务和数据发送的时隙,分时间片发送数据,确保分布式系统内数据传输不冲突同时又充分利用信道资源。

图5 软时钟同步技术

四、跨端分布式计算技术应用案例

今年HDC大会的分布式游戏展区展示了一款华为与完美世界合作完成的基于HarmonyOS的分布式游戏《新笑傲江湖》。通过利用HarmonyOS跨端分布式计算技术,实现了均负载、高帧率、低时延的分布式游戏新形态。

1. 分布式游戏模式

玩家在启动游戏时可以选择单机运行模式或分布式运行模式,如图6所示。在分布式运行模式下,手机和PC/笔记本通过无线连接,手机用于游戏操控、地图显示及装备设置,PC/笔记本通过HDMI向华为智慧屏输出显示游戏主场景。在游戏过程中,智慧屏全程流畅运行4K分辨率,60帧游戏画面,画质绚丽逼真,媲美3A级端游体验,手机操作非常流畅,甚至在多人打斗场景下,玩家几乎感受不到操作延迟。

图6 《新笑傲江湖》分布式版本

与传统的手机投屏相比,分布式游戏画质与帧率大幅提升,发热显著降低,这种新的分布式游戏交互体验,带来了单手机设备完全无法比拟的沉浸式体验。单机版本和分布式版本性能对比如图7所示

图7 性能对比

2. 分布式游戏关键

与大家熟知的投屏技术完全不同,分布式游戏并不是将手机画面通过流媒体传输后在大屏镜像显示,而是将游戏任务进行了切分,在手机端仅运行游戏逻辑及部分简单的2D UI渲染任务,而将需要消耗大量资源的、复杂的3D渲染任务通过分布式技术卸载到PC或者笔记本上执行,这样对游戏任务进行切分后,手机的负载变轻,重负载任务分配在高算力设备运行,不仅合理的利用各类设备资源,也给游戏玩家也带来媲美端游的游戏体验。如图9所示,展示了跨端分布式游戏-多屏多视角模式。

图8 跨端分布式游戏-多屏多视角模式

完美世界副总裁崔铭表示:“本次与华为合作的分布式游戏演示在玩家群体中产生了很大反响,我们也看到很多用户非常期待更多分布式游戏产品落地,并提出了诸多建议,发展的前景非常广阔”。据悉,除游戏应用外,HarmonyOS后续还会拓展更多分布式算力协同的场景和应用,不断丰富超级终端内涵。在“万物互联”时代,让我们一起打破想象的边界,构想更美好的未来。

以上就是本期的全部内容。

HDC2021技术分论坛:跨端分布式计算技术初探的更多相关文章

  1. HDC2021技术分论坛:组件通信、硬件池化,这些创新技术你get了吗?

    作者:ligang 华为分布式硬件技术专家,sunbinxin 华为应用框架技术专家 HarmonyOS是一款全新的分布式操作系统,为开发者提供了元能力框架.事件通知.分布式硬件等分布式技术,使能开发 ...

  2. HDC2021技术分论坛:如何高效完成HarmonyOS分布式应用测试?

    作者:liuxun,HarmonyOS测试架构师 HarmonyOS是新一代的智能终端操作系统,给开发者提供了设备发现.设备连接.跨设备调用等丰富的分布式API.随着越来越多的开发者投入到Harmon ...

  3. HDC2021技术分论坛:异构组网如何解决共享资源冲突?

    作者:lijie,HarmonyOS软总线领域专家 相信大家对HarmonyOS的"超级终端"比较熟悉了.那么,您知道超级终端场景下的多种设备在不同环境下是如何组成一个网络的吗?这 ...

  4. HDC2021技术分论坛:进程崩溃/应用卡死,故障频频怎么办?

    ​作者:jiwenqiang,DFX技术专家 提到开发一个产品,我们通常首先想到的是要实现什么样的功能,但是除了功能之外,非功能属性也会很大程度上影响一个产品的体验效果,比如不定时出现的应用卡死.崩溃 ...

  5. HDC2021技术分论坛:“积木拼装”,HarmonyOS弹性部署大揭秘!

    作者:peitaiyi,华为终端OS产品交付专家 HarmonyOS是一款面向万物互联时代的.全新的分布式操作系统.在传统的单设备系统能力基础上,HarmonyOS提出了基于同一套系统能力.适配多种终 ...

  6. HDC技术分论坛:HarmonyOS新一代UI框架的全面解读

    作者:yuzhiqiang,UI编程框架首席技术专家 在Harmony 3.0.0开发者预览版中,包含了新一代的声明式UI框架ArkUI 3.0.多语言跨平台编译器ArkCompiler 3.0.跨端 ...

  7. 全面解密QQ红包技术方案:架构、技术实现、移动端优化、创新玩法等

    本文来自腾讯QQ技术团队工程师许灵锋.周海发的技术分享. 一.引言 自 2015 年春节以来,QQ 春节红包经历了企业红包(2015 年).刷一刷红包(2016 年)和 AR 红包(2017 年)几个 ...

  8. 搞懂分布式技术21:浅谈分布式消息技术 Kafka

    搞懂分布式技术21:浅谈分布式消息技术 Kafka 浅谈分布式消息技术 Kafka 本文主要介绍了这几部分内容: 1基本介绍和架构概览 2kafka事务传输的特点 3kafka的消息存储格式:topi ...

  9. React / Vue 跨端渲染原理与实现探讨

    跨端渲染是渲染层并不局限在浏览器 DOM 和移动端的原生 UI 控件,连静态文件乃至虚拟现实等环境,都可以是你的渲染层.这并不只是个美好的愿景,在今天,除了 React 社区到 .docx / .pd ...

  10. Taro 3 正式版发布:开放式跨端跨框架解决方案

    作者:凹凸曼 - yuche 从 Taro 第一个版本发布到现在,Taro 已经接受了来自于开源社区两年多的考验.今天我们很高兴地在党的生日发布 Taro 3(Taro Next)正式版,希望 Tar ...

随机推荐

  1. 【Azure Developer】Python代码获取的Token出现'Authentication_MissingOrMalformed'问题

    问题描述 Python 调用Azure AD中所注册的应用生成Token代码: import requests, json client_id = 'yourclientid' client_secr ...

  2. 从 Neo4j 导入 Nebula Graph 实践见 SPark 数据导入原理

    本文主要讲述如何使用数据导入工具 Nebula Graph Exchange 将数据从 Neo4j 导入到 Nebula Graph Database.在讲述如何实操数据导入之前,我们先来了解下 Ne ...

  3. Redis集群Cluster

    Redis Cluster 是社区版推出的 Redis 分布式集群解决方案,主要解决 Redis 分布式方面的需求,比如,当遇到单机内存,并发和流量等瓶颈的时候,Redis Cluster 能起到很好 ...

  4. AT_abc342_d 题解

    UD 2024/2/24 22:36 感谢 Lixiang_is_potato 指出一处笔误. 本文同步发表于洛谷. 赛时挂了,但是赛后 3min AC,我是飞舞. 题意 给你一个长度为 \(N\) ...

  5. .NET Conf China 2023济南站社区活动

     2024年3月3日,在这个春暖花开的日子里,由微软MVP项目.山东财经大学管理科学与工程学院.胶东开发者社区.济南.NET俱乐部联合举办了[.NET Conf China 2023 JiNan Wa ...

  6. Go语言VSCode开发环境配置

    最近学习Golang,先把开发环境配置好. 一.安装Go语言开发包 https://golang.google.cn/dl/ 按步骤安装即可,安装完成后需要设置Windows环境变量 配置好,做个测试 ...

  7. xxl-job的基本使用

    xxl-job的基本使用 xxl-job是分布式的调度平台调度执行器执行任务,使用的是DB锁(for update)来保证集群分布式调用的一致性,学习简单,操作容易,成本不高. 准备阶段 服务端配置 ...

  8. iview 动态表单验证 FormItem prop rules v-show 动态表单校验

    iview 动态表单验证 FormItem prop rules v-show 重点1 用v-show 控制显示隐藏 重点2 prop 指定字段 重点3 :rules 动态指定规则 <div v ...

  9. SQL之QL

    从中文语法上来说,应该先写FROM语句比较好理解 基础查询语句 SELECT [DISTINCT] target-list FROM tables WHERE qualification GROUP ...

  10. 对角矩阵try

    \begin{bmatrix}1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\end{bmatrix}