在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

峰會回顧第9期 | 移動應用高級語言開發(fā)——并發(fā)探索

OpenHarmony TSC ? 來源:OpenHarmony TSC ? 作者:OpenHarmony TSC ? 2023-05-11 10:17 ? 次閱讀

演講嘉賓 | 李勇彪

回顧整理 | 廖 濤

排版校對 | 李萍萍

062b541c-efa2-11ed-878e-dac502259ad0.png

嘉賓簡介

李勇彪,OpenHarmony項目群技術指導委員會編程語言TSG成員,華為OpenHarmony虛擬機編譯器專家。2021年至今,華為終端OS語言編譯運行時團隊架構師,負責OpenHarmony高級語言編譯運行時的整體技術架構。曾就職于阿里巴巴,參與并主導AliOS高級語言虛擬機的編譯優(yōu)化、內(nèi)存管理優(yōu)化、多線程優(yōu)化等項目。目前聚焦在移動OS的編程語言及語言虛擬機領域。

內(nèi)容來源

第一屆開放原子開源基金會OpenHarmony技術峰會——編程語言及應用框架分論壇

正 文 內(nèi) 容

隨著摩爾定律放緩現(xiàn)象的日益突出以及計算機多核系統(tǒng)架構的出現(xiàn),并發(fā)編程持續(xù)引起了廣泛的關注。目前,移動應用領域的并發(fā)探索有哪些,在OpenHarmony上又有哪些成果和未來規(guī)劃呢?華為終端編譯器與運行時架構師李勇彪在第一屆OpenHarmony技術峰會上給大家?guī)砹藥c分享。

0646b702-efa2-11ed-878e-dac502259ad0.png

01?

并發(fā)的背景

摩爾定律由Intel的聯(lián)合創(chuàng)始人兼前CEO戈登·摩爾提出,即半導體芯片上集成的晶體管電阻數(shù)量將每兩年增加一倍,微處理器的性能提高一倍,或價格下降一半。在過去的幾十年間,摩爾定律為算力乃至生產(chǎn)力的發(fā)展作出了巨大的貢獻,但至2022年,隨著Denard微縮效應遇到了元件物理的瓶頸,業(yè)界逐漸對這一觀點產(chǎn)生了強烈的分歧,一部分人士認為摩爾定律正在逐步放緩甚至有失效的傾向,另一部分人士認為摩爾定律仍然有效,僅是成本增加了。在該背景下,單芯片功耗約束了單核的性能,基于多核化的并發(fā)編程成為移動領域提升性能的重要技術手段。

069578ec-efa2-11ed-878e-dac502259ad0.png

摩爾定律放緩現(xiàn)象

那么,什么是并發(fā)呢?并發(fā)指同一時間應對多項任務的能力,一個時間段中有幾個任務都處于運行準備就緒狀態(tài),在單核設備中,任一個時刻只有一個任務能夠運行,其運行順序是不固定的;而在多核場景中,同一時間可以多項任務并行。

06ce1ec2-efa2-11ed-878e-dac502259ad0.png

并發(fā)與并行

02?

常見的并發(fā)模型

2.1??

線程和鎖

線程和鎖是并發(fā)模型的一種常見表示,下圖示意了一種典型的CPU多核架構,可以看出,L3 Cache在多核間共享,因此L3 Cache的一致性是保證程序在多核間正常運行的基礎。在確保單線程執(zhí)行結果不變的前提下,可以做任意編譯器優(yōu)化,如常量傳播、公共子表達式消除、內(nèi)聯(lián)、標量替換、死代碼刪除、指令亂序等。由于不同的操作系統(tǒng)對內(nèi)存一致性有不同的約束,需要通使用鎖等同步語義保證多線程內(nèi)存一致性。目前,通過基于共享內(nèi)存的樂觀鎖、自旋鎖、偏向鎖、精準內(nèi)存屏障等手段可以實現(xiàn)性能優(yōu)秀的多線程程序,但也存在一定的問題:線程和鎖方案的優(yōu)化依賴軟件工程有良好的并發(fā)實踐規(guī)范和資深并發(fā)程序開發(fā)者,且容易引發(fā)死鎖,測試及維護的成本也很高。

