首页> 中国专利> 基于分布式文件系统的仿真分布式并行计算平台及方法

基于分布式文件系统的仿真分布式并行计算平台及方法

摘要

本发明公开了基于分布式文件系统的仿真分布式并行计算平台及方法;所述平台包括:若干客户端,用户通过客户端提交任务到调度节点,由调度节点统一分配任务经由交换机传输到若干计算节点参与计算,所述计算节点计算完成后将计算结果传回调度节点,再由调度节点处理计算结果并且直接写入或通过数据接口写入数据库并通知客户端计算完毕;本发明的有益效果:大幅提高了输入计算数据与输出计算结果通信效率,从而大幅提高了整个分布式并行计算平台计算效率,同时分布式文件系统的使用,有助于降低网络拥塞状态下大文件传输交换出错几率,提高仿真计算结果可靠性与正确性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-22

    授权

    授权

  • 2014-07-16

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20140305

    实质审查的生效

  • 2014-06-18

    公开

    公开

说明书

技术领域

本发明涉及一种基于分布式文件系统的仿真分布式并行计算平台及方法。

背景技术

分布式文件系统(Distributed File Systems)是基于客户机/服务器架构的网络文件系统。一 个典型的网络文件系统可能包括多个供多客户端访问的服务端,对等特性允许一些服务器既 扮演客户机,又充当服务机的双重角色。例如,用户可以“发表”一个允许其他客户机访问的 文件目录,对于客户机来说,这个文件目录与使用本地驱动器无异,目前三种基本的分布式 文件系统分别为:网络文件系统(NFS)、Andrew文件系统(AFS)、分布式文件系统(DFS)。

网络文件系统(NFS)最早由Sun微系统公司作为TCP/IP网上的文件共享系统开发。Sun公 司估计现在大约有超过310万个系统在运行NFS,大到大型计算机、小至PC机,其中至少有80% 的系统是非Sun平台。NFS最初是针对家庭直连远程控制、局域网无盘工作站以及服务器而设 计的。价格更低、性能更高的Linux计算集群、多核处理器以及刀锋系列产品的出现,使得人 们对更为高效的文件访问的需求异军突起。1984年制定的协议在速度上显然无法满足用户的 需求。“NFS从Lustre和GPFS等集群文件系统上感到了压力,Google GFS等Web2.0服务供应商 的定制文件系统技术也在向NFS施加影响。”目前NFS已经进展到pNFS阶段,也就是NFS4.1 版本。pNFS代表着是NFS十几年最为重要的功能升级。将并行I/O标准化,以及允许客户通过 并行方式直连存储设备是pNFS的两项重要成就。

Andrew文件系统(AFS)结构与NFS相似,由卡内基·梅隆大学信息技术中心(ITC)研发、现 由前ITC职员组成的Transarc公司负责开发和销售。AFS较NFS有所增强。目前已经有基于AFS2 的Coda File System成功应用实施。

分布式文件系统(DFS)是AFS的一个版本,作为开放软件基金会(OSF)的分布式计算环境 (DCE)中的文件系统部分。

通过计算机来仿真电力系统实际运行过程已经成为电力系统仿真的主流,早期由于电力 系统规模小,模型简单,因此单用户在单机上就能完成数据维护和仿真分析。随着跨区互联 电网的形成和电网规模的不断扩大,电网的运行过程越来越复杂,仿真计算量也越来越大, 单机的仿真计算已经难以满足工作需求,因此,分布式计算被应用到电力系统仿真领域中, 不少公司开发了分布式计算平台。目前推广使用的具有自主产权的电力系统分布式计算平台 采用通信中间件传递文件与控制指令,短处比较明显:大文件传输交换效率低,出错几率大, 通信效率不高,长处突出表现为:短文件(控制指令)吞吐量大,出错几率极小,通信效率 高。

为了发挥现有研究成果——自主产权分布式并行计算平台通信中间件长处,规避实际使 用过程中出现的短处,引入分布式文件系统改进分布式并行计算平台通信环境是最佳选择。 发明内容

