DCFramework 动态分布式计算框架(00) -- 序

简介: 分布式计算最基本的目的之一就是为了充分利用空闲的计算节点的计算能力。通常,我们首先会将要被分布式计算的程序在每个计算节点部署好,然后才可以调用分布式计算。这种“部署”是一种静态的。之所以称为静态的,是因为还有一种更动态更灵活的方式 -- 我们可以随时的、动态的将我们新完成的程序自动【提交】到已经部署好的分布式框架里动态运行起来。

    分布式计算最基本的目的之一就是为了充分利用空闲的计算节点的计算能力。通常,我们首先会将要被分布式计算的程序在每个计算节点部署好,然后才可以调用分布式计算。这种部署是一种静态的。之所以称为静态的,是因为还有一种更动态更灵活的方式 -- 我们可以随时的、动态的将我们完成的程序自动【提交】到已经部署好的分布式框架里动态运行起来。比如,假设我刚写了一个新的排序的算法程序(假设程序集为X.dll),然后我要对现有的10000000个数据进行排序,但是,我的机器配置太差,运行不了如此大的计算任务,那么我就可以将X.dll和要排序的数据传递给部署在其它地方的动态分布式计算框架实例,动态分布式计算框架会调用X.dll中的排序算法来对数据进行排序,并返回结果。这就是动态的含义。我写DCFrameworkDynamic Distributed Computing Framework)这个框架的主要目标是达到这样的一个效果。不知道这种分布式计算架构和云计算是否有点关系?

      如果是使用CC++来实现这样的动态效果,应该不是一件简单的事情,但是强大的.Net平台使得实现这一目标称为可能,并且不是那么难。

      我将平台选定在.NET,这可以使很多功能更加容易实现,也使得很多问题得到简化。DCFramework的主要特性如下:

1)基于.NET平台。这有两种含义:DCFramework是用.NET2.0)实现的;也只有基于.NET的程序才可以使用DCFramework支撑的动态分布式计算架构。

2DCFramework 使用DCTask表示动态分布式计算任务。

3)分布式计算节点可以动态的增加、删除。所谓计算节点就是用于真正执行分布式计算任务的节点,在DCFramework中称为DC Worker Node

4)在DCFramework架构中有一个特殊的节点叫DC Master Node,它的作用在于统一管理所有的DC Worker Node,并将新的分布式计算任务分配给当前负载最低的那个DC Worker Node

5DCFramework使用Remoting技术解决DC Worker NodeDC Master Node,以及DC Master NodeClient(需要动态分布式计算的客户端)之间的通信。

6DCFramework使用反射技术来动态加载程序集和调用计算方法。

7DCFramework使用DCAppDomain(对.NET AppDomain的封装)来构建执行分布式任务的独立环境。即每个分布式计算任务最终在一个独立的DCAppDomain种执行。

8DCFramework使用序列化技术来传递被调用的对象。

      关于DCFramework中节点部署的简单图示如下: 

 

      

      现在,我们假设某个Client A有个计算任务要提交给DCFramework执行,让我们来看看这个过程是怎样进行的。

      Client A 将计算的逻辑封装在MyClass类中,其位于X.dll程序集中,而X.dll有依赖于Y.dll,Y.dll又依赖于Z.dll,而X.dll、Y.dll、Z.dll都是用户自定义的程序集。如果是在Client A本地执行计算任务,是这样做的: 

       MyClass  myClass  =   new   MyClass ();
      
//  为myClass属性赋值,并初始化,此处省略若干代码
       object  result  =  myClass.DoSomething();

      下面的代码将会在DCFramework架构的某个DC Worker Node上执行MyClass.DoSomething()方法。    

        MyClass  myClass  =   new   MyClass ();
       
//  为myClass属性赋值,并初始化,此处省略若干代码   

       
DCJobDispatcher  dispatcher  =   ...... ;
       dispatcher.Dispatch(myClass, 
" DoSomething " );

      分布式计算执行的过程简述如下:      

(1)DCJobDispatcher 会自动Remoting连接到DC Master Node。

