写点什么

DryadLINQ 让分布式计算更美好

  • 2009-05-13
  • 本文字数:897 字

    阅读完需:约 3 分钟

Dryad DryadLINQ 是微软研究院的两个项目,用于辅助 C#开发人员在在计算机集群或数据中心里处理大规模的数据。

Dryad 是一个在计算机集群或数据中心里并行地执行顺序程序的基础架构。如下图所示,并行计算过程被会被组织为一个有向无环图,程序是图的“节点”,而“边”则为程序之间相互通信所用的通道:

dryad

上图简单描述了程序之间的关系,如数据来源及输出的指向。这个图必须是无环的,以避免造成调度上的死锁。任务管理器(Job Manager,JM)获取图之后,便会在程序的输入通道准备完毕,并且有可用机器的时候对它进行调度。JM 从命名服务器(Name Server,NS)那里获得一个可用的机器,并通过一个维护进程(daemon,D)来调度这个程序。文件,共享内存,或 TCP 管道都可以作为程序(节点)之间通信用的通道。在运行过程中可以动态改变图的形状,并得到很好的容错性。在调试的时候,整个图也可以运行在单个系统上。微软已经在 AdCenter 的生产系统中使用了 Dryad。

DryadLINQ 是“一个把 LINQ 程序转化成分布式计算指令,以便运行于 PC 集群的编译器”。这个转化过程可以分解为以下几步:

  • C#和 LINQ 数据对象转化为分布式的文件块。
  • LINQ 查询转化为分布式 Dryad 任务。
  • C#方法转化为运行于 Dryad 任务节点上的代码。

DryadLINQ 有如下功能:

  • 声明式编程:计算指令要求使用类似 SQL 的高级语言进行表示。
  • 自动并行化:DryadLINQ 编译器将顺序的声明式代码,转化为分布在大规模计算机集群中高度并行的查询计划。而对于单台机器中多核的使用,DryadLINQ 则依赖 PLINQ 并行框架。
  • Visual Studio 集成:程序员在使用 DryadLINQ 时可以利用 VS 中大量的高级特性,如智能提示、代码重构、集成调试、构建以及原代码管理。
  • .NET 集成:所有的.NET 类库,包括 Visual Basic,以及各种动态语言都可以自由使用。
  • 类型安全:对分布式计算进行静态检查。
  • 自动序列化:数据传输机制会自动处理所有的.NET 对象类型。
  • 任务图的优化
    • 静态:一系列丰富的查询优化规则,可以使查询计划有更好的局部性(locality)及更好的性能。
    • 动态:对已经处理完的数据集进行统计,以此作为运行时的优化查询计划的依据。

查看英文原文: DryadLINQ, Distributed Computing Made Easy

2009-05-13 08:196582
用户头像

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

关注

评论