本发明的目的就是为了解决上述问题,提供一种基于分布式文件系统的仿真分布式并行 计算平台及方法,它具有大幅提高了输入计算数据与输出计算结果通信效率,从而大幅提高 了整个分布式并行计算平台计算效率,同时分布式文件系统的使用,有助于降低网络拥塞状 态下大文件传输交换出错几率,提高仿真计算结果可靠性与正确性的优点。

为了实现上述目的,本发明采用如下技术方案:

基于分布式文件系统的仿真分布式并行计算平台,包括:若干客户端,用户通过客户端 提交任务到调度节点,由调度节点统一分配任务经由交换机传输到若干计算节点参与计算, 所述计算节点计算完成后将计算结果传回调度节点,再由调度节点处理计算结果并且直接写 入或通过数据接口写入数据库并通知客户端计算完毕。

所述客户端是用于用户提交任务的,相当于客户体验界面,只要遵守了分布式计算平台 相关协议和接口,都可以采用tcp机制调用相关接口提交计算任务请求到分布式计算平台参 与计算,并通过数据库读取将计算结果展现给用户。

所述调度节点属于整个分布式并行计算平台的核心服务器,用于任务接收,任务调度, 任务分配以及超时管理和控制的节点服务器,每一个用户提交的计算任务请求都由它来统一 分配和调度,计算完成后,还由它将计算结果写入异地数据库并且通知客户端任务已计算完 成。

所述交换机是一种硬件设备,负责连接多台服务器节点的网络桥梁,让每个服务器之间 可以通过有线网或无线网互相通信,从而完成不同服务器之间的消息和数据传送。

所述计算节点是分布式计算平台的计算业务核心处理服务器,完成接收和响应从调度节 点服务器传送过来的命令和数据,然后对命令加以分析,调用核心计算程序参与计算,计算 完毕后还将计算结果打包传送到调度节点,另外还负责将自己的硬件资源信息(cpu核数, 磁盘空间信息,内存大小)传送到调度节点。

所述基于分布式文件系统的仿真分布式并行计算平台的计算方法,包括如下步骤:

步骤(1):用户通过客户端提交普通计算任务和/或高级计算任务,计算任务通过第一通 信中间件netinit将发送给调度节点,其中普通计算任务将数据发送给调度节点的分布式平台 DistComp,高级计算任务将数据发送给调度节点的调度壳distcomp_master,所述调度节点的 调度壳distcomp_master分别与若干个第三方接入平台的厂家主控程序、分布式平台DistComp 和第二通信中间件netinit进行通信;

步骤(2):第二通信中间件将接收到的高级计算任务发送给计算节点的计算壳 distcomp_master开始计算,同时计算壳distcomp_master还与分布式平台DistComp和第三方 接入平台的厂家计算程序进行通信。

所述步骤(1)中的普通计算任务包括:暂稳PSASP_ST.exe、电压稳定PSASP_VS.exe、 小干扰PSASP_SSR.exe、静态电压稳定PSASP_N1.exe、短路电流PSASP_SCC.exe;所述高级 计算任务包括:稳定浴度PSASP_DISTATC.exe、暂稳辅助决策PSASP_TSENSE.exe、小干扰辅 助决策PSASP_SSTSENSE.exe;高级计算以普通计算结果为输入,旨在解决普通计算中系统出 现的越限失稳故障等情况,通过调节系统内发电机出力,让系统解决故障状态,达到稳定运 行工况;

所述步骤(1)的普通计算任务的具体计算方法为:

步骤(1a-1):调度节点收到普通任务计算请求,首先分析TaskList子任务配置文件,分析 每个子任务计算类型、超时时间及任务编号,并对每个子任务创建一个单独的超时子线程, 然后将子任务加入任务队列,将超时子线程加入超时任务线程池;

步骤(1a-2):子任务分析就绪之后,根据计算节点可用资源情况,将各个子任务下发到 对应的计算节点参与计算,然后进入查询和超时判断,直到超时定时器被触发或者有计算结 果返回;

