[cloud] A common substrate for cluster computing

Nexus为集群计算提供了一个底层框架,支持不同计算模型的同时运行并高效共享资源。它通过Task和Slot的概念实现资源隔离与分配,允许各计算模型自由实施编程模型并控制作业执行。

title = A Common Substrate for Cluster Computing
author = Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ion Stoica
location = University of California, Berkeley
mail = {benh,andyk,matei,istoica}@cs.berkeley.edu

conf = HotCloud' 09 workshop (USENIX)


文章提出Nexus: a low-level substrate that provides isolation and efficient resource sharing across frameworks running on the same cluster, while give each framework freedom to implement its own programming model and fully control the execution of its jobs.

    不同的云计算实现有着不同的计算模型(programming model),在同一物理存储之上。使用多个计算模型可能需要copy存储资源, then process。而不同的模型之间还不能共享,更不用说在单一物理存储之上合并着使用多个计算模型的功能。(这里指的计算模型,现在在现实中基本上为不同企业各自的云计算平台实现,比如Hadoop[4],Dryad[12])

    MapReduce 优点是simplicity,可它的simplicity也使得其express some computations时复杂困难。之后开发还有high-level,domain-specific 的abstraciotns,使用MapReduce作为 an execution substrate的 Sawzall[15]和 Pig[14],以及使用自己的execution substrate 的 Dryad[12]。开发新的计算模型很复杂,而且,MapReduce 和 Dryad 也有其不能理想地表示的计算:1.Iterative Jobs;2. Nested Parallelism;3. Irregular Parallelism;4. Existing Parallel Applications.(已经存在的)。

    所以作者提出了Nexus,Nexus提供了一个抽象层,定义了概念Tasks 和 Slots。一个Task表示一组可以当作一个单位对待的工作。一个Slot表示framework可以在其上运行task的计算资源(A Slot represents a computing resource in which a framework may run a task)。

    Nexus提供了两个层次的调度:第一个层次,使用fair sharing在frmaworks之间分配slots;第二个层次,每一个framework负责1.将其上work划分为tasks,2.决定使用那些slot 以及3. 选择分配在每一个slot上运行的task。这给予每一个单独的framework自己定义和优化的空间。

<图片1>
   

如Figure 1所示,Nexus的体系结构。Nexus提供了master,scheduler,executor三个process,这三个process:
1. master process在cluster内的每一个节点上控制着一个slave 守护进程(daemon);
2. 每一个framework拥有一个scheduler process 向master 登记;
3. scheduler提供了task descriptor(任务描述符),通过task descriptor在其分配到的slots上运行tasks。而每个task descriptor被传递给Nexus提供的位于slave 节点上的对应于各个framework (framework-specified)的executor process。
    这样实现了从高层到底层的映射和非配。一个framework如果在某个物理节点上分配了多个slot,则每个slot拥有一个executor。executor还可以被后续使用该slot的tasks重用,这也实现了tasks间的共享。
    最后,Nexus将tasks的status update传递给schedulers。

整个系统体系结构说明如上。

    Nexus提供的是一种抽象机制,使得不同framework提供的不同计算模型可以同时在同一物理存储上运作,不必进行物理存储资源在不同framework间的copy。这种抽象在未来随着越来越多的云计算平台被不同公司使用不同计算模型实现会变得越来越重要,也就是一个统一的云计算模型,一种计算模型标准会被人们努力的规范提出。这一步,米国又走到了前面。

 

PS: 晕了,我上传的图片显示到哪里去了,....

