新聞| | PChome| 登入
2009-09-05 23:47:46| 人氣477| 回應0 | 上一篇 | 下一篇

蘋果新OS為多核心未來作準備

推薦 0 收藏 0 轉貼0 訂閱站台

蘋果公司28日正式推出新版作業系統Mac OS X Snow Leopard,但這次更新真正的重要性將在日後逐漸浮現。

那是因為Mac OS X 10.6開啟了蘋果解決電腦業一個整體困境的長期工作:如何從現代處理器中擠出更多效用。蘋果沒有在Snow Leopard塞滿立即可用的新功能,而是努力適應處理器能同步處理許多工作,而非快速處理單一工作的新現實。

Mac OS X行銷經理Wiley Hodges說:「我們要替未來打好基礎。」

蘋果在今年6月的全球開發者大會(Worldwide Developer Conference)上,透露該計畫名為Grand Central Dispatch,但許多細節僅與簽約保密的程式開發者分享。現在該公司開始公開更多內容,和其他利用繪圖晶片與英特爾64位元處理器的深度計畫。

這些動作讓蘋果的腳步與運算界的主流變化更一致。多年來,如英特爾和超微(AMD)等晶片商,一直持續增加處理器的單位速率,程式設計師也習慣了每一代新產品都有效能提升。但幾年前,阻礙單位速率無限上升的問題出現了。

首先,晶片真正發揮的效能非常少,因為速度較慢的記憶體無法提供更多資料供其處理。更糟的是,晶片需要更多電力,同時製造出大量又難以處理的熱能。因此,主流多核心時代就此展開,處理器現在大都具備多個運算引擎,可同時運作。對某些可分割成獨立片段的工作而言,這是絕對有利的發展。但程式設計師大都慣於線性思考,用一連串接續的步驟執行工作。

Grand Central Dispatch(簡稱GCD),這個納入Snow Leopard的元件,是特別用來消除許多平行程式設計的困難。蘋果表示,使用GCD可以輕鬆地變更現有軟體,並且由作業系統代替程式設計師,處理複雜的例行管理工作。

平行程式設計的難題

整體而言,Illuminata分析師Gordon Haff認為,電腦運算業現在才準備好積極解決平行程式設計的難題。他說,如果構建成熟的平行程式設計工具是一本十個章節的書,業界目前只進展到第二章。但在沒有替代方法的情況下,這本書還是得繼續完成。Haff說:「它必須完成。資訊科技的歷史可證,需要實現的事情,必然會實現。」

程式設計師因應多核心處理器和多核心主機的方法之一,是透過所謂的線程概念。一般來說,一個線程就是一個獨立的運算作業。程式設計師利用多核心處理器的方式,是每一個核心指派一個線程。問題解決了,是嗎?

沒那麼容易。線程有包袱,每一個都需要記憶空間和時間開啟。程式必需根據處理器提供的核心數,分拆成不同數量的線程。程式設計師要擔心所謂的"locking"(鎖定)問題,提供一個機制,確保某個線程不會改變另一個線程已在使用的資料,和某個已排程的程式不會妨礙另一個同時在跑的程式。

某些既有工具可以減輕上述難題,如英特爾的Threading Building Blocks,但線程還是很複雜。Hodges說:「我們認為這部分需要從基礎上重新思考,我們要讓多核心應用軟體的開發更容易。我們把管理程式碼的責任交給作業系統,應用程式開發者就不必同時負責編寫和維護。」

GCD的核心機制是區塊與佇列。程式設計師將程式碼分成不同區塊,然後告訴應用軟體如何製作管理那些區塊實際執行的佇列。區塊執行可與特定事件相連,如網路訊息的抵達、檔案變更,和滑鼠點擊。

蘋果希望程式設計師會喜歡這種區塊執行的好處:舊的程式碼可輕鬆地用區塊翻新改進,不需大費周章地重寫即可測試;不執行時,它們不會佔據太多資源和空間,也有足夠的彈性壓縮進或大或小的程式碼。Hodges說:「線程製作有許多限制,讓你必須把程式分割的數量盡可能降低。利用Grand Central Dispatch,你可以隨意把程式分割成任何你想要的數量。」

