一种基于cpu核管理的分布式并行计算平台及方法

文档序号:6539636阅读:143来源:国知局
一种基于cpu核管理的分布式并行计算平台及方法
【专利摘要】本发明公开了一种基于CPU核管理的分布式并行计算平台,包括:数据节点服务器:包括至少一台具有cpu多核能力的计算机,用于存放历史结果以及数据库服务节点;调度节点服务器:包括至少一台具有cpu多核能力的计算机,用于计算任务的调度与管理;计算节点服务器:包括至少一台具有cpu多核能力的计算机,用于将用户提交的数据进行处理,并调用第三方计算程序参与计算,所述第三方核心计算程序部署在计算节点上;本发明有益效果:本发明充分利用了cpu多核技术,对多任务处理大大提高了计算效率,充分利用了计算机资源,多核处理器比单核处理器具有性能和效率优势,多核处理器将会成为广泛采用的计算模型。
【专利说明】—种基于CPU核管理的分布式并行计算平台及方法
【技术领域】
[0001]本发明涉及电力系统仿真分布式并行计算领域,尤其涉及一种基于CPU核管理的分布式并行计算平台及方法。
【背景技术】
[0002]分布式并行计算平台是在多机环境下实现计算任务分配、任务调度、计算结果汇总、出错处理等,可以快速完成电力系统的仿真计算,并通过标准可扩展接口实现应用软件与并行计算平台之间的交互。
[0003]并行计算机群硬件近三年的飞跃式发展,并行计算单机硬件由之前的单机两路双核跃升到目前四路六核,可供利用计算资源CPU核数由三年前的单机四核发展至单机二十四核。随着D5000平台项目以及山东云仿真试点项目建设,分布式并行计算平台明确作为基本功能集成至D5000平台与云仿真平台,在电力系统计算与分析中起着关键、基本的平台支撑作用。
[0004]目前,分布式并行计算平台已经成功应用至在线运行态、在线研究态大电网预警及辅助决策系统,静态安全校核系统,离线研究态预警计算,综合稳定计算网络版,云仿真平台等。
[0005]从应用现状表现看,优缺点都很明显:在线运行态分布式并行计算平台不论是周期计算还是事件或者人工触发计算,计算任务相对计算资源饱和的情况下,运行高效、稳定;在线、离线研究态并行计算管理集群总CPU核数小于总任务数,也就是任务饱和的情况下,运行高效、稳定;在线、离线研究态分布式并行计算平台集群任务不饱和情况下,运行稳定,但是计算资源利用率低,目前的分布式计算平台都没有考虑CPU多核处理的优势,对多任务计算处理效率低,并且稳定性不高。例如:计算故障数为40,机群计算刀片为52片,每片具备计算资源8核,机群能提供的CPU核数为416核,单任务独占整个并行计算集群时间期间,计算资源核与节点利用率都仅为9.6% ;分布式并行计算平台集群计算耗时木桶效应明显,单批任务(阶段与轮次)分析计算总耗时等同于轮次内最长耗时计算占用时间。

【发明内容】

