阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

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

关注

评论

发布
暂无评论
  • 通过 SparkPlug 深入了解调用栈

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

    2022-10-20

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

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

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

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

    2022-03-18

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

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

    2023-02-16

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

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

    2022-04-26

  • 如何管理 LAXCUS 计算机集群

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

    2022-08-05

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

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

    2022-08-24

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

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

    2022-06-01

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

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

    2023-01-12

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

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

    2022-07-12

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

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

    2022-07-18

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

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

    2022-12-26

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

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

    2022-08-10

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

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

    2022-02-15

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

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

    2022-08-04

  • JVM 虚拟机架构原理

    2022-09-10

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

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

    2022-08-11

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

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

    2021-09-20

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

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

    2022-06-02

  • 在线 HTML 转 ASP 工具

    在线HTML转ASP工具

    2022-05-29

发现更多内容

一次性搞定多任务!Python自动化复用浏览器技巧大揭秘

测吧(北京)科技有限公司

测试

LangChain与Chroma的大模型语义搜索应用

百度开发者中心

人工智能 深度学习 大数据 大模型

Desktop Stickers for Mac(桌面贴纸)v2.6激活版

iMac小白

Topaz Video AI for mac v4.2.0激活版 强大的视频增强软件

iMac小白

SecureCRT for mac v9.5.1注册激活版 强大的终端仿真软件

iMac小白

VMware Fusion Pro 13 for Mac VM虚拟机 v13.5.1中文激活版

iMac小白

CheckBook Pro for mac(优秀的个人理财管理软件) v2.7.28注册版

iMac小白

[自研开源] MyData 基于 Web API 的数据集成平台 v0.7.0

LIEN

开源 数据集成 业务融合 API对接 数据对接

金三银四,聊一聊软件测试简历书写/面试的必备技能

测吧(北京)科技有限公司

测试

模型驱动测试:引领软件质量的新潮流

霍格沃兹测试开发学社

流行 NFT 的必备指南

Footprint Analytics

NFT

开篇语 | 容器中的⼤模型 (LLM in Containers)

智领云科技

容器 大模型

EndNote 21 for Mac(文献管理软件) v21.2激活版

iMac小白

新零售SaaS架构:订单履约系统的概念模型设计

不在线第一只蜗牛

架构 零售 SaaS 平台开发

【教程】APP开发后如何上架?

雪奈椰子

剧透!3月9日deepin Meetup · 成都站,精彩议题&活动环节早知道

nn-30

Commander One PRO for mac 3.7.0中文激活版 文件管理器

iMac小白

模型驱动测试:引领软件质量的新潮流

测试人

软件测试 自动化测试 测试开发

淘宝详情数据API接口,API接口汇总

Anzexi58

API 文档

NUKE 14 for mac v14.0v5激活版 电影后期特效合成软件

iMac小白

MetaRename for Mac(文件重命名工具)v1.0.10激活版

iMac小白

MO干货 | shuffle执行计划解析(上篇)

MatrixOrigin

数据库 云原生 分布式,

2024年2月NFT市场激增:NFT趋势、热门项目和市场分析

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

一文讲明白Java中线程与进程、并发与与并行、同步与异步

EquatorCoco

Java 线程 进程

JSON 和 Form-data: 深入理解 Web 开发中的数据提交方式

Liam

json 程序员 前端 数据交互 Form-data

ConfigMap挂载与Subpath在Nginx容器中的应用

华为云开发者联盟

容器 开发 华为云 华为云开发者联盟

华为云云原生专家入选全球顶级开源组织CNCF技术监督委员会

华为云开发者联盟

华为云 云原生开源 华为云开发者联盟 华为云云原生

Animate 2024 for mac(An2024)v24.0.1中文激活版

iMac小白

如何做代币分析:以 CRO 币为例

Footprint Analytics

Token

容器中的⼤模型(一)| 三行命令,大模型让Excel直接回答问题

智领云科技

容器 大模型

转型敏捷中,有哪些无形的障碍?

敏捷开发

项目管理 Scrum 敏捷开发 敏捷转型

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