Intel發布JavaScript擴展以支持并行運算
JavaScript,這個支撐 Web 的語言,在連移動設備都擁有并行運算能力的今天,還仍然以串行執行的方式存在。Intel 實驗室正在研究擴展 JavaScipt,以便充分利用多核系統的運算能力,他們已經發布了一個相關的 FireFox 插件。
這個 JavaScript 的并行擴展代號為 River Trail,是 Intel 實驗室的一個項目,致力于在 Web 應用中利用 Intel 多核處理器和向量擴展運算能力。 River Trail 將促使更多的計算密集型應用程序——如圖片處理——出現在瀏覽器中。
Intel 實驗室的 Stephan Herhut 認為,與現有 Web 技術的集成是他們主要考慮的問題:
最讓我激動的是,River Trail 背后所使用的技術,可以與現有 Web 技術無縫集成。River Trail 使用了一種簡潔但強大的并行編程模型。我們花了很大力氣來讓這個擴展看起來盡量自然。我們的目標是讓用戶在使用 River Trail 構建 Web 應用時,與使用標準 JavaScript 時一樣簡單。而且,由于 River Trail 本身就在 JavaScript 中,可以更好的與 HTML5 API 結合。我們特別保證,River Trail 與 WebGL 結合的非常好。WebGL 是近期才被引入的 OpenGL 接口,用于在瀏覽器中渲染 3D 圖像。我們有一個 demo 就是模擬超過 4000 個個體的物理行為,計算部分使用了 Trail River,視覺圖像部分則使用了 WebGL。
River Trail 使用確定性并行數據結構對 JavaScript 進行擴展,該結構在運行時會被轉換為底層硬件抽象層指令。通過利用多核處理器和向量處理指令,River Trail可以大幅提升執行速度。
值得注意的是,River Trail 還為 JavaScript 添加了 ParallelArray 這一數據結構。這是存儲并行數組數據的只讀數據結構,可以通過構造函數或調用 ParallelArray 原型上的方法來實例化。它的構造函數接受 JavaScript 普通數組,類型化數組或者可以生成這些數組的函數。例如,“new ParallelArray ([1,2,3])”將創建一個存儲1,2,3的 ParallelArray 實例。該數組的內容能夠被 combine, filter,map,reduce 等函數進行處理,而且是并行執行的。這些函數將會被編譯成 OpenCL,并使用 JavaScript 的子集。
現在就可以下載 Firefox 插件來體驗 River Trail。
查看英文原文:JavaScript Extension that Adds Parallel Processing Capabilities Unveiled by Intel
譯者:王瑜珩,InfoQ 中文站編輯,ThoughtWorks 咨詢師,關注企業級 Web 開發、敏捷實踐以及項目管理。