GCD途徑的另一個差異是中央化。作業系統負責管理所有應用軟體的執行區塊,而不是讓個別應用軟體自行監督。也就是由作業系統決定哪一項工作使用哪些資源,即使在忙碌中,系統整體的回應也會更好。

Snow Leopard還有另一項幫助程式設計師進一步利用硬體效能的機制,稱為OpenCL或Open Computing Language(開放式運算語言)。它讓電腦不僅能利用繪圖晶片加速圖像處理,還能用來處理一般運算工作。

要使用OpenCL,程式設計師先用C程式語言的變種OpenCL C編寫程式模組。Snow Leopard再將程式碼翻譯成繪圖晶片能理解的指令,並轉移必要的資料到繪圖系統記憶體。許多工作無法受益於這項機制,但OpenCL對電玩實體模擬或人工智慧演算規則、技術運算例行工作及多媒體作業都非常有用。

轉換64位元

三大繪圖晶片商,英特爾、Nvidia和AMD的ATI,都為OpenCL背書。Khronos Group甚至將它列為標準。那代表程式設計師或可在Windows應用軟體重複使用他們的OpenCL程式碼。繪圖處理器利用平行引擎對許多資料要素執行同樣的處理工作。針對沒有繪圖晶片的電腦,OpenCL也能利用一般多核心處理器的平行執行策略。

蘋果早在多年前的PowerPC處理器時代,就開始其64位元轉換工作。在Snow Leopard,幾乎整套Mac軟體,包括Mail、Safari、Finder、iChat和iPhoto,都是64位元程式。

現在的英特爾晶片也全是64位元,但與32位元晶片相比,64位元究竟有什麼好處?簡單的說,它能讓重量級的程式使用超過4GB的記憶體,提供更多記憶體插槽(暫存器),並加速某些數學運算。但轉換到64位元設計不一定保證有立即加速的效果。蘋果在一份開發文件中表明:「迷思:我的應用軟體若是原生的64 位元軟體,執行速度將大幅加快。事實:有些64位元軟體在64位元英特爾和PowerPC架構上的執行可能更慢。」

蘋果鼓勵程式設計師測試他們的軟體,看64位元版是否真的較快。改成64位元的蘋果應用軟體全都比較快。不過,MacBook和iMac等消費者產品配搭的Mac OS X的核心元件(kernel),仍是32位元軟體。蘋果這麼做是讓應用軟體能處理4G以上的記憶,核心也完全能應付。

蘋果在其64位元表現的開發者文件中表示:「迷思:核心必須是64位元才能完全發揮64位元處理器的最佳效能。事實:核心不一定需要一次直接處理超過4 GB的RAM。」但蘋果的32位元核心碰到非常大量的記憶便無法應付。因此,該公司表示:「從Snow Leopard開始,對於支援如此大量記憶組態的硬體,核心也改成64位元軟體。」這裡指的是Xserve伺服器產品線和Mac Pro工作站。

從32位元核心改成64位元核心的難處,在於驅動程式(讓作業系統與硬表機、硬碟和音效卡等周邊設備溝通的軟體)也必須是64位元。如果是蘋果自產的硬體,事情很好處理。問題是第三方裝置自有的驅動程式也要轉換。但蘋果認為事情沒那麼難。該公司在參考文件中表示:「身為驅動程式開發者,你必須更新你的驅動程式到64位元二進位碼。所幸…許多驅動程式在編譯程式設定變更後,還是有用。」

這一切聽起來似乎非常低層次,但對程式設計師而言,蘋果的層次已屬最高了。那可以是一項有利的資產,因為許多有意採用平行程式設計的單位,其需求通常遠超過多數程式設計師願意或能夠處理的層次。但吸引程式設計師才是關鍵。畢竟,GCD和OpenCL等蘋果的深層技術計畫,只有在其他開發者願意使用的情況下,才有可能成功。

台長: 〥芹蟹麵〥
人氣(477) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: Operation Systems |
此分類下一篇:微軟:PC自動修復功能"Fix it"有效
此分類上一篇:Windows 7有多強?英特爾、微軟聯手說明

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文