4万字《腾讯云技术实践精选集 2021》发布,点击下载 了解详情
写点什么

微软发布了分布式计算技术 Dryad 和 DryadLINQ 的学术版

  • 2009 年 7 月 20 日
  • 本文字数:1882 字

    阅读完需:约 6 分钟

Dryad 和 DryadLINQ 是微软硅谷研究院创建的研究项目,旨在提供一个分布式计算平台,近年来这个平台已经在微软内部得以广泛使用(如微软AdCenter 中的数据分析)。在微软2009 年研究院教员峰会上,微软发布了Dryad/DryadLINQ 的学术版,以及Trident 项目(一个基于Dryad/DryadLINQ 及微软其他一些技术的科研工作流平台)的CTP 版本。

Dryad 是微软分布式并行计算基础平台,使程序员可以利用数据中心的服务器集群对数据进行并行处理。Dryad 程序员在操作数千台机器时,无需关心并行处理的细节。据 Dryad 论文描述:

Dryad 被设计为伸缩于各种规模的计算平台:从单台多核计算机、到由几台计算机组成的小型集群,直至拥有数千台计算机的数据中心。Dryad 执行引擎负责处理大型分布式、并行应用程序中会出现的各种难题:对计算机和它们的 CPU 进行调度,从通信或计算机的失败中恢复,以及数据在节点之间的传递等等。

DryadLINQ 的目标是提供一种高级语言接口,使普通程序员可以轻易进行大规模的分布式计算,它结合了微软 Dryad 和 LINQ 两种关键技术。

LINQ 的理念为“代码即数据(treat code as data)”。如上图所示,DryadLINQ 可以根据程序员给出的 LINQ 查询生成可以在 Dryad 引擎上执行的分布式运算规则,并负责任务的自动并行处理及数据传递时所需要的序列化等操作。此外,它还提供了一系列易于使用的高级特性,如强类型数据,Visual Studio 集成调试,以及丰富的任务优化规则等等。以下是使用 DryadLINQ 获取一个柱状图所需数据的方式(引用自微软发布的示例代码):

复制代码
<span>static </span><span>IQueryable</span><<span>Pair</span>> Histogram(<span>IQueryable</span><<span>string</span>> input, <span>int </span>k)
{
<span>IQueryable</span><<span>string</span>> words = input.SelectMany(x => x.Split(<span>' '</span>));
<span>IQueryable</span><<span>IGrouping</span><<span>string</span>, <span>string</span>>> groups = words.GroupBy(x => x);
<span>IQueryable</span><<span>Pair</span>> counts = groups.Select(x => <span>new </span><span>Pair</span>(x.Key, x.Count()));
<span>IQueryable</span><<span>Pair</span>> ordered = counts.OrderByDescending(x => x.count);
<span>IQueryable</span><<span>Pair</span>> top = ordered.Take(k);
<span>return </span>top;
}

谈到大规模分布式计算技术,便不得不提起著名的 Google MapReduce 。据 DryadLINQ 论文(该论文获得 OSDI 08 最佳论文奖)所述,DryadLINQ 与 MapReduce 的区别在于:

MapReduce 同样提供了能够快速进行编程的简化抽象,但是,使用这种编程模型来实现一些最常见的操作,如数据库 Join 都要使用较为有技巧(tricky)的做法。还有,我们经常需要把 MapReduce 计算嵌入一种脚本语言来实现多次归并或排序操作。每个 MapReduce 阶段(stage)都是自治的(self-contained),因此无法跨越边界进行优化。此外,缺少类型系统来连接不同的 MapReduce 阶段,迫使程序员必须显式跟踪阶段间传递的对象,这导致软件长期维护以及组件的复用变得麻烦。

因此,出现了一些构建于 MapReduce 抽象上的 DSL 为程序员隐藏了一些复杂性,如 Sawzall、Pig、以及其他一些未发表的系统,如 Facebook 的 HIVE。这些 DSL 简单地结合了声明式与命令式的编程方式,并生成类似 SQL 存储过程的模型,这样便可以对跨越 MapReduce 阶段的边界进行一些整体的自动优化。然而,这些做法也带来了一些 SQL 的缺点,如过于简单的自定义类型系统,以及有限的交互式计算能力。它们提供的优化不如 DryadLINQ 来的有效,一部分原因在于 Dryad 比 MapReduce 执行平台的灵活性要高的多。