步骤(1a-3):当调度服务器主控进程DistComp收到计算节点返回的某个子任务计算结果 信息时,查询任务队列找到该子任务,然后标注计算状态为完成并且撤销该子任务对应的定 时器;

步骤(1a-4):当某个子任务设置的超时定时器函数被触发时,DistComp首先判断该子任 务超时次数是否已经达到预先设定的次数,如果已经达到上限,则标注该子任务计算失败并 且撤销对应定时器;如果没有达到上限,则重新发送该子任务到某个可用计算节点再次参与 计算;

步骤(1a-5):在超时函数处理或者计算结果返回处理过程中,DistComp会判断是否所有 子任务都已经完成或者超时失败,如果TaskList配置文件中的每一行任务都已经处理完成,则 将结果信息和任务完成状态写入数据库,并通知客户端任务计算完成。

所述步骤(1)的高级计算任务的具体计算方法为:

(1b-1)调度节点的调度壳distcomp_master控制进程收到高级计算任务请求,首先进行 协议分析和数据生成,然后分析从客户端发来的TaskControl.conf文件,将厂家主控程序记录 在进程列表队列;

(1b-2)调度节点的调度壳distcomp_master分析数据目录,算出需要多少计算节点来计 算这次任务,然后向DistComp发送资源请求消息,待消息反馈后分析平台目前可用节点资源 是否满足需求,如果满足,跳步骤(1b-3),否则继续发送资源请求消息,直到资源满足为止;

(1b-3)调度节点的调度壳distcomp_master根据资源信息请求反馈生成HostTask.conf 配置文件和其他配置文件,将配置文件重新打包到zip文件,并向DistComp发送节点独占请 求信息,让DistComp交出计算节点控制权,由调度节点的调度壳distcomp_master完全控制;

(1b-4)成功控制计算节点后,调度节点的调度壳distcomp_master分析TaskControl.conf 文件,并同时启动该文件所列的所有厂家管理进程,将进程号记录在队列;

(1b-5)调度节点的调度壳distcomp_master从进程队列里取出一个厂家管理进程,向其 发送USR1信号来完成数据和目录生成准备工作,如果在规定时间内未收到该进程反馈的 USR1信号,则认为数据准备工作无法就绪,如果目前进程队列为空,则此次任务计算失败, 否则从进程队列中继续取出另一个厂家管理进程,继续做(1b-5)工作;

(1b-6)成功收到数据就绪USR1信号后,distcomp_master将zip文件内容及协议内容一 起选择多播到计算节点参与计算工作,并设置定时器;

(1b-7)在计算节点结算过程中,每次收到一个结果完成的消息后都向当前正在处理的 厂家管理进程发送USR2计算任务完成信号,在定时器时间到达内并且重发次数小于设定值, 如果还没有收到厂家管理进程的USR2计算任务完成信号,则分析哪些节点未完成计算并重 新生成HostTask.conf文件,将数据重新选择多播到相应节点参与计算,转至(1b-8);

(1b-8)当收到厂家的USR2计算任务完成信号或者超时重发次数已达上限的情况下, 将该厂家计算任务置成完成状态,并发送消息通知数据节点进行数据库入库等操作,然后判 断厂家进程队列所有进程是否都处理完,如果未处理完,则转至(1b-5),否则表示此次界面 提交任务已经全部完成,向DistComp发送计算完成消息,回收独占的计算节点资源,交回 DistComp控制。

所述步骤(2)的具体计算方法为:

(2-1)计算节点DistComp收到高级计算任务的计算请求后,从消息队列中取出消息并 解析消息,在相应目录生成数据;

(2-2)数据准备工作完成后,向计算节点的计算壳distcomp_interface发送高级计算请求 消息;

(2-3)计算节点的计算壳distcomp_interface首先分析TaskControl.conf文件,然后根据 其内容分析相应LocalTask_PSASP_DISTATCLF.exe_hostname.conf文件并将所有需要参与计 算的高级计算程序记录在队列中;

(2-4)从队列中取出一个第三方接入平台的厂家计算程序并启动和监视进程退出信号并 设置定时器,当计算进程计算完成退出后读取结果文件并启动下一个计算进程,待所有计算 进程都算完后,向调度节点发送连带结果文件内容的计算成功消息;