[0006]本发明的目的就是为了解决上述问题,提出了一种基于CPU核管理的分布式并行计算平台及方法。该方法可以大大提高电网计算分析能力,并且可以提高分布式计算平台的运行效率和稳定性,另外目前计算机的高内存、分布式存储技术等也为分布式并行计算平台的多核管理提供了有力的技术支撑。
[0007]为了实现上述目的,本发明采用如下技术方案:
[0008]一种基于CPU核管理的分布式并行计算平台,包括:
[0009]数据节点服务器:包括至少一台具有cpu多核能力的计算机,用于存放历史结果以及数据库服务节点。
[0010]调度节点服务器:包括至少一台具有CPU多核能力的计算机,用于计算任务的调度与管理。
[0011]计算节点服务器:包括至少一台具有CPU多核能力的计算机,用于将用户提交的数据进行处理,并调用第三方计算程序参与计算,所述第三方核心计算程序部署在计算节点上。
[0012]计算节点服务器将计算任务传送到调度节点服务器,调度节点服务器通过计算整个集群空闲资源CPU核数,进行计算任务的调度管理与数据的分布式并行计算,并将计算结果存储至数据节点服务器。
[0013]所述计算机上安装Linux操作系统,并配置Linux的SSH服务器使各个计算机之间无密码登陆。
[0014]一种基于CPU核管理的分布式并行计算方法,包括:
[0015]搭建基于核管理的并行分布式计算平台,加载配置文件并读取配置信息。
[0016]并行分布式计算平台对整个集群空闲资源cpu核数进行采集统计。
[0017]并行分布式计算平台针对客户端用户提交的计算任务数据,以及包含任务计算类另IJ、超时时间、计算参数信息的配置文件TaskList,实时更新集群空闲资源cpu核数,对计算任务进行并行处理。
[0018]所述并行分布式计算平台对整个集群空闲资源cpu核数进行采集统计的具体方法为:
[0019]计算节点每隔设定时间将包括cpu核数、硬盘空间、内存大小信息的本机资源打包发送至调度节点服务器。
[0020]调度节点服务器收到计算节点的资源信息包后,将cpu核数信息存储到一个全局结构体变量中。
[0021]由调度节点DistComp进程开启定时器函数,所述定时器函数定期检查所有计算节点上报资源信息情况,通过判断节点信息更新时间来判断计算节点资源上报信息是否超时,如果超时,DistComp将该计算节点的cpu核数从集群可用的cpu核数当中剔除,并存储当前集群可用的cpu核数。
[0022]所述并行分布式计算平台对计算任务进行并行处理的具体流程为:
[0023]调度节点初始化时即开启一个任务处理线程和一个消息接收线程,用于分别不断的处理任务和从别的节点发回来的消息。
[0024]用户客户端下发一个计算任务请求后,调度节点处理所述任务请求中的必要信息后,将所述计算任务请求存储为新任务,并将新任务发送至任务待处理队列当中。
[0025]任务处理线程发现有新任务到达时,首先判断是否当前集群有空闲核可以利用,如果没有,则回到线程继续等待;如果有可以利用的空闲核资源,则将新任务加上任务名后连同数据一起打包到计算节点请求计算,更新平台总空闲核数为当前平台总空闲核数减去该任务占用核数。
[0026]新建一个任务定时器函数用于检查该任务是否超时,当调度节点收到该任务完成消息或者该任务发生计算超时后,调度节点更新平台总空闲核数为当前平台总空闲核数加上该任务占用核数,并将任务写入数据库结果表。
[0027]本发明的有益效果是:本发明充分利用了 cpu多核技术,对多任务处理大大提高了计算效率,充分利用了计算机资源,多核处理器比单核处理器具有性能和效率优势,多核处理器将会成为广泛采用的计算模型。
[0028]之前的分布式计算平台都没有考虑cpu多核处理的优势,对多任务计算处理效率低,并且稳定性不高,经过重新架构,将CPU多核技术运用到分布式并行计算平台后,计算速度和稳定性明显提高了,只要计算资源充足,无论多少任务都会在较短的时间内计算完成。
【专利附图】