内容概要:本文系统性地介绍了基于“断线解环”思想的配电网辐射状拓扑约束建模方法,旨在通过Matlab代码实现,复现顶级EI论文中的核心技术。该方法聚焦于保障配电网在运行过程中维持严格的辐射状结构,防止环路形成,从而提高系统的安全性、稳定性和运行效率。文章深入阐述了如何利用混合整数线性规划(MILP)等优化技术处理复杂的拓扑约束条件,并结合标准配电网络进行仿真验证,特别适用于含分布式电源接入的现代复杂配电网。资源包不仅包含完整的Matlab实现代码,还整合了大量前沿科研方向的相关代码与资料,涵盖微电网优化调度、电动汽车协同管理、风光储联合系统、路径规划、深度学习预测等多个热门领域,并提供YALMIP等建模工具的支持,极大地方便了科研人员的学习、复现与二次开发。; 适合人群:具备电力系统、自动化、电气工程或相关工科专业背景,熟练掌握Matlab/Simulink仿真环境,正在从事电力系统优化、智能电网、分布式能源等领域科研或工程应用的人员,尤其适合研究生、博士生及具有一定科研基础的工程师。; 使用场景及目标:① 深入理解并掌握配电网辐射状拓扑约束的数学建模原理与“断线解环”策略的核心思想;② 成功复现高水平EI/SCI期刊论文中的优化模型与算法流程;③ 借助所提供的丰富案例代码,快速开展微电网经济调度、电动汽车优化、新能源预测、多目标优化等方向的科研项目;④ 熟练运用YALMIP等高级建模语言进行电力系统优化问题的建模、求解与分析。; 阅读建议:建议读者优先关注网盘中提供的完整代码、说明文档及示例数据,严格按照资源目录结构循序渐进地学习,重点剖析“断线解环”在消除环路、保证拓扑可行性方面的具体实现逻辑。务必亲自动手运行、调试和修改Matlab代码,以深化对理论模型与编程实现之间联系的理解。同时,可充分利用文中列举的其他研究主题作为灵感来源,拓展自身的科研视野与创新思路。
代码转载自:https://pan.quark.cn/s/3dad5e95abc6 在数据科学领域,Stata被视作一种应用广泛的统计分析工具,特别是在社会科学与公共卫生研究范畴内具有较高的人气。当运用Stata对数据集进行操作时,保障数据的完整性与精确度是极为关键的一环,因为缺失数据(空缺数据)可能对分析结果的可靠性与有效性造成显著干扰。本文将深入阐释如何在Stata环境下处理数据集中的空缺数据,以确保后续的数据分析能够建立在精确无误的数据基础上。 我们需要明确Stata中空缺数据的表达方式。在Stata系统里,当一个变量的数值未被记录或处于未知状态时,通常会以"."符号进行标识,该符号即代表了空缺数据。空缺数据可能源于有意为之(例如,某些信息未被系统收集),也可能由数据录入失误或数据传输过程中的遗失所导致。不论其成因如何,处理这些空缺数据都是数据整理过程中的一个重要组成部分。 处理Stata数据集空缺数据的技术有多种,以下列举三种基础且实用的策略: 1. 移除包含空缺数据的记录: 这种技术适用于那些不允许任何空缺数据的变量或整体分析。借助`rowmiss(_all)`函数能够检测数据集中是否存在任何空缺数据。`egen mis = rowmiss(_all)`这一行代码会生成一个新变量mis,用以记录每条记录中空缺数据的数量。随后,执行`drop if mis`指令将移除所有至少含有一个空缺数据的记录。以此方式,可以确保保留下来的记录在所有变量上均无空缺数据。 2. 移除特定变量中存在空缺数据的记录: 在某些情形下,可能仅关注特定变量的空缺数据。比如,若变量"vars"存在空缺数据,我们可以运用`drop`指令搭配`if`条件来移除这些记录。指令`dro...
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 在数据结构的研究过程中,图被视为一种极为关键的非线性数据结构,其主要功能在于展现不同对象之间的相互联系。图的结构保存途径主要有两种:邻接矩阵以及邻接表。这两种保存途径各自具备独特的长处与短处,并适用于不同的应用情形。 邻接矩阵本质上是一种二维数组,数组中的各个元素用于标示图中顶点之间是否存在连接。对于无向图而言,邻接矩阵呈现出对称性,即假如顶点i与顶点j之间存在一条边,那么矩阵中的元素`arcs[i][j]`和`arcs[j][i]`均会是1(或具有非零值,用以代表权重)。而对于有向图,邻接矩阵通常是非对称的,仅`arcs[i][j]`有可能为1,此表明从顶点i至顶点j存在一条有向的边。邻接矩阵的优势在于,检索任意两个顶点之间是否存有边的时间复杂度仅为O(1),然而它的劣势在于空间利用效率不高,特别是在图呈现稀疏状态时(边的数量远远小于顶点数量平方的值)。 邻接表则提供了一种更为节省空间的保存方法,它为每一个顶点维持一个链表,链表中的各个节点代表了与该顶点相接的所有的边。每个链表节点包含了相邻顶点的索引(或资讯)以及边的权重值。邻接表在应对稀疏图时表现出更高的效率,因为它仅存储现实中存在的边。探寻一个顶点的所有邻接顶点的时间复杂度为O(degree(v)),其中degree(v)是顶点v的度,即与v相连接的边的数目。 在前述的实验活动中,包含了两个核心任务: 1. 将一个指定的有向图从邻接矩阵的格式转换为邻接表的格式,反之亦然。 2. 构思一套程序,让用户能够手动输入图的相关信息,然后将其转变为另一种保存格式。 在采用C语言进行实现时,`AdjMatrix`被定义为一个二维的...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值