06df7546-efa2-11ed-878e-dac502259ad0.png

一種 CPU 多核架構

2.2??

Actor 模型

Actor模型概念的提出已經(jīng)幾十年了:一個actor是一個基本的計算單元,通過消息通信;內(nèi)部維持可變狀態(tài),兩邊互相不能直接修改。其優(yōu)勢在于每個Actor易于維護以及測試,業(yè)務開發(fā)只需要關心業(yè)務的消息處理,測試只需要覆蓋消息流順序即可。此外,其容錯性也好,適合分布式編程。當然,Actor模型也存在一定的短板:存在信箱堆滿問題,不共享狀態(tài),只通過消息通信交互,不適合細粒度并行。

06edc4d4-efa2-11ed-878e-dac502259ad0.png

Actor 模型

2.3??

函數(shù)式編程

函數(shù)式編程有以下特點:函數(shù)是一等公民;無副作用(無共享可變狀態(tài));純函數(shù)構建一切。在函數(shù)式編程下,只要輸入一定,其輸出也一定符合預期。真實世界的函數(shù)式則更依賴參數(shù)化,會將函數(shù)副作用(Side Effect)上拋,盡量脫離開發(fā)者編寫的業(yè)務邏輯層,在框架內(nèi)部進行處理,且有結構依賴。該模式具有確定性、健壯性(易維護易測試)以及天然支持并行化等優(yōu)勢,但開發(fā)效率較低,實際的業(yè)務邏輯很難直接轉(zhuǎn)成函數(shù)式開發(fā),且在部分場景下性能表現(xiàn)較差。

07012196-efa2-11ed-878e-dac502259ad0.png

函數(shù)式編程

2.4??

并發(fā)模型特點

常見的并發(fā)模型主要分為兩類,一類僅基于共享內(nèi)存,另一類則基于消息通信。基于共享內(nèi)存的并發(fā)模型(線程與鎖),具有適用范圍廣、接近硬件工作方式的本質(zhì)和正確使用時效率很高的優(yōu)勢,但不可避免地存在測試及維護困難等問題,目前該模式已經(jīng)逐漸被應用開發(fā)領域摒棄;基于消息通信的并發(fā)模型(Actor、函數(shù)式編程),具有容錯性好、特定場景性能表現(xiàn)很好且易于維護和測試的優(yōu)勢,但也存在應用場景有限、不適合細粒度并行等短板。

03?

移動應用框架并發(fā)

3.1??

Dart 語言

Dart是一門新的編程語言,如同JAVA、PHP一樣,是為了解決編寫應用程序中的一些實際問題而被Google發(fā)明的,其早期主要是為了能夠在Web領域替換JavaScript(后文簡稱JS),后來Google內(nèi)部用Dart編寫孵化了一個移動開發(fā)框架Sky,之后又被命名為Flutter,在移動跨平臺開發(fā)領域大放異彩。Dart的并發(fā)目標主要為了賦能框架支持任務并行化,解決開發(fā)者的并發(fā)任務和多線程開發(fā)需求。其僅共享不可變對象,而可變對象不共享,且提供了單線程并發(fā)(異步)和多線程并發(fā)(Isolate Spawn /Compute)的并發(fā)API

0717461a-efa2-11ed-878e-dac502259ad0.png

Dart 并發(fā)架構

3.2??

Swift

Swift是蘋果公司于2014年WWDC蘋果開發(fā)者大會發(fā)布的新開發(fā)語言,可與Objective-C共同運行于macOS和iOS平臺,用于搭建基于蘋果平臺的應用程序。在2022年的Swift 5.5版本中,發(fā)布了并發(fā)API的說明,其并發(fā)目標主要為了減少應用開發(fā)者從想法到實現(xiàn)必須花費的時間,使體驗遠遠優(yōu)于現(xiàn)有方案(隊列不可知、可維護性差且安全性低)。Swift的并發(fā)理念是,共享可變狀態(tài)不利于開發(fā)者,也不利于硬件,且無法突破單進程。因此,Swift希望能夠提供無損化的易用的API,在設計、可維護性、安全性、可伸縮性以及性能等方面持續(xù)改進。目前,Swift已提供的API有async/await、Task & TaskGroup、Actor等。