(2-5)如果超时时间已过,计算进程未算出结果,则根据重算次数来决定是否重启计算 进程重新计算,如果需要重新计算,则转至(2-4),否则向调度节点发送计算失败的消息。

本发明的有益效果:

1、本发明充分利用了分布式文件系统MooseFS分流大文件数据交换,对文件数量大、 单个文件存储空间占用小的电力系统仿真分析计算应用环境下,大幅提高了输入计算数据与 输出计算结果通信效率,从而大幅提高了整个分布式并行计算平台计算效率,同时分布式文 件系统的使用,有助于降低网络拥塞状态下大文件传输交换出错几率,提高仿真计算结果可 靠性与正确性。

2、传统分布式并行计算平台使用单一的文件数据传输交换通道,容易因单点软件故障导 致整个并行计算平台失效,稳定性不高。使用分布式文件系统重新构建分布式并行计算平台 之前的分布式计算平台,将分布式文件系统运用到分布式并行计算平台后,计算速度、计算 准确度和平台稳定性明显提高。此外,分布式文件系统MooseFS可以存储多份数据副本,支 持总量P级数据存储与M级并发存取,对数据安全性与存储系统支持容量上限有大幅提升, 可以用分布式文件系统构建存储系统,取代传统分布式文件系统历史数据备份使用的盘阵, 减少硬件投资,提高数据安全级别。

3、借助分布式文件系统处理电力系统仿真计算数据的思想。

4、引入分布式文件系统MooseFS分流分布式并行计算平台数据流设计。

5、依据电力系统仿真计算数据量多单个文件碎小特点在诸多分布式文件系统成熟产品中 选型MooseFS。

6、历史数据基于分布式文件系统MooseFS多副本留存,提高电力系统仿真计算历史数 据存储系统数据安全级别与存储容量。

7、选型分布式文件系统具备通用文件系统POSIX接口,不需要修改传统分布式并行计 算平台应用就可以直接使用,无缝对接原有电力系统仿真计算应用。

附图说明

图1为本发明的系统架构示意图;

图2为分布式文件系统并行计算平台数据流与控制流示意图;

图3为本发明的整体流程示意图;

图4为分布式计算Master节点处理普通计算任务流程图;

图5为分布式计算Master节点处理高级计算任务流程图;

图6计算节点处理高级计算任务流程图。

具体实施方式

下面结合附图与实施例对本发明作进一步说明。

如图1所示,基于分布式文件系统的仿真分布式并行计算平台,包括:若干客户端,用 户通过客户端提交任务到调度节点,由调度节点统一分配任务经由交换机传输到若干计算节 点参与计算,所述计算节点计算完成后将计算结果传回调度节点,再由调度节点处理计算结 果并且直接写入或通过数据接口写入数据库并通知客户端计算完毕。

如图2所示,分布式文件系统包括若干个磁盘块,包括任务提交端、调度管理模块、数 据管理模块和若干节点管理模块;所述任务提交端将接收到的任务发送给调度管理模块和数 据管理模块,所述调度管理模块将任务分发给若干计算节点管理模块,所述计算节点管理模 块将处理后的结果反馈给调度管理模块,调度管理模块将数据反馈给任务提交端和数据管理 模块。

如图3所示,所述基于分布式文件系统的仿真分布式并行计算平台的计算方法,包括如 下步骤:

步骤(1):用户通过客户端提交普通计算任务和/或高级计算任务,计算任务通过第一通 信中间件netinit将发送给调度节点,其中普通计算任务将数据发送给调度节点的分布式平台 DistComp,高级计算任务将数据发送给调度节点的调度壳distcomp_master,所述调度壳 distcomp_master分别与若干个第三方接入平台的厂家主控程序、分布式平台DistComp和第 二通信中间件netinit进行通信;所述第三方接入平台的厂家主控程序可以是 PSASP_DISTATCLF_master.exe,也可以是其他主控程序。