(2)DCJobDispatcher 将分布式计算任务封装为一个DCTask,DCTask实例中会包含X.dll、Y.dll、Z.dll程序集对应的文件数据。

(3)DCJobDispatcher 将DCTask提交给DC Master ,DC Master 会将其交与DC Worker Node中负载最小的那个节点(假设为Worker A)执行。

(4)Worker A会为新任务创建一个单独的DCAppDomain,然后加载传递过来的DCTask中的X.dll、Y.dll、Z.dll,接着就可以反序列化MyClass对象,最后通过反射调用其DoSomething方法,以开始执行计算任务。

(5)计算完成后,Worker A会卸载对应的DCAppDomain,并将计算结果返回。

      上述就是DCFramework执行动态分布式任务的一个简单介绍,更详细的部分会在后续的文章中介绍。

      欢迎讨论,谢谢。

 

 目录:

DCFramework 动态分布式计算框架(01)-- 基础结构

 

下载:

1.DCFramework的完整Demo源码DCFrameworkDemo

                  

 

 

 

 

目录
相关文章
|
6天前
|
机器学习/深度学习 自然语言处理 并行计算
DeepSpeed分布式训练框架深度学习指南
【11月更文挑战第6天】随着深度学习模型规模的日益增大,训练这些模型所需的计算资源和时间成本也随之增加。传统的单机训练方式已难以应对大规模模型的训练需求。
30 3
|
10天前
|
机器学习/深度学习 并行计算 Java
谈谈分布式训练框架DeepSpeed与Megatron
【11月更文挑战第3天】随着深度学习技术的不断发展,大规模模型的训练需求日益增长。为了应对这种需求,分布式训练框架应运而生,其中DeepSpeed和Megatron是两个备受瞩目的框架。本文将深入探讨这两个框架的背景、业务场景、优缺点、主要功能及底层实现逻辑,并提供一个基于Java语言的简单demo例子,帮助读者更好地理解这些技术。
32 2
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
43 1
|
2月前
|
数据采集 分布式计算 MaxCompute
MaxCompute 分布式计算框架 MaxFrame 服务正式商业化公告
MaxCompute 分布式计算框架 MaxFrame 服务于北京时间2024年09月27日正式商业化!
75 3
|
2月前
|
负载均衡 监控 Dubbo
分布式框架-dubbo
分布式框架-dubbo
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
44 0
|
2月前
|
运维 NoSQL Java
SpringBoot接入轻量级分布式日志框架GrayLog技术分享
在当今的软件开发环境中,日志管理扮演着至关重要的角色,尤其是在微服务架构下,分布式日志的统一收集、分析和展示成为了开发者和运维人员必须面对的问题。GrayLog作为一个轻量级的分布式日志框架,以其简洁、高效和易部署的特性,逐渐受到广大开发者的青睐。本文将详细介绍如何在SpringBoot项目中接入GrayLog,以实现日志的集中管理和分析。
206 1
|
2月前
|
XML 负载均衡 监控
分布式-dubbo-简易版的RPC框架
分布式-dubbo-简易版的RPC框架
|
3月前
|
数据采集 分布式计算 并行计算
Dask与Pandas:无缝迁移至分布式数据框架
【8月更文第29天】Pandas 是 Python 社区中最受欢迎的数据分析库之一,它提供了高效且易于使用的数据结构,如 DataFrame 和 Series,以及大量的数据分析功能。然而,随着数据集规模的增大,单机上的 Pandas 开始显现出性能瓶颈。这时,Dask 就成为了一个很好的解决方案,它能够利用多核 CPU 和多台机器进行分布式计算,从而有效地处理大规模数据集。
173 1
|
2月前
|
分布式计算 资源调度 Hadoop
在YARN集群上运行部署MapReduce分布式计算框架
主要介绍了如何在YARN集群上配置和运行MapReduce分布式计算框架,包括准备数据、运行MapReduce任务、查看任务日志,并启动HistoryServer服务以便于日志查看。
57 0

热门文章

最新文章