【附图说明】
[0029]图1为本发明分布式并行计算平台网络示意图;
[0030]图2为本发明分布式并行计算平台cpu核数采集流程图;
[0031]图3为本发明分布式并行计算平台任务处理流程图;
[0032]图4为本发明分布式并行计算平台任务数据流示意图;
[0033]图5为本发明分布式并行计算平台结果数据流示意图。
【具体实施方式】:
[0034]下面结合附图与实施例对本发明做进一步说明:
[0035]一、搭建一种基于CPU核管理的分布式并行计算平台
[0036]分布式并行计算平台结构如图1所示。
[0037]硬件配置
[0038]数据节点服务器:包括至少一台具有cpu多核能力的计算机,用于存放历史结果以及数据库服务节点。
[0039]调度节点服务器:包括至少一台具有cpu多核能力的计算机,用于计算任务的调
度与管理。
[0040]计算节点服务器:包括至少一台具有cpu多核能力的计算机,用于将用户提交的数据进行处理,并调用第三方计算程序参与计算,所述第三方核心计算程序部署在计算节点上。
[0041]计算节点服务器将计算任务传送到调度节点服务器,调度节点服务器通过计算整个集群空闲资源cpu核数,进行计算任务的调度管理与数据的分布式并行计算,并将计算结果存储至数据节点服务器。
[0042]软件配置
[0043]操作系统:linux (主流unix操作系统均可)
[0044]内存:2G以上
[0045]硬盘:30G以上
[0046]CPU:1 核以上
[0047]平台部署
[0048]1、新建用户
[0049]新建并行计算平台用户(ndsa,如果机器上有该用户,则先删除),该用户用于分布式环境下进行电力系统仿真计算,在所有节点上进行如下操作:
[0050]$su~root
[0051]$groupadd ndsa[0052]$useradd - m - g ndsa ndsa
[0053]$passwdndsa (ndsa, ndsa)
[0054]2、平台包安装
[0055]在数据、调度、计算节点上分别解压相关的tgz压缩包,解压后的目录结构说明如下:
[0056]bin:存放平台及通信中间件可执行程序
[0057]conf:平台配置文件
[0058]data:平台计算数据目录
[0059]lib:平台库文件目录
[0060]log:平台运行日志文件目录
[0061]temp:平台测试目录
[0062]tools:平台工具文件目录
[0063]task:二阶段结果文件存储目录
[0064]result:临时结果文件存储目录
[0065]tools:并行计算平台控制脚本
[0066]senddata:模拟数据下发提交端存放目录
[0067]3、ssh 配置
[0068]该设置用于平台节点ndsa用户之间无需校验密码登录
[0069]第一步:
[0070]用ndsa用户登录调度和所有计算节点上执行以下命令:
[0071]rm - rf/home/ndsa/.ssh
[0072]ssh-keygen - t rsa(该命令提示输入时按回车执行即可)
[0073]第二步:
[0074]在调度节点上执行
[0075]cp/home/ndsa/.ssh/id_rsa.pub/home/ndsa/.ssh/authorized_keys
[0076]第三步:
[0077]在调度节点上执行拷贝命令
[0078]scp - rp/home/ndsa/.ssh/*ndsa@ 计算节点名 1:/home/ndsa/.ssh/
[0079]scp - rp/home/ndsa/.ssh/*ndsa@ 计算节点名 2:/home/ndsa/.ssh/
[0080]..........................................................(表示其他计算节点)
[0081]4、环境变量配置
[0082]编辑.bashrc 文件
[0083]$cd/home/ndsa/
[0084]$v1.bashrc
[0085]增加:
[0086]export LD_LIBRARY_PATH=/home/ndsa/lib:/home/ndsa/Iib64
[0087]执行命令
[0088]$source.bashrc (或重启系统)
[0089]编辑.bash_profile 文件[0090]$v1.bash_profile
[0091]增加:
[0092]PATH=$PATH:$HOME/bin:/sbin
[0093]export PATH
[0094]执行命令:
[0095]$source.bash_prof ile (或重启系统)
[0096]二、平台cpu核管理
[0097]经过上述步骤后,整个基于核管理的并行分布式计算平台基本搭建完成。平台启动后,首先加载相应配置文件读取必要配置信息,比如平台模式(在线或离线)、网卡信息、节点信息等,然后进入事件循环,平台每类节点功能紧凑而单一,本着模块化及面向对象设计思想,对节点功能说明如下:
[0098]1、网关节点(可配置):yjq在线触发节点,主要用于在线分布式平台计算任务下发以及一些第三方控制程序等。
[0099]2、数据节点:历史结果存放目录,以及最重要的数据库服务节点。
[0100]3、调度节点:是整个并行分布式计算平台的核心,起着任务调度及控制功能,结果回收、数据库操作、平台管理。
[0101]4、计算节点:负`责将用户提交的数据进行处理,并调用第三方计算程序参与计算,并将计算结果传送到调度节点。
[0102]并行分布式计算平台对于计算资源(cpu核数)的采集如图2所示:
[0103]首先由计算节点每隔20秒(可调)将本机资源,包括cpu核数、硬盘空间、内存大小等信息打包发送到调度服务器,然后调度节点收到该计算节点的资源信息包后,将CPU核数信息存储到一个全局结构体变量中,最后由调度节点DiStComp进程开启一定时器函数,定期检查所有计算节点上报资源信息情况,通过判断节点信息更新时间来判断计算节点资源上报信息是否超时,如果超时了,DistComp将该计算节点的cpu核数从集群可用的核数当中剔除,这样既可以有效维护cpu核数资源信息,也可以判断计算是否处于服务状态,大大加强了平台的稳定性和可维护性。
[0104]三、用户数据协议
[0105]对于客户端用户提交的离线一阶段计算任务数据除了必要的计算数据(conf、data、para等目录数据)外,还需要包括对任务详细划分的一份配置文件TaskList,用于说明任务的计算类别、超时时间、故障或断面号等信息,这样调度节点就能很清晰的存储和分配、下发计算任务,不至于产生混淆。
[0106]TaskList文件内容格式如下:
[0107]
#i十兑类# #超时时_ #计兑参数丨,’丨总
PSASP?ST.exe 1800 2
PSASP_ST.exe 1800 6
PSASP_ST.exe 1800 7
[0108]
【权利要求】
1.一种基于CPU核管理的分布式并行计算平台,其特征是,包括: 数据节点服务器:包括至少一台具有CPU多核能力的计算机,用于存放历史结果以及数据库服务节点; 调度节点服务器:包括至少一台具有cpu多核能力的计算机,用于计算任务的调度与管理; 计算节点服务器:包括至少一台具有CPU多核能力的计算机,用于将用户提交的数据进行处理,并调用第三方计算程序参与计算,所述第三方核心计算程序部署在计算节点上; 计算节点服务器将计算任务传送到调度节点服务器,调度节点服务器通过计算整个集群空闲资源CPU核数,进行计算任务的调度管理与数据的分布式并行计算,并将计算结果存储至数据节点服务器。
2.一种如权利要求1所述的基于CPU核管理的分布式并行计算平台,其特征是,所述计算机上安装Linux操作系统,并配置Linux的SSH服务器使各个计算机之间无密码登陆。
3.—种如权利要求1所述的基于CPU核管理的分布式并行计算方法,其特征是,包括: 搭建基于核管理的并行分布式计算平台,加载配置文件并读取配置信息; 并行分布式计算平台对整个集群空闲资源cpu核数进行采集统计; 并行分布式计算平台针对客户端用户提交的计算任务数据,以及包含任务计算类别、超时时间、计算参数信息的配置文件TaskList,实时更新集群空闲资源cpu核数,对计算任务进行并行处理。
4.如权利要求3所述的一种基于CPU核管理的分布式并行计算方法,其特征是,所述并行分布式计算平台对整个集群空闲资源cpu核数进行采集统计的具体方法为: 计算节点每隔设定时间将包括cpu核数、硬盘空间、内存大小信息的本机资源打包发送至调度节点服务器; 调度节点服务器收到计算节点的资源信息包后,将cpu核数信息存储到一个全局结构体变量中; 由调度节点DistComp进程开启定时器函数,所述定时器函数定期检查所有计算节点上报资源信息情况,通过判断节点信息更新时间来判断计算节点资源上报信息是否超时,如果超时,DistComp将该计算节点的cpu核数从集群可用的cpu核数当中剔除,并存储当前集群可用的cpu核数。
5.如权利要求3所述的一种基于CPU核管理的分布式并行计算方法,其特征是,所述并行分布式计算平台对计算任务进行并行处理的具体流程为: 调度节点初始化时即开启一个任务处理线程和一个消息接收线程,用于分别不断的处理任务和从别的节点发回来的消息; 用户客户端下发一个计算任务请求后,调度节点处理所述任务请求中的必要信息后,将所述计算任务请求存储为新任务,并将新任务发送至任务待处理队列当中; 任务处理线程发现有新任务到达时,首先判断是否当前集群有空闲核可以利用,如果没有,则回到线程继续等待;如果有可以利用的空闲核资源,则将新任务加上任务名后连同数据一起打包到计算节点请求计算,更新平台总空闲核数为当前平台总空闲核数减去该任务占用核数;新建一个任务定时器函数用于检查该任务是否超时,当调度节点收到该任务完成消息或者该任务发生计算超时后,调度节点更新平台总空闲核数为当前平台总空闲核数加上该任务占用核数,并将任务写入数据`库结果表。
【文档编号】G06F9/38GK103870338SQ201410079473
【公开日】2014年6月18日 申请日期:2014年3月5日 优先权日:2014年3月5日
【发明者】杨冬, 何春江, 李文博, 周智强, 张丹丹, 张松树, 麻常辉, 陈勇, 裘微江, 刘铭, 臧主峰, 李星, 陈继林, 郭中华, 康建东 申请人:国家电网公司, 国网山东省电力公司电力科学研究院, 中国电力科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1