軟體執行異常:機器學習或可解決多核處理器引發的問題

加入我們的科學愛好者社群!

本文發表於大眾科學(大眾科學)的前部落格網路,反映了作者的觀點,不一定反映大眾科學(大眾科學)的觀點


個人電腦透過引入多核處理器來分解工作負載,從而在速度上有所提升,但也可能在可靠性方面有所損失。這是因為軟體應用程式被編寫為按特定順序執行不同的操作。當不同的程式碼片段被無序處理時(這要歸功於多處理器對工作的劃分),可能會導致計算機崩潰,讓辦公室職員、研究人員、學生、遊戲玩家和其他使用者盯著凍結的螢幕。

雖然這種並行處理系統最初在超級計算環境中被用作更快地處理科學資料的一種方式,但這項技術現在在個人電腦上很常見,個人電腦可以執行雙核甚至四核處理器(這意味著每個處理器將工作負載分成兩半或四分之一以加速)。即使在您輸入電子郵件時,您的計算機也在後臺工作以檢查新郵件,這是一個需要並行處理的操作。


關於支援科學新聞報道

如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道: 訂閱。透過購買訂閱,您正在幫助確保未來能夠繼續講述關於塑造我們今天世界的發現和想法的具有影響力的故事。


華盛頓大學西雅圖分校計算機科學與工程助理教授路易斯·塞澤說,這種處理問題在較舊的、順序工作的單處理器系統中不太嚴重,這與今天的並行處理系統相反。“現在程式設計師必須擔心並行性,以便利用從計算機到手機等各種裝置中的處理器,”他說。“如果你有一個程式,並且你同時給不同的計算機相同的輸入,你可能會得到不同的結果。這意味著人們會得到可靠性較低的遊戲、軟體和作業系統。”

為多處理器編寫軟體比為順序處理器系統編寫軟體更困難,因為程式設計師現在必須擔心多個工作負載同時在處理器上執行。資訊的傳輸速度可能會受到微小變化的影響,例如計算機內部零件之間的距離,甚至電線的溫度,從而導致資訊無序到達。

解決這個問題的關鍵是編寫能夠正確地同時操作多個處理器的軟體。塞澤和他的同事正在探索使用機器學習來教計算機識別程式何時執行不當,並標記這些情況,以便程式設計師可以分析軟體中的錯誤。“我的目標是使為多核系統編寫程式像為順序系統編寫程式一樣容易和可靠,”他說。

他們開發了一種方法,透過自動分配命令集並將它們分配到特定位置,使現代多處理器計算機以可預測的方式執行。塞澤和來自該大學安全多處理架構(SAMPA)小組的幾位同事將在下週於匹茲堡舉行的程式語言和作業系統架構支援國際會議上展示他們為解決這個並行處理問題提出的方案。

圖片©iStockphoto.com/ Andrey Volodin

© .