自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

微軟發(fā)布學(xué)術(shù)版分布式計(jì)算技術(shù)Dryad和DryadLINQ

開發(fā) 分布式
Dryad是微軟分布式計(jì)算技術(shù)基礎(chǔ)平臺(tái),使程序員可以利用數(shù)據(jù)中心的服務(wù)器集群對(duì)數(shù)據(jù)進(jìn)行并行處理。DryadLINQ的目標(biāo)是提供一種高級(jí)語(yǔ)言接口,使普通程序員可以輕易進(jìn)行大規(guī)模的分布式計(jì)算,它結(jié)合了微軟Dryad和LINQ兩種關(guān)鍵技術(shù)。

Dryad和DryadLINQ是微軟硅谷研究院創(chuàng)建的研究項(xiàng)目,旨在提供一個(gè)分布式計(jì)算平臺(tái),近年來(lái)這個(gè)平臺(tái)已經(jīng)在微軟內(nèi)部得以廣泛使用(如微軟AdCenter中的數(shù)據(jù)分析)。在近日舉行的微軟2009年研究院教員峰會(huì)上,微軟發(fā)布了Dryad/DryadLINQ的學(xué)術(shù)版,以及Trident項(xiàng)目(一個(gè)基于Dryad/DryadLINQ及微軟其他一些技術(shù)的科研工作流平臺(tái))的CTP版本。

Dryad是微軟分布式并行計(jì)算基礎(chǔ)平臺(tái),使程序員可以利用數(shù)據(jù)中心的服務(wù)器集群對(duì)數(shù)據(jù)進(jìn)行并行處理。Dryad程序員在操作數(shù)千臺(tái)機(jī)器時(shí),無(wú)需關(guān)心并行處理的細(xì)節(jié)。據(jù)Dryad論文描述:

Dryad被設(shè)計(jì)為伸縮于各種規(guī)模的計(jì)算平臺(tái):從單臺(tái)多核計(jì)算機(jī)、到由幾臺(tái)計(jì)算機(jī)組成的小型集群,直至擁有數(shù)千臺(tái)計(jì)算機(jī)的數(shù)據(jù)中心。Dryad執(zhí)行引擎負(fù)責(zé)處理大型分布式、并行應(yīng)用程序中會(huì)出現(xiàn)的各種難題:對(duì)計(jì)算機(jī)和它們的CPU進(jìn)行調(diào)度,從通信或計(jì)算機(jī)的失敗中恢復(fù),以及數(shù)據(jù)在節(jié)點(diǎn)之間的傳遞等等。

DryadLINQ的目標(biāo)是提供一種高級(jí)語(yǔ)言接口,使普通程序員可以輕易進(jìn)行大規(guī)模的分布式計(jì)算,它結(jié)合了微軟Dryad和LINQ兩種關(guān)鍵技術(shù)。

DryadLINQ執(zhí)行流程