步骤(2):第二通信中间件将接收到的高级计算任务发送给计算节点的计算壳 distcomp_master开始计算,同时计算壳distcomp_master还与分布式平台DistComp和第三方 接入平台的厂家计算程序进行通信;所述第三方接入平台的厂家计算程序可以是 PSASP_DISTATC.exe,也可以是其他厂家计算程序。

如图4所示,

步骤(1a-1):调度节点收到普通任务计算请求,首先读取并分析TaskList子任务配置文件, 分析每个子任务计算类型、超时时间及任务编号,并对每个子任务创建一个单独的超时子线 程,然后将子任务加入任务队列,将超时子线程加入超时任务线程池;

步骤(1a-2):子任务分析就绪之后,根据计算节点可用资源情况,将各个子任务下发到 对应的计算节点参与计算,然后进入查询和超时判断,直到超时定时器被触发或者有计算结 果返回;

步骤(1a-3):当调度服务器主控进程DistComp收到计算节点返回的某个子任务计算结果 信息时,查询任务队列找到该子任务,然后标注计算状态为完成并且撤销该子任务对应的定 时器;

步骤(1a-4):当某个子任务设置的超时定时器函数被触发时,DistComp首先判断该子任 务超时次数是否已经达到预先设定的次数,如果已经达到上限,则标注该子任务计算失败并 且撤销对应定时器;如果没有达到上限,则重新发送该子任务到某个可用计算节点再次参与 计算;

步骤(1a-5):在超时函数处理或者计算结果返回处理过程中,DistComp会判断是否所有 子任务都已经完成或者超时失败,如果TaskList配置文件中的每一行任务都已经处理完成,则 将结果信息和任务完成状态写入数据库,并通知客户端任务计算完成。

如图5所示,所述步骤(1)的高级计算任务的具体计算方法为:

(1b-1)调度节点的调度壳distcomp_master控制进程收到高级计算任务请求,首先进行 协议分析和数据生成,然后分析从客户端发来的TaskControl.conf文件,将厂家主控程序记录 在进程列表队列;

(1b-2)调度节点的调度壳distcomp_master分析数据目录,算出需要多少计算节点来计 算这次任务,然后向分布式计算管理程序DistComp发送资源请求消息,待消息反馈后分析平 台目前可用节点资源是否满足需求,如果满足,跳步骤(1b-3),否则继续发送资源请求消息, 直到资源满足为止;

(1b-3)调度节点的调度壳distcomp_master根据资源信息请求反馈生成HostTask.conf 配置文件和其他配置文件,将配置文件重新打包到zip文件,并向DistComp发送节点独占请 求信息,让DistComp交出计算节点控制权,由调度节点的调度壳distcomp_master完全控制;

(1b-4)成功控制计算节点后,调度节点的调度壳distcomp_master分析TaskControl.conf 文件,并同时启动该文件所列的所有厂家管理进程,将进程号记录在队列;

(1b-5)调度节点的调度壳distcomp_master从进程队列里取出一个厂家管理进程,向其 发送USR1信号来完成数据和目录生成准备工作,如果在规定时间内未收到该进程反馈的 USR1信号,则认为数据准备工作无法就绪,如果目前进程队列为空,则此次任务计算失败, 否则从进程队列中继续取出另一个厂家管理进程,继续做(1b-5)工作;

(1b-6)成功收到数据就绪USR1信号后,distcomp_master将zip文件内容及协议内容一 起选择多播到计算节点参与计算工作,并设置定时器;

(1b-7)在计算节点结算过程中,每次收到一个结果完成的消息后都向当前正在处理的 厂家管理进程发送USR2计算任务完成信号,在定时器时间到达内并且重发次数小于设定值, 如果还没有收到厂家管理进程的USR2计算任务完成信号,则分析哪些节点未完成计算并重 新生成HostTask.conf文件,将数据重新选择多播到相应节点参与计算,转至(1b-8);

