色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

Spark基于DPU的Native引擎算子卸載方案

中科馭數 ? 來源:中科馭數 ? 作者:中科馭數 ? 2024-06-28 17:12 ? 次閱讀

1.背景介紹

Apache Spark(以下簡稱Spark)是一個開源的分布式計算框架,由UC Berkeley AMP Lab開發,可用于批處理、交互式查詢(Spark SQL)、實時流處理(Spark Streaming)、機器學習(Spark MLlib)和圖計算(GraphX)。Spark使用內存加載保存數據并進行迭代計算,減少磁盤溢寫,同時支持 Java、Scala、Python和 R等多種高級編程語言,這使得Spark可以應對各種復雜的大數據應用場景,例如金融、電商、社交媒體等。

Spark 經過多年發展,作為基礎的計算框架,不管是在穩定性還是可擴展性方面,以及生態建設都得到了業界廣泛認可。盡管Apache社區對Spark逐步引入了諸如鎢絲計劃、向量化 Parquet Reader等一系列優化,整體的計算性能也有兩倍左右的提升,但在 3.0版本以后,整體計算性能的提升有所減緩,并且隨著存儲、網絡以及IO技術的提升,CPU也逐漸成為Spark計算性能的瓶頸。如何在Spark現有框架上,增強大數據計算能力,提高CPU利用率,成為近年來業界的研究方向。

2.開源優化方案

Spark本身使用scala語言編寫,整體架構基于 JVM開發,只能利用到一些比較基礎的 CPU指令集。雖然有JIT的加持,但相比目前市面上的Native向量化計算引擎而言,性能還是有較大差距。因此考慮如何將具有高性能計算能力的Native向量引擎引用到 Spark里來,提升 Spark的計算性能,突破 CPU瓶頸,成為一種可行性較高的解決方案。

隨著Meta在2022年超大型數據庫國際會議(VLDB)上發表論文《Velox:Meta's Unified Execution Engine》,并且Intel創建的Gluten項目基于Apache Arrow數據格式和Substrait查詢計劃的JNI API將Spark JVM和執行引擎解耦,從而將Velox集成到Spark中,這使得使用Spark框架+Native向量引擎的大數據加速方案成為現實。

3.DPU計算卡與軟件開發平臺

AI大模型的發展,金融、電商等領域數據處理需求的增加,生活應用虛擬化程度的加深,都對現代化數據中心提出嚴峻的考驗。未來數據中心的發展趨勢,逐步演變成CPU + DPU + GPU三足鼎立的情況,CPU用于通用計算,GPU用于加速計算,DPU則進行數據處理。將大數據計算卸載到具有高度定制化和數據處理優化架構的大規模數據計算DPU卡上,可以有效提高計算密集型應用場景下數據中心的性能和效率,降低其成本和能耗。

中科馭數CONFLUX?-2200D大數據計算DPU卡主要應用于大數據計算場景。CONFLUX?-2200D通過計算DPU卸載加速,存儲DPU卸載加速和網絡DPU卸載加速實現大數據計算性能3-6倍提升。CONFLUX?-2200D是基于中科馭數自主知識產權的KPU(Kernel Processing Unit)架構、DOE(Data Offloading Engine)硬件數據庫運算卸載引擎和LightningDMA中科馭數自主知識產權的基于DMA的直接內存寫入技術提出的領域專用DPU卡。能夠滿足無侵入適配、自主可控、安全可靠,支持存算一體、存算分離等不同場景。

中科馭數HADOS是中科馭數推出的專用計算敏捷異構軟件開發平臺。HADOS?數據查詢加速庫通過提供基于列式數據的查詢接口,供數據查詢應用,目前Spark、PostgreSQL已通過插件的形式適配。支持Java、Scala、C和C++語言的函數調用,主要包括列數據管理、數據查詢運行時函數、任務調度引擎、函數運算代價評估、內存管理、存儲管理、硬件管理、DMA引擎、日志引擎等模塊,目前對外提供數據管理、查詢函數、硬件管理、文件存儲相關功能API。

4.Spark框架+Gluten-Velox向量化執行引擎+DPU加速卡

4.1方案簡介