发布
暂无评论
  • 手把手推导 Ring All-reduce 的数学性质

    分布式深度学习里的通信严重依赖于规则的集群通信,诸如 all-reduce, reduce-scatter, all-gather 等,因此,实现高度优化的集群通信,以及根据任务特点和通信拓扑选择合适的集群通信算法至关重要。  

    2022-04-26

  • C#入门系列 (二) -- 程序结构

    C#中的组织结构的关键概念是程序(program)、命名空间(namespace)、类型(type)、成员(member)和程序集(assembly)

    2022-06-02

  • 如何管理 LAXCUS 计算机集群

    Laxcus计算机集群有大量的节点,分散在各种异构环境中运行,虽然计算机集群的大部分管理业务,已经通过Laxcus分布式操作系统内置的DFL3人工智能模型实施,但是仍然有小部分工作需要人工干预。在Laxcus分布式操作系统6.0之前的版本中,管理员为用户分配计算存

    2022-08-05

  • 调度系统:如何把握分布式计算的精髓?

    今天我们一起探究Spark调度系统,弄清楚分布式计算的来龙去脉。

    2021-09-20

  • 在线 HTML 转 ASP 工具

    在线HTML转ASP工具

    2022-05-29

  • EPPlus - 用于 .NET 的 Excel 电子表格

    我们都会遇到需要用程序操作Excel电子表格的情形。在这里推荐一个.NET非常好用的包EPPlus。

    2022-08-24

  • TPC 藏宝计划质押系统开发(Dapp)

    DAPP是去中心化应用程序/分布式的应用程序,是底层区块链平台生态上衍生的各种分布式应用,也是区块链世界中的基础服务提供方。将应用程序分布在不同节点上,通过共识机制和区块链平台来完成任务的应用程序,它本身就是去中心化,不依赖于任何中心化服务器,

    2022-07-18

  • 加餐 03|学习攻略(二):大数据 & 云计算,究竟怎么学?

    这节课我们学到了开源大数据生态中的三个重要角色,它们是Hadoop大数据平台的基础,负责了文件存储、资源管理和分布式协调。

    2022-12-26

  • 编译器优化:何为 SLP 矢量化

    SLP矢量化的目标是将相似的独立指令组合成向量指令,内存访问、算术运算、比较运算、PHI节点都可以使用这种技术进行矢量化。

    2022-08-11

  • 结束语|登高望远,迈向新的高峰

    愿你能找到适合自己的人生之路,在新的一年里更上一层楼。

    2023-02-16

  • C#入门系列 (一) -- 初识 C#语言

    C#读作C Sharp,是微软公司在2000年6月发布的一种新的编程语言,是第一个面向组件的编程语言,其源码会编译成微软中间代码MSIL再运行。

    2022-06-01

  • 英伟达是如何做 GPU 编程的(一)

    在这篇文章中,我将介绍最简单、最高效、最可移植的加速计算方式,即三种可以用于GPU编程的方式。

  • 软件测试 / 测试开发 | Jenkins 节点该如何管理?

    Jenkins 拥有分布式构建(在 Jenkins 的配置中叫做节点),分布式构建能够让同一套代码在不同的环境(如:Windows 和 Linux 系统)中编译、测试等

    2023-01-12

  • 重新审视分布式系统:永远不会有完美的一致性方案……

    如今使用的几乎所有软件都是分布式系统的一部分,手机上的应用程序与托管在云中的服务一起工作,托管服务本身就是大规模的分布式系统,通常运行在遍布全球的机器上,大数据系统和大规模数据库分布在许多机器上,大多数科学计算和机器学习系统在多个处理器上并

    2022-08-04

  • 通过 SparkPlug 深入了解调用栈

    通过V8的Sparkplug编译器深入了解JavaScript引擎中的调用栈

    2022-10-20

  • OneFlow 源码解析:算子指令在虚拟机中的执行

    OneFlow虚拟机还统一了动态图模式和静态图模式。静态图模式下,通过nn.Graph编译出深度学习网络的Job,这个Job同样被虚拟机抽象成了VM指令并接受虚拟机的调度和执行。大胆猜测一下,这也为日后动静转换、更极致的性能优化埋下了伏笔。

    2022-08-10

  • Map-Reduce 思想在 ABAP 编程中的一个实际应用案例

    Map-Reduce 是一种编程模型和相关实现,用于在集群上使用并行分布式算法,生成和处理大规模数据集。ABAP 编程语言从语言层面支持对大规模数据的 REDUCE 操作。本文分享了笔者工作中使用Map-Reduce思路处理大规模数据集的一个实际案例,希望能给大家带来启发。

    2022-03-18

  • 飞云掣电——澎湃算力的云中服务器

    讲师介绍: 吕蕴偲,SRE 工程师,就职于国内某云服务商,负责 DevOps 及云上解决方案架构设计,多年云行业相关领域经验。熟悉 AWS 亚马逊云、阿里云等公有云,同时拥有 AWS 解决方案架构师认证及阿里云解决方案架构师认证,对多云云上架构设计部署有相关经验。 问题背景: 身处于云时代的你,相信你对云端服务器并不陌生,但是,你充分了解了云上服务器的组成吗?计算在云端实践中最为重要,身处云端三大件(计算、存储、网络)之首。可以说,一切服务围绕计算而展开,始于计算而又不止于计算。如何用好云上服务器,是我们当今必须要掌握的技能之一。 内容看点: 云中服务器的组成 云中服务器的使用技巧 云中服务器的知识拓展

    2022-02-15

  • TiFlash 面向编译器的自动向量化加速

    SIMD(Single Instruction Multiple Data)是一种采用一个控制器来控制多个处理器,同时对一组数据(又称“数据向量”)中的每一个分别执行相同的操作从而实现空间上的并行性的技术,是重要的程序加速手段。本文将简要介绍一些在 TiFlash 中使用编译器进行自

    2022-07-12

  • JVM 虚拟机架构原理

    2022-09-10

