NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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:196472
用户头像

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

关注

评论

发布
暂无评论
  • TPC 藏宝计划质押系统开发(Dapp)

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

    2022-07-18

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

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

    2022-08-10

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

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

    2023-02-16

  • 在线 HTML 转 ASP 工具

    在线HTML转ASP工具

    2022-05-29

  • 如何管理 LAXCUS 计算机集群

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

    2022-08-05

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

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

    2022-07-12

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

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

    2021-09-20

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

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

    2022-08-04

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

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

    2022-08-11

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

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

    2022-02-15

  • 手把手推导 Ring All-reduce 的数学性质

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

    2022-04-26

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

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

    2022-06-01

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

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

    2022-12-26

  • 通过 SparkPlug 深入了解调用栈

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

    2022-10-20

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

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

    2022-06-02

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

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

    2023-01-12

  • JVM 虚拟机架构原理

    2022-09-10

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

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

    2022-03-18

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

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

    2022-08-24

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

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

发现更多内容

WorkPlus即时通讯app-私有化部署的最佳解决方案

WorkPlus

Centos7系统K8S集群安装教程。

百度搜索:蓝易云

Linux centos Kubernetes 运维 云服务器

全面指南:技术写作与编辑工具 Markdown、Git 研究工具

小万哥

技术 程序人生 写作 工具 软件开发

关于Stable Diffusion模型优化分享

AI Stable Diffustion

Adobe Photoshop 2024 (PS2024) v25.3.1.241 直装版

影影绰绰一往直前

亚洲唯一,阿里云入选 Gartner® 容器管理领导者象限!

阿里巴巴云原生

阿里云 云原生

git常用命令之Fetch

百度搜索:蓝易云

git 云计算 Linux 运维 云服务器

WorkPlus:保护组织数据安全与提升企业效率的局域网即时通讯软件

WorkPlus

转行程序员4年半,被裁了

程序员晚枫

程序员 裁员

走出自己的道路,活出自己灿烂的一生

少油少糖八分饱

人生选择 巴菲特 人生道路 不被定义 普通人

OpenSergo & Dubbo 微服务治理最佳实践

阿里巴巴云原生

阿里云 微服务 云原生

大数据之云平台的使用与总结 主赛道:技术人的 2023 总结

Echo_Wish

大数据 云平台 年度总结 2023 开天平台

Raw图像处理推荐 Capture One Pro 23中文最新版

胖墩儿不胖y

Mac软件 raw图像 raw图像处理工具

和鲸科技CEO范向伟受邀出席港航数据要素流通与生态合作研讨会,谈数据资产入表的战略机会

ModelWhale

数据 数据资产 数据要素 港航

Go内存优化与垃圾收集

俞凡

golang

短信中的短链设计

智慧源点

让你的Mac变得更加智能——Bookends for Mac

影影绰绰一往直前

活动 | Mint Blockchain 将于 2024 年 1 月 10 号启动 MintPass 限时铸造活动

NFT Research

blockchain NFT Pass

打破多APP困境,WorkPlus统一入口让企业协同更高效

WorkPlus

简约好用的Markdown文本编辑器:Typora中文激活版

mac大玩家j

文本编辑器 Mac软件 markdown编辑

ON1 Photo RAW MAX 2024:Mac上的高效照片处理解决方案

影影绰绰一往直前

极狐GitLab DevSecOps 之容器镜像安全扫描

极狐GitLab

容器 DevOps 镜像 DevSecOps 容器镜像

从0到1:志愿者小程序开发心得

CC同学

带PWM 调光的线性降压 LED 恒流驱动器

智趣匠

阿里云主导《Serverless 计算安全指南》国际标准正式立项!

阿里巴巴云原生

阿里云 Serverless 云原生

总结:我在技术写作中踩过的 6 个坑

Java 工程师蔡姬

技术人 21 天技术人写作行动营

Adobe Dimension 2023(3D设计工具)v3.4.11.4298 (x64) 直装版

影影绰绰一往直前

文心一言 VS 讯飞星火 VS chatgpt (158)-- 算法导论12.3 5题

福大大架构师每日一题

福大大架构师每日一题

WorkPlus即时通讯软件,带来更轻松、高效的沟通体验

WorkPlus

WorkPlus高效助力企业沟通的专业级即时通讯软件

WorkPlus

WorkPlus搭建高效即时通讯,打造高效协作新标杆

WorkPlus

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