是一個結合了微軟技術平台上的 Dryad 分散式執行引擎 及 LINQ 整合性查詢語法,
Dryad 的功能有點類似 Hadoop 的 MapReduce 可以將運算分割 ,
能夠將LINQ編寫的程序轉變為能夠在Dryad上運行的程序,進行大規模的分布式計算,
再將資料合併,Dryad 也提供了運算資源的管理、Job 的視覺化監控、容錯機制、排程功能、計算及重新執行 Job 的機制等。
DryadLINQ可以把LINQ程序轉化成分布式計算指令,以便運行於PC集群的編譯器。
DryadLINQ的LINQ程序可以分解為三個步驟:
1. C#和LINQ數據對象轉化為分布式的文件塊。
2. LINQ查詢轉化為分布式Dryad任務。
3. C#方法轉化為運行於Dryad任務節點上的代碼。
1. 聲明式編程:計算指令要求使用類似SQL的高級語言進行表示。
2. 自動並行化:DryadLINQ編譯器將順序的聲明式代碼,轉化為分布在大規模計算機集群中高
度並行的查詢計劃。而對於單臺機器中多核的使用,DryadLINQ則依賴PLINQ並行框架。
3. Visual Studio集成:程序員在使用DryadLINQ時可以利用VS中大量的高級特性,如智能提示、代碼重構、集成調試、構建以及原代碼管理。
4. .NET集成:所有的.NET類庫,包括Visual Basic,以及各種動態語言都可以自由使用。
5. 類型安全:對分布式計算進行靜態檢查。
6. 自動序列化:數據傳輸機制會自動處理所有的.NET對象類型。
7. 任務圖的優化靜態:一系列豐富的查詢優化規則,可以使查詢計劃有更好的局部性(locality)及更好的性能。
8. 動態:對已經處理完的數據集進行統計,以此作為運行時的優化查詢計劃的依據。
參考網址:
http://research.microsoft.com/en-us/projects/dryadlinq/default.aspx
沒有留言:
張貼留言