隨著SSD和萬兆網卡普及以及I/O技術的提升,Spark用戶的數據負載計算能力逐漸受到CPU性能瓶頸的約束。由于Spark本身基于JVM的Task計算模型的CPU指令優化,要遠遠遜色于其他的Native語言(C++等),再加上開源社區的Native引擎已經發展得比較成熟,具備優秀的量化執行能力,這就使得那些現有的Spark用戶,如果想要獲得這些高性能計算能力就需要付出大量的遷移和運維成本。

Gluten解決了這一關鍵性問題,讓Spark用戶無需遷移,就能享受這些成熟的Native引擎帶來的性能優勢。Gluten最核心的能力就是通過Spark Plugin的機制,把Spark查詢計劃攔截并下發給Native引擎來執行,跳過原生Spark不高效的執行路徑。整體的執行框架仍沿用Spark既有實現,并且對于Native引擎無法承接的算子,Gluten安排Fallback回正常的Spark執行路徑進行計算,從而保證Spark任務執行的穩定性。同時Gluten還實現了Fallback、本地內存管理等功能,使得Spark可以更好利用Native引擎帶來的高性能計算能力。

Velox是一個集合了現有各種計算引擎優化的新穎的C++數據加速庫,其重新設計了數據模型以支持復雜數據類型的高效計算,并且提供可重用、可擴展、高性能且與上層軟件無關的數據處理組件,用于構建執行引擎和增強數據管理系統。

由于Velox只接收完全優化的查詢計劃作為輸入,不提供 SQL解析器、dataframe層、其他 DSL或全局查詢優化器,專注于成為大數據計算的執行引擎。這就使得Gluten+Velox架構可以各司其職,從而實現數據庫組件模塊化。

wKgZomZ-fKiAAsUcAAFEwmESLqQ755.png

要將Gluten+Velox優化過的Spark計算任務卸載到DPU卡,還缺少一個異構中間層,為此中科馭數研發了HADOS異構執行庫,該庫提供列數據管理、數據查詢運行時函數、任務調度引擎、函數運算代價評估、內存管理等多種DPU能力的API接口,并且支持Java,C++等多種大數據框架語言的調用,擁有極強的拓展性,以及與現有生態的適配性。HADOS敏捷異構軟件平臺可以適應復雜的大數據軟件生態,在付出較小成本的情況下為多種計算場景提供DPU算力加速。Spark框架集成Gluten+Velox向量化執行引擎,然后使用HADOS平臺,就可以將經過向量化優化的計算任務,利用DPU執行,從而徹底釋放CPU,實現DPU高性能計算。

4.2 DPU算力卸載

velox是由C++實現的向量化計算引擎,其核心執行框架涵蓋了任務(Task)、驅動(Driver)和操作器(Operator)等組件。velox將Plan轉換為由PlanNode組成的一棵樹,然后將PlanNode轉換為Operator。Operator作為基礎的算子,是實際算法執行的邏輯框架,也是實現DPU計算卸載的關鍵。

4.2.1邏輯框架

Operator作為實際算法的邏輯框架,承載著各種表達式的抽象,每一個Operator中包含一個或多個表達式來實現一個復雜完整的計算邏輯塊,表達式的底層是由function來具體實現。Velox向開發人員提供了API可以實現自定義scalar function,通過實現一個異構計算版本的function,然后將這個function注冊到Velox的函數系統中,就可以將計算任務卸載到DPU卡上。任務執行過程如下圖:

wKgZomZ-fJSAcULaAACu8X5ZUvM185.png

中科馭數的CONFLUX?-2200DS大數據計算加速DPU卡可以實現列式計算,并且HADOS平臺支持C++語言,所以可以直接解析Velox的向量化參數。對于列式存儲的數據,經過對數據類型的簡單處理之后,可以直接交給DPU執行計算任務,免去了數據行列轉換的性能損失,同時也降低了DPU計算資源集成的運維難度,大大提高了Velox異構開發的效率。

4.2.2算子卸載

以我們實現卸載的Filter算子為例,對于cast(A as bigint)>1這一具體的表達式,來探究如何實現”>”這一二元運算符的卸載。

Filter算子的Operator中會使用有一個 std::unique_ptr exprs_的變量,用來執行過濾和投影的計算。ExprSet是Filter算子計算的核心,其本質是一顆表達式樹。cast(A as bigint)>1的表達式樹以及表達式樹的靜態節點類型如下:

wKgaomZ-fIeABX1EAABKIi2tCto087.png

節點類型 作用
FieldAccessTypedExpr 表示RowVector中的某一列,作為表達式的葉子節點
ConstantTypedExpr 表示常量值,作為表達式的葉子節點
CallTypedExpr 表示函數調用表達式,子節點表示輸入參數
表示特殊類型表達式,包括
if/and/or/switch/cast/try/coalesce等
CastTypedExpr 類型轉換
LambdaTypedExpr Lambda表達式,作為葉子節點

在表達式的所有子節點執行完后,會執行applyFunction,說明當前表達式節點是一個函數調用,然后調用vectorFunction_的apply來對結果進行處理,輸入是inputValues_數組,該數組長度與函數的表達式葉子節點數相等(文中示例表達式的葉子節點為2),作為函數的參數,result為輸出,結果為VectorPtr,程序流程圖如下:

wKgaomZ-fH-AHggnAABj-GQ8lJE207.png

4.2.3 Fallback

現階段我們只實現了Filter算子的部分表達式,后續還會繼續支持更多的算子和表達式。對于一些無法執行的算子和表達式,還是需要退回給Velox,交由CPU執行,從而保證SQL的正常執行。由于處理的是列式數據,所以回退的執行計劃可以不需要任何處理,就可以直接從HADOS退還給Velox,幾乎無性能損失。

4.2.4 DPU資源管理

HADOS平臺會對服務器的DPU資源進行統一管理。對于卸載的計算任務根據現有的DPU資源進行動態分配,從而實現計算資源的高效利用。同時HADOS平臺還會對計算任務中所需的內存進行合理的分配,動態申請和釋放系統內存,從而減少額外的內存開銷。

4.3加速效果

單機單線程local模式,使用1G數據集,僅卸載Filter算子的部分表達式的場景下,TPC-DS語句中有5條SQL語句,可以將使用開源方案的加速效果提升15-20%左右。q70語句,在開源方案提升100%的基礎上,提升了15%;q89語句,在開源方案提升50%的基礎上,提升了27%;q06在開源方案提升170%的基礎上,提升了13%。

wKgaomZ-fHmAe35qAAC7txK8IwA017.png

單一運算符場景下(SELECT a FROM t WHERE a = 100),使用DPU運算符相比 Spark原生的運算符的加速比最高達到12.7。

wKgZomZ-fHWAK8o8AACJ7iopfBE806.png

5.不足和展望

中科馭數HADOS敏捷異構軟件平臺可以十分輕松地與現有開源大數據加速框架相結合,并且為開源框架提供豐富的算力卸載功能。HADOS平臺在完美發揮開源加速框架優勢的前提下,為大數據任務提供硬件加速能力。由于現在我們只實現了較小部分算子卸載的驗證,在執行具有復雜算子操作的SQL時無法發揮出DPU的全部實力,并且因為開源方案在設計之處并沒有考慮到使用DPU硬件,所以在磁盤IO,算子優化等方面的性能還有待優化。后續我們也會從一下幾個方面來進一步做特定優化:

開發更多較復雜的算子,例如重量級的聚合算子會消耗CPU大量的計算能力從而影響Spark作業,通過將聚合算子卸載到DPU硬件來解放CPU能力,從而使得加速效果更加明顯;

優化DPU的磁盤讀寫,讓DPU可以直接讀取硬盤數據,省去數據在服務器內部的傳輸時間,可以減少數據準備階段的性能損耗;

RDMA技術,可以直讀取遠端內存數據,數據傳輸內容直接卸載到網卡,減少數據在系統內核中額外的數據復制與移動,可以減少大數據任務計算過程中的性能損耗。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10971

    瀏覽量

    214377
  • DPU
    DPU
    +關注

    關注

    0

    文章

    376

    瀏覽量

    24426
  • SPARK
    +關注

    關注

    1

    文章

    105

    瀏覽量

    20168