发现更多内容

photoshop弹出Time to update 提示框,如何关闭

Rose

笔记 20240530

Geek_d01095

RocketMQ

50亿美元亏损背后:解析生成式 AI 的商业模式之争

Baihai IDP

程序员 AI 白海科技 LLMs GenAI

鸿蒙新世界亮点聚焦:华为阅读APP升级精品书探索阅读新潮流

最新动态

PIRF 413:Recipe – What are we making?

EchoZhou

English

让你的 Mac 用上最美的屏保,Aerial 使用教程

Rose

笔记 20240524

Geek_d01095

camunda

Flink 实时湖仓,为汽车行业数字化加速!

阿里云大数据AI技术

大数据 flink 车联网 实时计算

为什么JWT要结合Redis使用

百度搜索:蓝易云

Final Cut Pro X 插件不能使用出现叹号的解决办法

Rose

Mac桌面多窗口整理神器Moom,Moom使用教程

Rose

淘宝1688跨境电商API接口接入指南:跨境卖家必备知识

代码忍者

pinduoduo API

鸿蒙新世界迎华为阅读重大升级:让电子书也能读出纸书沉浸感

最新动态

Apache Calcite SQL Parser 原理剖析

端小强

Calcite

Centos7安装chrome+chromedriver以便实现selenium自动化详细教程

百度搜索:蓝易云

Debian安装Docker环境

百度搜索:蓝易云

解决sass问题:npm ERR! node-sass@9.0.0 postinstall: `node scripts/build.js`

百度搜索:蓝易云

pr lut插件如何安装? lut预设导入Premiere Pro教程分享

Rose

在鸿蒙,轻松敲出热爱

最新动态

Linux之yum/git的使用

百度搜索:蓝易云

使用Creative Cloud Cleaner Tool mac轻松彻底卸载删除Adobe系列软件

Rose

大模型RAG:基于大模型的机器人技术方案

程序员架构进阶

大模型 智能机器人 架构- 10月月更

Redis对象共享池,性能优化小细节

江南一点雨

听听蜻蜓FM鸿蒙开发者的调频“新”声

最新动态

英特尔CEO帕特·基辛格:共筑x86核心架构,推动AI PC创新

E科讯

如何检查Mac上是否启用了SIP系统完整性保护

Rose

Lightroom Classic(Lrc)与Lightroom(Lr)有哪些区别?如何选择LRC和Lr?

Rose

积分超市系统(源码 + 文档 + 部署 + 讲解)

深圳亥时科技

Mac怎么创建txt文件?如何设置新建txt的快捷键?

Rose

第一届中国研究生操作系统开源创新大赛总决赛在长沙圆满落幕

最新动态

合合信息:生成式Al时代的内容安全与系统构建加速,开启智能文档的全新潜能

阿Q说代码

内容安全 智能文档

DryadLINQ让分布式计算更美好_.NET_Abel Avram_InfoQ精选文章