此外,微软发布的 Trident 项目是一个科学工作流控制台,为科学家们提供了一个灵活而强大的方式,可以对大规模的,变化纷繁的数据集进行分析。它提供了可视化工具来创建、管理和分享工作流,并且可以在 Windows HPC Server 2008 集群上执行这些工作流。Trident 基于 Dryad/DryadLINQ 和 WF 开发,并提供了 WPF 和 Siverlight 两种版本的可视化界面。开发人员还可以扩展 Trident,并与 Word,SQL Server,Data Service 等多种技术进行集成,使 Trident 的适用范围更为广泛。

您可以在微软研究院的站点上下载 Dryad/DryadLINQ 学术版 Trident 项目的 CTP 版本,并在 Microsoft Connect 提出您反馈意见。如果您想了解更多相关信息,可以访问 InfoQ 之前对于 Dryad/DryadLINQ 的报道 Channel 9 上新录制的 Expert to Expert 访谈、以及这些项目各自主页上给出的附加资源,其中包含了视频,幻灯片等更详细的内容。

2009 年 7 月 20 日 21:212025
用户头像

发布了 157 篇内容, 共 46.6 次阅读, 收获喜欢 3 次。

关注

评论

发布
暂无评论
发现更多内容

透气胶浆、无手感透气胶浆

C13713145387

透气胶浆 仿拔印浆 无手感透气浆

云原生势不可挡,华为云GaussDB加速企业数字化转型

华为云开发者社区

华为云 GaussDB

对混沌工程的五个常见误解

混沌工程实践

混沌工程 故障注入 误区 生产事故 监管合规

投资的狠人,往往是这样的

陈东泽 EuryChen

比特币 区块链 投资 李笑来 debank

CloudQuery v1.3.6发布,更加完善的数据操作支持

CloudQuery社区

数据库 sql 数据安全 数据管理工具

全球案例 | NTT:Atlassian 帮助我们重塑危机中的可能性

Atlassian

敏捷 团队协作 数字化转型 Atlassian Jira

SpringCloud(Netfix)-技术专题-服务注册与发现

浩宇天尚

SpringCloud

TcaplusDB直播预告|与你相约腾讯云共探TcaplusDB

数据人er

应对海量时序数据,华为云GaussDB(for Influx)有妙招

华为云开发者社区

云原生 数字化转型 时序数据 华为云GaussDB

KubeVela 1.0 :开启可编程式应用平台的未来

阿里巴巴云原生

容器 云原生 k8s 消息中间件 Go 语言

基于深度神经网络的噪声标签学习

华为云开发者社区

神经网络 损失函数 深度神经网络 噪声 噪音数据

Linux grep 命令

一个大红包

4月日更

华为云PB级数据库GaussDB(for Redis)揭秘第七期:高斯Redis与强一致

华为云开发者社区

redis 华为云 GaussDB(for Redis) 强一致 PB级数据库

多年后,我终于看清了比特币的本质

陈东泽 EuryChen

比特币 区块链

【LeetCode】实现 Trie (前缀树)Java题解

HQ数字卡

算法 LeetCode 4月日更

「 留言参与 」—— InfoQ 写作平台【 1 周年盛典 】

InfoQ写作平台官方

活动专区 1 周年盛典

区块链商品防伪溯源平台搭建,实现数据信息安全共享

13828808769

区块链 商品溯源 #区块链#

联邦学习,为何而生?

博文视点Broadview

避免人工智能存在“歧视”,要从这8大方法入手

澳鹏Appen

人工智能 机器学习 大数据 人脸识别

智慧城市:大数据运营中心 IOC —— Web GIS 地图应用

一只数据鲸鱼

WebGIS ioc 数据可视化 智慧城市 数据运营

Rust从0到1-枚举-定义

rust 枚举 Option

智慧公安情指勤系统搭建,指挥调度平台解决方

13828808769

智慧公安

防晒衣专用水性油墨说明书

C13713145387

防晒衣专用水性油墨 防水尼龙水性油墨

BOE(京东方)2020年报发布: 营收1355.53亿元 净利润大幅增长162.46%

《采访彩食鲜 CTO 乔新亮:如何从一名程序员晋阶为CTO》(采访提纲)

石云升

28天写作 4月日更 调查采访能力考核

Spark的动态资源分配

小舰

Spark调优 4月日更

神秘又强大的@SpringBootApplication注解

vivo互联网技术

Java 后端 springboot 注解分析

区块链电子证照平台搭建,助推政务数字化发展

13828808769

电子存证 区块链+ #区块链#

SpringCloud(Netflix)-技术专题-自定义配置Ribbon

浩宇天尚

SpringCloud Ribbon

爽面数码打底浆说明书

C13713145387

爽面数码打底浆 哑面数码打底浆 数码打底浆

重读《重构2》- 提炼变量

顿晓

重构 4月日更

微软发布了分布式计算技术Dryad和DryadLINQ的学术版-InfoQ