3.3??

流行移動操作系統(tǒng)并發(fā)模型趨勢

在移動應用開發(fā)領域中,迭代和更新頻繁,開發(fā)效率是一個關鍵因素,而鎖對于應用開發(fā)者過于底層,很難用好,難以調(diào)試,屬于高級用法。出于提供易用、簡單、高效的并發(fā)模型考慮,業(yè)界目前給應用開發(fā)者提供的多線程模型,有避免數(shù)據(jù)競爭、實現(xiàn)無鎖化的趨勢。例如,在Web上,JS在多線程使用的是消息通信機制(內(nèi)存隔離,增加可轉(zhuǎn)移Builtin對象支持);在Flutter上,Dart在多線程使用的是消息通信機制 (內(nèi)存隔離);在Android上,Kotlin原生先后提出過Worker API、不可變共享、對象轉(zhuǎn)移凍結等方案替換共享多線程方案(用戶不使用鎖);在IOS上,Swift 5.5實現(xiàn)了結構化編程和Actor,Swift整體并發(fā)的演進思路是默認安全的編程模型。

04?

OpenHarmony高級語言的并發(fā)探索

在JS世界的并發(fā)中,如前文所提到的JS并發(fā)架構—Actor模型,具有無鎖、容易維護和測試、容錯性好以及分布式編程等優(yōu)勢,但啟動較慢,并發(fā)的實例開銷大。對于JS并發(fā)API—Worker來說,由于其每一個并發(fā)實例之間不共享,開發(fā)者需要封裝和解析消息命令,關心Worker實例的生命周期,在高負載和低負載時也需要精確調(diào)節(jié)Worker數(shù)量。

基于上述問題,OpenHarmony上實現(xiàn)了輕量化并發(fā)實例——Lite Actor。該功能支持不可變對象共享,對基礎架構進行了輕量化處理,大幅提升了啟動時間,且優(yōu)化了啟動內(nèi)存。

07243bfe-efa2-11ed-878e-dac502259ad0.png

ArkCompiler并發(fā)實例運行

OpenHarmony也提供了TaskPool。TaskPool是一個更易用的并發(fā)任務API,能夠使開發(fā)者易于開發(fā)并發(fā)任務,減少代碼編寫量,讓其無需關心并發(fā)實例的生命周期和場景下并發(fā)任務的負載輕重。此外,TaskPool還能夠統(tǒng)一任務負載的資源管理,降低了系統(tǒng)的資源消耗,提升了系統(tǒng)的整體性能。在如圖所示的TaskPool架構中,通過Task Dispatch Manager實現(xiàn)優(yōu)先級調(diào)度、負載均衡以及系統(tǒng)的統(tǒng)一管理等功能,通過Task Worker Threads實現(xiàn)自適應性和可伸縮性。

073c18aa-efa2-11ed-878e-dac502259ad0.png

TaskPool統(tǒng)一任務池設計架構

在高級語言并發(fā)的發(fā)展中,業(yè)界更傾向于給開發(fā)者提供更易用、更好用以及更高效的并發(fā)API。OpenHarmony提供的并發(fā)API目前介于Dart和Swift之間,汲取兩者的長處,并對其現(xiàn)存問題進行持續(xù)的優(yōu)化和改進。此外,OpenHarmony正在考慮引入準靜態(tài)對象,實現(xiàn)真正共享。

05?

總結

在OpenHarmony并發(fā)模型上,后續(xù)將對并發(fā)實例進一步輕量化,探索共享對象的無鎖并發(fā)。此外,在OpenHarmony并發(fā)調(diào)度上,也將針對現(xiàn)存的系統(tǒng)中線程泛濫問題,從時間和空間兩個維度設計相關方案進行優(yōu)化和改進,并將開發(fā)一套統(tǒng)一的并行框架,在運行時根據(jù)任務依賴狀態(tài)和可執(zhí)行資源自動并發(fā)調(diào)度和執(zhí)行任務。

歡迎大家持續(xù)關注OpenHarmony并發(fā)研究工作,也期待與社區(qū)的開發(fā)者們共建OpenHarmony的并發(fā)能力。

E N D