(1b-8)当收到厂家的USR2计算任务完成信号或者超时重发次数已达上限的情况下, 将该厂家计算任务置成完成状态,并发送消息通知数据节点进行数据库入库等操作,然后判 断厂家进程队列所有进程是否都处理完,如果未处理完,则转至(1b-5),否则表示此次界面 提交任务已经全部完成,向DistComp发送计算完成消息,回收独占的计算节点资源,交回 DistComp控制。

所述步骤(1)的高级计算任务的具体计算方法为:

步骤(101):调度壳控制程序distcomp_master接收高级计算任务;转入步骤(102);

步骤(102):判断是否有任务,如果有就进入步骤103,如果没有就返回步骤101;

步骤(103):数据协议分析,向分布式计算管理程序DistComp发送资源请求消息,待分 布式计算管理程序DistComp的消息反馈,然后进入步骤(105);

步骤(104):分析平台目前可用节点资源是否满足需求;如果满足就进入步骤(105); 如果不满足就继续向分布式计算管理程序DistComp发送资源请求消息;

步骤(105):生成HostTask.conf配置文件和其他配置文件,向分布式计算管理程序 DistComp发出节点独占请求信息,分布式计算管理程序DistComp生成消息反馈,然后进入 步骤(106);

步骤(106):判断独占是否成功,如果成功,就进入步骤(107),如果失败,那就回到 主流程继续申请,直到成功申请到可用资源;

步骤(107):读取第三方接入平台的厂家主控程序;分别进入步骤(108)和步骤(115);

步骤(108):数据准备,向步骤(115)的厂家管理进程发送USR1信号,同时进入步骤(109);

步骤(109):判断是否超时,如果超时就进入步骤(113);如果未超时就进入步骤(110);

步骤(110):将高级计算任务选择多播到计算节点参与计算;进入步骤(111);

步骤(111):收到结果消息;将步骤(115)发送USR2信号;并进入步骤(112);

步骤(112):如果判断USR2信号超时,判断超时的次数是否超过设定值,如果是就重 新生成HostTask.com文件,并返回步骤(110);如果否就进入步骤(113);

步骤(113):判断厂家管理进程是否处理完,如果处理完就进入步骤(114);

步骤(114):发送计算完成消息,独占节点资源收回;然后进程进入无任务状态,等待 接收用户提交的下一个任务;

步骤(115):启动厂家管理进程或者其他第三方接入平台的厂家管理进程;厂家管理进 程向步骤(110)发送USR1信号;厂家管理进程还将结果送入步骤(116);

步骤(116):结果汇总;发送USR2信号;进入步骤(117);

步骤(117):判断是否接收到USR2信号;如果是表示计算顺利完成,进入步骤(113); 如果否表示第三方程序出问题了,这个可以根据设定的超时来实现,超时时间到触发超时处 理函数,在函数块中将该任务标注计算失败。

如图6所示,

所述步骤(2)的具体计算方法为:

(2-1)计算节点DistComp收到高级计算任务的计算请求后,从消息队列中取出消息并 解析消息,在相应目录生成数据;

(2-2)数据准备工作完成后,向计算节点的计算壳distcomp_interface发送高级计算请求 消息;

(2-3)读取配置文件,所述配置文件包括客户端发来的TaskControl.conf文件和 LocalTask_PSASP_DISTATCLF.exe_hostname.conf文件,计算节点的计算壳distcomp_interface 首先分析客户端发来的TaskControl.conf文件,然后根据其内容分析相应 LocalTask_PSASP_DISTATCLF.exe_(hostname).conf文件并将所有需要参与计算的高级计算程 序记录在消息队列中;

(2-4)从消息队列中取出一个第三方接入平台的厂家计算程序并启动和监视进程退出信 号并设置定时器,当计算进程计算完成退出后读取结果文件并启动下一个计算进程,待所有 计算进程都算完后,向调度节点发送连带结果文件内容的计算成功消息;

(2-5)如果超时时间已过,计算进程未算出结果,则根据重算次数来决定是否重启计算 进程重新计算,如果需要重新计算,则转至(2-4),否则向调度节点发送计算失败的消息。

所述第三方接入平台的厂家程序包括主控管理程序和核心库或业务核心程序。

专业术语介绍表

上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限 制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付 出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号