MIT開發PaSh系統:準確性前提下讓程序運行得更快

科學家近日研發了新系統,在保證準確性的前提下讓計算機程序運行的更快。來自麻省理工大學的一支科研團隊創造了一項新技術[PDF],通過并行化程序來提高在 Unix shell 中的程序運行速度。這是一個 50 年前創建、至今仍被廣泛使用的編程環境。

MIT開發PaSh系統:準確性前提下讓程序運行得更快

他們的方法將這些程序并行化,這意味着它將程序組件分成可以在多個計算機處理器上同時運行的部分。這使程序能夠在其原始運行時間的一小部分內執行 Web 索引、自然語言處理或分析數據等任務。

麻省理工學院計算機科學和人工智能實驗室 (CSAIL) 的研究科學家 Nikos Vasilakis 說:“有很多人使用這些類型的程序,比如數據科學家、生物學家、工程師和經濟學家。現在他們可以自動加速他們的程序,而不必擔心會得到錯誤的結果”。

MIT開發PaSh系統:準確性前提下讓程序運行得更快

該系統還使開發數據科學家、生物學家、工程師和其他人使用的工具的程序員變得容易。 Vasilakis 補充說,他們不需要對他們的程序命令進行任何特殊調整來實現這種自動、無錯誤的并行化,他是來自世界各地的研究人員委員會的主席,他們已經在這個系統上工作了近兩年。

Vasilakis 是該小組最新研究論文的高級作者,其中包括麻省理工學院的合著者和 CSAIL 研究生 Tammam Mustafa,並將在 USENIX 操作系統設計和實現研討會上發表。

MIT開發PaSh系統:準確性前提下讓程序運行得更快

合著者包括主要作者、賓夕法尼亞大學研究生 Konstantinos Kallas;華沙 Staszic 高中的學生 Jan Bielak; Aarno Labs 的軟件工程師 Dimitris Karnikis;前麻省理工學院博士后,現為Google軟件工程師的 Thurston H.Y. Dang;史蒂文斯理工學院計算機科學助理教授 Michael Greenberg。

這個名為 PaSh 的新系統專註於在 Unix shell 中運行的程序或腳本。腳本是指示計算機執行計算的命令序列。 shell 腳本的正確和自動并行化是研究人員幾十年來一直在努力解決的一個棘手問題。

Unix shell 仍然很受歡迎,部分原因是它是唯一一種允許一個腳本由多種編程語言編寫的函數組成的編程環境。不同的編程語言更適合特定的任務或數據類型;如果開發人員使用正確的語言,解決問題會容易得多。

MIT開發PaSh系統:準確性前提下讓程序運行得更快

Vasilakis 補充道:“人們還喜歡使用不同的編程語言進行開發,因此將所有這些組件組合到一個程序中是經常發生的事情”。雖然 Unix shell 支持多語言腳本,但其靈活和動態的結構使得這些腳本難以使用傳統方法進行并行化。

當一個程序用一種語言編寫時,開發人員有關於它的特性和語言的明確信息,可以幫助他們確定哪些組件可以并行化。但是這些工具不存在用於 Unix shell 中的腳本。用戶無法輕鬆查看組件內部發生的情況或提取有助於并行化的信息。

為了克服這個問題,PaSh 使用了一個預處理步驟,將簡單的註釋插入到它認為可以并行化的程序組件上。然後 PaSh 嘗試在程序運行時并行化腳本的這些部分,在它到達每個組件的確切時刻。這避免了 shell 編程中的另一個問題——無法提前預測程序的行為。

通過“及時”并行化程序組件,系統避免了這個問題。與嘗試提前執行并行化的傳統方法相比,它能夠有效地加速更多的組件。

即時并行化還確保加速程序仍然返回準確的結果。如果 PaSh 到達無法并行化的程序組件(可能它依賴於尚未運行的組件),它會簡單地運行原始版本並避免導致錯誤。

(0)
上一篇 2022-06-22 08:25
下一篇 2022-06-22 08:26

相关推荐