<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          HVM大規(guī)模并行功能運行時

          聯(lián)合創(chuàng)作 · 2023-09-29 13:24

          高階虛擬機 (HVM) 是一個純函數(shù)式編譯目標,它是惰性的、非垃圾收集的大規(guī)模并行的,同時也是 beta 最優(yōu)的,這意味著在某些情況下,它可以比大多數(shù)功能運行時(包括 Haskell 的 GHC)快得多。

          這得益于一種新的計算模型,即交互網絡,它結合了圖靈機和 Lambda 演算,該模型的先前實現(xiàn)在實踐中效率低下,然而,最近的一項突破大大提高了其效率,催生了 HVM。盡管是一個原型,但它在許多情況下已經擊敗了成熟的編譯器,并且將朝著未知的性能水平擴展。

          用法

          1.安裝

          cargo install hvm

          2.創(chuàng)建一個HVM文件

          HVM 文件看起來像無類型的 Haskell,將以下文件另存為main.hvm

          // Creates a tree with `2^n` elements
          (Gen 0) = (Leaf 1)
          (Gen n) = (Node (Gen(- n 1)) (Gen(- n 1)))
          
          // Adds all elements of a tree
          (Sum (Leaf x))   = x
          (Sum (Node a b)) = (+ (Sum a) (Sum b))
          
          // Performs 2^n additions in parallel
          (Main n) = (Sum (Gen n))

          上面的程序創(chuàng)建了一個包含元素的完美二叉樹2^n并將它們相加,由于它是遞歸的,HVM 會自動并行化它。

          3.運行和編譯

          hvm r main 10                       #以 n=10 運行
          hvm c main                          #將 HVM 編譯為 C 
          clang -O2 main.c -o main -lpthread  #將 C 編譯為 BIN 
          ./main 30                           #以 n=30 運行

          上面的程序在現(xiàn)代 8 核處理器上運行大約需要 6.4 秒,而相同的 Haskell 代碼在具有 GHC 的同一臺機器上運行大約需要19.2 秒。

          這就是 HVM:編寫一個函數(shù)式程序,獲得一個并行的 C 運行時。

           

          其他:

          瀏覽 27
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲男女免费啪啪视频 | 青青草免费在线看视频 | 18禁 成人黄网站免费视频 | 俺来射| 逼特逼在线视频 |