LINQ的理念為“代碼即數(shù)據(jù)(treat code as data)”。如上圖所示,DryadLINQ可以根據(jù)程序員給出的LINQ查詢生成可以在Dryad引擎上執(zhí)行的分布式運(yùn)算規(guī)則,并負(fù)責(zé)任務(wù)的自動(dòng)并行處理及數(shù)據(jù)傳遞時(shí)所需要的序列化等操作。此外,它還提供了一系列易于使用的高級(jí)特性,如強(qiáng)類型數(shù)據(jù),Visual Studio集成調(diào)試,以及豐富的任務(wù)優(yōu)化規(guī)則等等。以下是使用DryadLINQ獲取一個(gè)柱狀圖所需數(shù)據(jù)的方式(引用自微軟發(fā)布的示例代碼):

  1. static IQueryable<Pair> Histogram(IQueryable<string> input, int k)  
  2. {  
  3.     IQueryable<string> words = input.SelectMany(x => x.Split(' '));  
  4.     IQueryable<IGrouping<stringstring>> groups = words.GroupBy(x => x);  
  5.     IQueryable<Pair> counts = groups.Select(x => new Pair(x.Key, x.Count()));  
  6.     IQueryable<Pair> ordered = counts.OrderByDescending(x => x.count);  
  7.     IQueryable<Pair> top = ordered.Take(k);  
  8.     return top;  

談到大規(guī)模分布式計(jì)算技術(shù),便不得不提起著名的Google MapReduce。據(jù)DryadLINQ論文(該論文獲得OSDI 08最佳論文獎(jiǎng))所述,DryadLINQ與MapReduce的區(qū)別在于:

MapReduce同樣提供了能夠快速進(jìn)行編程的簡(jiǎn)化抽象,但是,使用這種編程模型來(lái)實(shí)現(xiàn)一些最常見的操作,如數(shù)據(jù)庫(kù)Join都要使用較為有技巧(tricky)的做法。還有,我們經(jīng)常需要把MapReduce計(jì)算嵌入一種腳本語(yǔ)言來(lái)實(shí)現(xiàn)多次歸并或排序操作。每個(gè)MapReduce階段(stage)都是自治的(self-contained),因此無(wú)法跨越邊界進(jìn)行優(yōu)化。此外,缺少類型系統(tǒng)來(lái)連接不同的MapReduce階段,迫使程序員必須顯式跟蹤階段間傳遞的對(duì)象,這導(dǎo)致軟件長(zhǎng)期維護(hù)以及組件的復(fù)用變得麻煩。

因此,出現(xiàn)了一些構(gòu)建于MapReduce抽象上的DSL為程序員隱藏了一些復(fù)雜性,如Sawzall、Pig、以及其他一些未發(fā)表的系統(tǒng),如Facebook的HIVE。這些DSL簡(jiǎn)單地結(jié)合了聲明式與命令式的編程方式,并生成類似SQL存儲(chǔ)過(guò)程的模型,這樣便可以對(duì)跨越MapReduce階段的邊界進(jìn)行一些整體的自動(dòng)優(yōu)化。然而,這些做法也帶來(lái)了一些SQL的缺點(diǎn),如過(guò)于簡(jiǎn)單的自定義類型系統(tǒng),以及有限的交互式計(jì)算能力。它們提供的優(yōu)化不如DryadLINQ來(lái)的有效,一部分原因在于Dryad比MapReduce執(zhí)行平臺(tái)的靈活性要高的多。

此外,微軟發(fā)布的Trident項(xiàng)目是一個(gè)科學(xué)工作流控制臺(tái),為科學(xué)家們提供了一個(gè)靈活而強(qiáng)大的方式,可以對(duì)大規(guī)模的,變化紛繁的數(shù)據(jù)集進(jìn)行分析。它提供了可視化工具來(lái)創(chuàng)建、管理和分享工作流,并且可以在Windows HPC Server 2008集群上執(zhí)行這些工作流。Trident基于Dryad/DryadLINQ和WF開發(fā),并提供了WPF和Siverlight兩種版本的可視化界面。開發(fā)人員還可以擴(kuò)展Trident,并與Word,SQL Server,Data Service等多種技術(shù)進(jìn)行集成,使Trident的適用范圍更為廣泛。

 

【編輯推薦】

  1. 用RMI實(shí)現(xiàn)基于Java的分布式計(jì)算
  2. 分布式緩存系統(tǒng)memcached簡(jiǎn)介與實(shí)踐
  3. .Net平臺(tái)下的分布式緩存設(shè)計(jì)
  4. .NET方法演化史 從Delegate到Lambda再到LINQ
  5. 神兵利器 淺談如何使用LINQ檢索和操作數(shù)據(jù)庫(kù)
責(zé)任編輯:佚名 來(lái)源: InfoQ
相關(guān)推薦

2019-10-10 09:16:34

Zookeeper架構(gòu)分布式

2017-07-26 14:55:32

分布式技術(shù)架構(gòu)

2024-03-01 09:53:34

2017-09-01 05:35:58

分布式計(jì)算存儲(chǔ)

2023-10-26 18:10:43

分布式并行技術(shù)系統(tǒng)

2010-03-22 13:35:49

云計(jì)算

2020-10-30 07:47:42

分布式

2012-09-19 14:09:20

Hadoop開源

2013-03-26 13:43:08

Java分布式計(jì)算

2015-05-14 11:10:00

Atlas分布式MySQL中間層

2012-06-01 15:12:00

淘寶分布式計(jì)算Fourinone2.

2024-01-08 08:05:08

分開部署數(shù)據(jù)體系系統(tǒng)拆分

2024-01-10 08:02:03

分布式技術(shù)令牌,

2022-01-21 14:52:12

區(qū)塊鏈加密貨幣金融

2021-04-15 11:04:13

云計(jì)算分布式邊緣計(jì)算邊緣計(jì)算

2019-10-28 10:10:01

技術(shù)研發(fā)分布式

2017-07-27 14:32:05

大數(shù)據(jù)分布式消息Kafka

2010-01-15 15:13:22

中心交換技術(shù)分布式交換技術(shù)

2024-01-09 08:00:58

2011-01-25 22:20:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)