審核編輯黃宇


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    華為李捷亮相MWC 2025并發(fā)表主題演講

    在MWC25間,GSMA成功舉辦了主題為“FWA:5G成功故事,它能走多遠?”的FWA專題峰會。此次峰會吸引了全球領先的運營商、網(wǎng)絡設備供應商以及分析師機構齊聚一堂,共同分享FWA的發(fā)展歷程與未來前景,
    的頭像 發(fā)表于 03-11 09:45 ?380次閱讀

    RK3568驅(qū)動指南|第三篇-并發(fā)與競爭-19章 并發(fā)與競爭實驗

    RK3568驅(qū)動指南|第三篇-并發(fā)與競爭-19章 并發(fā)與競爭實驗
    的頭像 發(fā)表于 02-24 16:26 ?490次閱讀
    RK3568驅(qū)動指南|第三篇-<b class='flag-5'>并發(fā)</b>與競爭-<b class='flag-5'>第</b>19章 <b class='flag-5'>并發(fā)</b>與競爭實驗

    語言模型開發(fā)框架是什么

    語言模型開發(fā)框架是指用于訓練、推理和部署大型語言模型的軟件工具和庫。下面,AI部落小編為您介紹大語言模型開發(fā)框架。
    的頭像 發(fā)表于 12-06 10:28 ?468次閱讀

    語言模型開發(fā)語言是什么

    在人工智能領域,大語言模型(Large Language Models, LLMs)背后,離不開高效的開發(fā)語言和工具的支持。下面,AI部落小編為您介紹大語言模型
    的頭像 發(fā)表于 12-04 11:44 ?597次閱讀

    OpenHarmony城市技術論壇11——香港站圓滿舉辦

    操作系統(tǒng)內(nèi)核、編程語言、圖形處理等創(chuàng)新技術展開討論,并探索如何吸引全球范圍的硬件制造商、應用開發(fā)商和開發(fā)者共同打造一個多元化的國際化生態(tài)系統(tǒng)。 嘉賓合照 本次技術論壇由OpenHarm
    的頭像 發(fā)表于 11-18 11:39 ?1549次閱讀
    OpenHarmony城市技術論壇<b class='flag-5'>第</b>11<b class='flag-5'>期</b>——香港站圓滿舉辦

    華為宋曉迪出席自動駕駛網(wǎng)絡峰會

    10屆全球超寬帶高峰論壇(UBBF 2024)期間,華為運營商業(yè)務首席營銷官宋曉迪博士出席自動駕駛網(wǎng)絡峰會并發(fā)表主題致辭。會上,宋曉迪分享了華為與合作伙伴的產(chǎn)業(yè)發(fā)展及商業(yè)實踐成果。
    的頭像 發(fā)表于 11-04 16:08 ?737次閱讀

    MCU編程語言開發(fā)環(huán)境介紹

    MCU編程語言 MCU編程語言是用于編寫MCU程序的高級編程語言,它們使得開發(fā)者能夠更高效地開發(fā)
    的頭像 發(fā)表于 11-01 11:51 ?2007次閱讀

    迅為iTOP-RK3568開發(fā)板驅(qū)動開發(fā)指南-第十八篇 PWM

    教程概覽 文檔教程更新至18篇-PWM 1篇 驅(qū)動基礎篇 2篇 字符設備基礎 3篇 并發(fā)與競爭
    發(fā)表于 10-29 10:13

    go語言如何解決并發(fā)問題

    作為一個后端開發(fā),日常工作中接觸最多的兩門語言就是PHP和GO了。無可否認,PHP確實是最好的語言(手動狗頭哈哈),寫起來真的很舒爽,沒有任何心智負擔,字符串和整型壓根就不用區(qū)分,開發(fā)
    的頭像 發(fā)表于 10-23 13:38 ?426次閱讀
    go<b class='flag-5'>語言</b>如何解決<b class='flag-5'>并發(fā)</b>問題

    第二屆大會回顧25 | OpenHarmony上的Python設備應用開發(fā)

    Python以其簡單、易學和功能強大而聞名,有著廣泛的用戶群體。采用Python開發(fā)有助于降低OpenHarmony的學習門檻。如何在OpenHarmony上用Python開發(fā)設備應用,有哪些關鍵技術?電
    的頭像 發(fā)表于 08-27 11:53 ?1116次閱讀
    第二屆大會<b class='flag-5'>回顧</b><b class='flag-5'>第</b>25<b class='flag-5'>期</b> | OpenHarmony上的Python設備應用<b class='flag-5'>開發(fā)</b>

    2024 RISC-V 中國峰會:華秋電子助力RISC-V生態(tài)!

    百家業(yè)界領先企業(yè)及頂尖研究機構的專家學者,吸引了約3000名開發(fā)者、學者及行業(yè)精英親臨現(xiàn)場。在峰會前后,還策劃了超過20場豐富多彩的同期活動,為全球開發(fā)者提供了一個深入交流、碰撞思想、共謀RISC-V
    發(fā)表于 08-26 16:46

    鴻蒙原生應用元服務開發(fā)-初識倉頡開發(fā)語言

    強大的類型推斷能力,可以減少類型標注工作,提高開發(fā)效率。 內(nèi)存安全 :倉頡編程語言支持自動內(nèi)存管理,并在運行時進行數(shù)組下標越界檢查、溢出檢查等,確保運行時內(nèi)存安全。 高效并發(fā) :倉頡編程語言
    發(fā)表于 08-15 10:00

    鴻蒙原生應用元服務開發(fā)-初識倉頡開發(fā)語言

    強大的類型推斷能力,可以減少類型標注工作,提高開發(fā)效率。 內(nèi)存安全 :倉頡編程語言支持自動內(nèi)存管理,并在運行時進行數(shù)組下標越界檢查、溢出檢查等,確保運行時內(nèi)存安全。 高效并發(fā) :倉頡編程語言
    發(fā)表于 07-30 17:49

    3章_UART 開發(fā)基礎

    3章_UART 開發(fā)基礎
    的頭像 發(fā)表于 06-29 14:27 ?1101次閱讀
    <b class='flag-5'>第</b>3章_UART <b class='flag-5'>開發(fā)</b>基礎

    第二屆大會回顧22 軟件缺陷漏洞分析

    演講嘉賓 | 梁洪亮 回顧整理 | 廖? ?濤 排版校對 | 宋夕明 嘉賓介紹 OS安全分論壇? 梁洪亮, 博士,北京郵電大學副教授,博士生導師。研究興趣為可信軟件與智能系統(tǒng)。 視頻回顧 ? 打開嗶
    的頭像 發(fā)表于 06-27 08:42 ?760次閱讀
    第二屆大會<b class='flag-5'>回顧</b><b class='flag-5'>第</b>22<b class='flag-5'>期</b>  軟件缺陷漏洞分析
    主站蜘蛛池模板: 国产午夜a理论毛片在线影院 | 香蕉视频久久久 | 黄色片 720p| 777欧美午夜精品影院 | 午夜影院啊啊啊 | 四虎影院免费在线播放 | 日本一区二区三区四区视频 | 国产理论视频 | 狠狠88综合久久久久综合网 | 四虎最新网址 | 好爽好紧好大的免费视频国产 | 国产做a爰片久久毛片 | 午夜影视体验区 | 成人久久久精品乱码一区二区三区 | 999色综合| 九九视频这里只有精品 | 日本特级视频 | 国产在线视频www色 国产在线视频欧美亚综合 国产在线视频网站 | 亚洲国产福利精品一区二区 | www.九色视频 | 啪啪在线视频 | 亚洲男人的天堂久久无 | 可以免费看的黄色片 | 午夜精品久久久久久99热7777 | 中文字幕在线看精品乱码 | 9966国产精品视频 | 全国男人的天堂天堂网 | 久久久这里有精品999 | 西西人体www303sw大胆高清 | 热久久久| 国精视频一区二区视频 | 日本免费不卡一区 | 国产精品视频久久久久 | 免费又黄又爽的禁片视频 | 国产欧美日韩va | 亚洲综合成人网在线观看 | www.丁香.com| 黄色三级视频网站 | 成人国产一区二区三区 | 久久美女免费视频 | 性夜黄a爽爽免费视频国产 羞羞答答xxdd影院欧美 |