• <option id="cacee"><noscript id="cacee"></noscript></option>
  • <table id="cacee"><noscript id="cacee"></noscript></table>
  • <td id="cacee"></td>
  • <option id="cacee"></option>
  • <table id="cacee"></table>
  • <option id="cacee"><option id="cacee"></option></option>
  • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
    <option id="cacee"><option id="cacee"></option></option>
     找回密碼
     立即注冊

    掃一掃,登錄網站

    首頁 區塊鏈生態 查看內容
    • 2716
    • 0
    • 分享到

    比Python快68000倍!Mojo正式發布,網友:Python生態系統最重要的升級來了

    2023-9-8 13:42

    來源: AI前線 作者: 編譯 | 凌敏、核子可樂

    Mojo為何能比 Python 快 68000 倍?


    Mojo 是 Python 家族的一員,但有著遠大的目標——想要與 Python 生態系統完全兼容,因此開發人員可以繼續使用自己熟悉的工具。Mojo 旨在通過保留 Python 的動態特性,同時為系統編程添加新原語,逐漸成為 Python 的超集。

    LLVM 和 Swift 編程語言的聯合創始人、Modular 公司 CEO Chris Lattner 此前在 Hacker News 上表示:“我們的目標不是讓動態 Python 神奇地快速。雖然我們在動態代碼方面要快得多(因為我們有編譯器而不是解釋器),但這并不是依靠‘足夠智能’的編譯器來消除動態性”。

    據介紹,Mojo 最初的目標是比 Python 快 35000 倍,近日該團隊表示,Mojo 將動態與靜態語言的優點結合起來,一舉將性能提升達 Python 的 68000 倍。

    Mojo 團隊在系列博文中介紹了 Mojo 是如何比 Python 快 68000 倍的:在第一篇博文中,團隊嘗試將代碼移植為 Mojo,從而獲得了約 90 倍的性能提升;在第二篇博文中,團隊對代碼進行矢量化與并行化,又將性能提升了 2.6 萬倍;在第三篇博文中,團隊展示如何通過新的性能技術全面超越 3.5 萬倍的程序加速目標。

    具體來說,Mojo 團隊首先用簡單端口將 Python 程序提速 89 倍;之后通過針對性優化和利用現代 CPU 的算力潛能,又將速度提升 2.6 萬倍。Mojo 團隊提出的并行策略是,每個 CPU 核心都應負責處理同等數量的代碼行。

    然而,只有當跨行工作負載相同時,對負載進行拆分以保證各個線程 worker 獲取其中一組代碼行才具有可行性;但曼德勃羅集并不是這樣。以這種方式進行拆分會引發負載不均衡問題,這是因為曼德勃羅集中的一個像素可能在單次迭代后完成,而另一像素則可能經歷 MAX_ITERS 多次迭代。也就是說,各個行的迭代次數并不相等,會導致某些率先完成計算的線程處于閑置狀態,不利于全面挖掘性能潛力。

    為了演示這種不均衡問題,Mojo 團隊繪制了每個行在曼德勃羅集中執行的迭代總數。如下圖所示,某些行在轉義之前只需要不到 1000 次迭代,但其他一些行則可能需要超 80 萬次迭代。

    各個行所執行的迭代總數(以對數坐標系顯示)并非均勻分布。某些行(例如圖像中央部分的行)可能需要 80 多萬次迭代,而兩端的行則只需要 800 次左右迭代。

    如果硬性為各個線程分配一定數量的連續行,就會發生全體線程都在等待,直至中間某組代碼行(被分配給某個核心)完成運行的情況。解決這個問題的辦法有很多,但最簡單的當然是過度拆分。也就是說,各個線程所獲得的不是一組平均分配的行,而是建立起一個工作負載池,再為每個行創建相應的工作項。各線程則以循環方式不斷從線程池中拾取這些工作項。

    好消息是 Mojo 擁有一個性能出色的并發運行時,所以我們用不著自行創建線程池或者設計循環拾取 / 執行。Mojo 的運行時提供不少高級功能,可以充分利用這樣的多核心系統。

    回顧整個旅程,Mojo 團隊先是對 Python 代碼實現了 2.6 萬倍性能提升,之后又使用超額訂閱達成提速 68847 倍的最終成績,并最終實現了 6.8 萬倍的 Python 提速效果;而在應用超額訂閱之后,性能在此前并行版本的基礎上又提高了 1 倍。

    版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。
    相關新聞
    發表評論

    請先 注冊/登錄 后參與評論

      回頂部
    • <option id="cacee"><noscript id="cacee"></noscript></option>
    • <table id="cacee"><noscript id="cacee"></noscript></table>
    • <td id="cacee"></td>
    • <option id="cacee"></option>
    • <table id="cacee"></table>
    • <option id="cacee"><option id="cacee"></option></option>
    • <table id="cacee"><source id="cacee"></source></table><td id="cacee"><rt id="cacee"></rt></td>
      <option id="cacee"><option id="cacee"></option></option>
      妖精视频