無伺服器召喚師:我們已經進入了無伺服器超級計算機的時代 - David Wells

banq發表於2020-06-14

當今高效能運算挑戰性的問題之一是:大多數軟體都設計為在單臺計算機上執行,​​並且並行化可能會被限定於本地可用的計算機核心或執行緒數量。
想象一個應用程式在一臺機器上通常執行需要1個小時……如果在一個全新環境中,您同時啟動3600個 lambda函式,每個函式執行一秒,這樣接近瞬時返回結果。
這是科幻小說嗎?也許是開發商發燒的夢想?還是假新聞?
以上都不是。今天是現實。這段引文摘自Keith Winstein在史丹佛大學出色的研討會上的摘錄,他在其中詳細介紹了計算的未來研究。
我們已經進入了無伺服器超級計算機的時代。對於喜歡冒險的人,對在無伺服器世界中的情況感到好奇,請繼續閱讀。

使用無伺服器FAAS提供商的按需擴充套件,可以按需要讓任意數量的worker中分散工作。這相當於召喚成千上萬的執行緒,即時啟動並行執行。

並行無伺服器計算可以做哪些事情?
我很高興你問!結果有很多:
  • 軟體編譯
  • 軟體測試
  • 影像和影片編碼,分析,壓縮
  • 機器學習
  • 資料視覺化
  • 基因組學
  • 蒙特卡洛模擬
  • 快速搜尋
  • CI / CD

可以按分散式方式分塊和分段處理的任何程式都適合於這種大規模並行執行時。

讓我們探索一些大規模並行化工作的真實示例。
專案
  • Excamera-影片編碼,一種用於細粒度並行性的功能影片編解碼器
  • Lepton-JPEG重新壓縮,功能性JPEG編解碼器,用於邊界遺忘分片
  • Salsify-視訊會議編解碼器,以找到最佳編位元速率
  • GG -thunk抽象以推斷lambda表示式並在無伺服器計算中求值
  • CC-lambda
  • Pywren-透過AWS Lambda大規模執行現有的python程式碼
  • 無伺服器火炮 -大規模效能測試
  • lambci-基於AWS Lambda的持續整合系統
  • 並行影像處理


GG框架

gg框架是一個開放原始碼框架,可幫助開發人員在雲函式服務上使用數千個並行執行緒執行應用程式,以實現接近互動的完成時間。
GG將較大的任務分解為中間表示形式,即與雲無關的“ thunk”集合。然後透過有線將其傳送到給定的雲服務。
“目標是向互動式使用者提供結果-比在使用者自己的計算機上或透過引導冷群集實現的結果要快得多,並且比為偶爾執行的任務維護熱群集要便宜。”
“ PyWren公開了Python API,並使用AWS Lambda函式進行線性代數和機器學習。無伺服器MapReduce和Spark-on-Lambda演示了類似的方法。”
“ gg在啟動時比Google Kubernetes Engine快45倍,比Lambda Spark快13倍”

LambCI
並行執行CI並快速進行️,專案連結

Nordstorm artillery
對任何規模的系統進行壓力測試:專案連結

CC Lambda
在約3小時內處理35億個網頁或198TB的未壓縮資料。專案連結

結論
我希望你能像我一樣看到;利用無伺服器計算作為未來的超級計算機有很多希望。
想象一下一個幾乎所有事物都變得更快的世界。
可以減少海量資料科學作業的執行時間,以便科學家更快地模擬模型!搜尋可以改善。軟體編譯和開發週期可以大大減少……您明白了。
想想可能性!
面臨一些挑戰:

  • 使當前工具以真正的並行分散式方式執行
  • 改進工具和DX,使所有人(不僅是Ops員工)都能採用這些方法
  • 向人們介紹無伺服器方法,以及託管雲服務在當今的可能性


 

相關文章