收藏 0人收藏

    評論

    相關推薦

    hyper 卸載,Hyper卸載:如何徹底卸載hyper-v并恢復系統設置

    ? ? 隨著企業規模的不斷擴大,數據和任務的管理變得愈發復雜。傳統的管理方式已經無法滿足高效運營的需求,而批量管理工具的出現,為企業提供了一種全新的解決方案。今天就為大家介紹Hyper卸載:如何徹底
    的頭像 發表于 01-24 14:17 ?3227次閱讀
    hyper <b class='flag-5'>卸載</b>,Hyper<b class='flag-5'>卸載</b>:如何徹底<b class='flag-5'>卸載</b>hyper-v并恢復系統設置

    在NVIDIA BlueField-3 DPU上運行WEKA客戶端的實際優勢

    WEKA是可擴展軟件定義數據平臺的先驅,NVIDIA 正在與其合作,將 WEKA 先進的數據平臺解決方案與功能強大的NVIDIA BlueField DPU相結合。
    的頭像 發表于 01-07 09:43 ?395次閱讀
    在NVIDIA BlueField-3 <b class='flag-5'>DPU</b>上運行WEKA客戶端的實際優勢

    AFE4403 EVM的GUI打不開,顯示labview運行時引擎找不到是哪里出了問題?

    最開始下載是可以打開的,后來卸載重裝過,卸載的時候手工強制刪除過NI文件夾,就是national instrument那個;再重新安裝就不能打開了,強制刪除的文件重裝貌似也回不來了,怎么辦。。下載了運行引擎2011版安裝了也不
    發表于 12-31 06:39

    基于 DSP5509 進行數字圖像處理中 Sobel 算子邊緣檢測的硬件連接電路圖

    以下是基于 DSP5509 進行數字圖像處理中 Sobel 算子邊緣檢測的硬件設計方案: 一、總體架構 圖像采集:使用合適的圖像傳感器,如 CMOS 傳感器,通過相應的接口(如 SPI、I2C 等
    發表于 09-25 15:25

    服務網格DPU卸載解決方案

    服務網格(Service Mesh)是微服務架構中的一種重要技術,它主要處理服務之間的通信,為服務間的信息交換提供更安全、更快速且更可靠的基礎設施層。服務網格將服務治理從業務邏輯中剝離出來,拆解為獨立的進程,實現異構系統的統一治理和增強網絡安全。
    的頭像 發表于 09-20 16:25 ?488次閱讀
    服務網格<b class='flag-5'>DPU</b><b class='flag-5'>卸載</b>解決<b class='flag-5'>方案</b>

    spark為什么比mapreduce快?

    spark為什么比mapreduce快? 首先澄清幾個誤區: 1:兩者都是基于內存計算的,任何計算框架都肯定是基于內存的,所以網上說的spark是基于內存計算所以快,顯然是錯誤的 2;DAG計算模型
    的頭像 發表于 09-06 09:45 ?384次閱讀

    中科馭數分析DPU在云原生網絡與智算網絡中的實際應用

    CCF Chip 2024,精彩不能停!7月21日下午,中科馭數在第二屆中國計算機學會(CCF)芯片大會的“馭數專屬時刻”仍在繼續,馭數組織承辦“DPU技術趨勢和應用——DPU在云原生與智算網絡中
    的頭像 發表于 08-02 11:21 ?891次閱讀

    IaaS+on+DPU(IoD)+下一代高性能算力底座技術白皮書

    、VMware、Palo Alto 等公司紛紛推出相關解決方案。這些方案背后共同的本質思想是:將云計算的 IaaS 層組件從服務器側卸載后圍繞 DPU 構筑高性能算力底座,與 AWS、
    發表于 07-24 15:32

    spark運行的基本流程

    前言: 由于最近對spark的運行流程非常感興趣,所以閱讀了《Spark大數據處理:技術、應用與性能優化》一書。通過這本書的學習,了解了spark的核心技術、實際應用場景以及性能優化的方法。本文旨在
    的頭像 發表于 07-02 10:31 ?573次閱讀
    <b class='flag-5'>spark</b>運行的基本流程

    Spark+Hive”在DPU環境下的性能測評 | OLAP數據庫引擎選型白皮書(24版)DPU部分節選

    在奇點云2024年版《OLAP數據庫引擎選型白皮書》中,中科馭數聯合奇點云針對Spark+Hive這類大數據計算場景下的主力引擎,測評DPU環境下對比CPU環境下的性能提升效果。特此節
    的頭像 發表于 05-30 16:09 ?652次閱讀
    “<b class='flag-5'>Spark</b>+Hive”在<b class='flag-5'>DPU</b>環境下的性能測評 | OLAP數據庫<b class='flag-5'>引擎</b>選型白皮書(24版)<b class='flag-5'>DPU</b>部分節選

    鴻蒙ArkTS聲明式開發:跨平臺支持列表【掛載卸載事件】

    掛載卸載事件指組件從組件樹上掛載、卸載時觸發的事件。
    的頭像 發表于 05-27 14:42 ?472次閱讀
    鴻蒙ArkTS聲明式開發:跨平臺支持列表【掛載<b class='flag-5'>卸載</b>事件】

    鴻蒙OS開發實例:【Native C++】

    使用DevEco Studio創建一個Native C++應用。應用采用Native C++模板,實現使用NAPI調用C標準庫的功能。使用C標準庫hypot接口計算兩個給定數平方和的平方根。在輸入框中輸入兩個數字,點擊計算結果按鈕顯示計算后的數值。
    的頭像 發表于 04-14 11:43 ?3011次閱讀
    鴻蒙OS開發實例:【<b class='flag-5'>Native</b> C++】

    明天線上見!DPU構建高性能云算力底座——DPU技術開放日最新議程公布!

    技術在不同行業中的應用解決方案有哪些?能帶來怎樣的業務效果? 3月29日本周五,中科馭數集結產品大咖及解決方案專家團,誠邀您參加以“DPU構建高性能云算力底座”為主題的線上DPU技術開
    的頭像 發表于 04-03 18:12 ?1075次閱讀

    如何利用DPU加速Spark大數據處理? | 總結篇

    SSD速度通過NVMe接口得到了大幅提升,并且網絡傳輸速率也進入了新的高度,但CPU主頻發展并未保持同等步調,3GHz左右的核心頻率已成為常態。 在當前背景下Apache Spark等大數據處理工具中,盡管存儲和網絡性能的提升極大地減少了數據讀取和傳輸的時間消耗,但
    的頭像 發表于 04-02 13:45 ?1201次閱讀
    如何利用<b class='flag-5'>DPU</b>加速<b class='flag-5'>Spark</b>大數據處理? | 總結篇

    中科馭數DPU技術開放日秀“肌肉”:云原生網絡、RDMA、安全加速、低延時網絡等方案組團亮相

    DPU技術開放日既是對DPU技術應用的典型方案展示,也是DPU技術在重要細分場景走向成熟的標志。
    的頭像 發表于 04-01 11:48 ?947次閱讀
    中科馭數<b class='flag-5'>DPU</b>技術開放日秀“肌肉”:云原生網絡、RDMA、安全加速、低延時網絡等<b class='flag-5'>方案</b>組團亮相
    主站蜘蛛池模板: 影音先锋色av男人资源网 | 午夜福利网国产A | 99久久免费看国产精品 | 国产成人99久久亚洲综合精品 | 永久免费的无码中文字幕 | vagaa哇嘎黄短片 | 俄罗斯美女破处 | 好大太快了快插穿子宫了 | 暖暖日本大全免费观看 | 含羞草影院AE在线观看 | 伊人伊人影院 | 國產麻豆AVMDXMDX | 给我免费播放片bd国语 | 台湾佬休闲中性娱乐网 | 国产高清超清在线播放 | 野花香在线观看免费观看大全动漫 | 99国产精品久久久久久久日本竹 | 亚洲国产精品嫩草影院永久 | 久久人妻少妇嫩草AV無碼 | 乌克兰内射私拍 | 好紧的小嫩嫩17p | 在公交车上被JB草坏了被轮J了 | 最近最新的日本字幕MV | 国产 高清 无码 中文 | 亚洲欧美日韩在线观看一区二区三区 | 最近免费中文字幕MV在线视频3 | 51国产午夜精品免费视频 | 99久酒店在线精品2019 | 青柠电影高清在线观看 | 日本六九视频 | 色窝窝777欧美午夜精品影院 | 日韩欧美中文字幕在线 | 欧美亚洲日韩在线在线影院 | 青青娱乐网 | 九九99亚洲精品久久久久 | 精品国产成人AV在线看 | 国产欧美一区二区三区免费 | 人成片在线观看亚洲无遮拦 | 久久婷婷国产五月综合色啪最新 | 甜性涩爱免费下载 | 国产精品久久久久无码AV色戒 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品