首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 系统软件 / 操作系统 / 内核 / 基于Linux并行计算平台的动态负载均衡方法

基于Linux并行计算平台的动态负载均衡方法

阅读:460发布:2024-01-13

专利汇可以提供基于Linux并行计算平台的动态负载均衡方法专利检索,专利查询,专利分析的服务。并且一种基于Linux的并行计算平台的动态负载均衡方法,属并行计算领域。其 硬件 架构包括多台参与计算的计算机,每台计算机上安装Linux 操作系统 和MPI 软件 开发包。在并行计算过程中,将总的计算任务划分为执行时间相等的多个阶段执行。使用系统中的例行工作调度技术,在每个时间阶段的并行计算开始前,先读取各个 节点 当前的资源利用率,并结合各个节点的计算性能及计算复杂度,对节点的计算任务进行动态分配,保证每个阶段各节点的计算时间基本相等,减少系统同步等待的延迟。通过这种动态调整策略,可实现以较高的资源利用率完成总的计算任务,突破低配置计算节点造成的效率 瓶颈 ,在并行计算的 基础 上进一步节省计算时间,提高计算效率。,下面是基于Linux并行计算平台的动态负载均衡方法专利的具体信息内容。

1.一种基于Linux的并行计算平台的动态负载均衡方法,其硬件架构包括多台参与计算的计算机,每台计算机上安装Linux操作系统和相关的MPICH软件,将每根网线的一端插入计算机的网口,另一端接入同一个局域网的路由器上,并配置Linux的SSH服务器使各个计算机之间实现无密码登入,选择参与计算的一台计算机为主控计算机,称为主节点,负责数据和任务的收集与分发、计算结果的显示这些辅助工作,同时它也作为一个计算节点参与计算,其余的计算机均只负责计算功能,称为从节点;从而完成了并行计算的硬件连接和软件的配置,并行计算平台构建完成后,再设计并行算法,以硬件平台以及并行算法为基础,通过编写脚本文件,并结合Linux系统中的例行性工作调度技术,实现并行计算的动态负载均衡,该方法步骤如下:
1)依次在各计算节点上对将要执行的并行计算程序进行编译;所有节点参与计算的程序均存放在相同的路径下;
2)主节点通过SSH服务器,实现远程登录并控制各个节点,执行保存在各节点统一路径下的脚本文件,该脚本文件用于计算各个节点的CPU利用率,并使用Linux系统中的数据处理指令awk以及数据流重定向技术将计算得到的CPU利用率保存到指定路径的文件中;
3)主节点通过执行远程复制指令scp,将各节点记录CPU利用率的文件远程复制到主节点的指定路径;
4)主节点使用指令awk指令读取各节点的CPU利用率,设定每个阶段并行计算时间为TD,根据并行计算时间TD、算法复杂度、每个节点处理器性能、内核数目及CPU利用率,分别计算每个节点在一个TD时间段内能够完成的计算数据量,根据计算的值为每个节点分配TD内的数据量,由此保证各节点都能在TD时间内完成该阶段的计算任务,将分配好的数据依次保存到指定路径文件中;
5)使用远程复制指令scp,将分配好的数据文件依次下发到各从节点;
6)主节点执行程序运行指令,使各节点同时开始计算时间为TD的并行计算任务;
7)TD时间的并行计算任务完成后,各节点将本阶段运行结果保存;
8)判断总的计算是否完成,如未完成,返回步骤2)继续下一次动态任务分配;如完成,执行步骤9);
9)主节点将保存在各个计算节点的数据通过scp指令读回主机,输出最终结果,退出并行计算。

说明书全文

基于Linux并行计算平台的动态负载均衡方法

技术领域

[0001] 本发明涉及一种基于Linux并行计算平台的动态负载均衡方法,属于并行计算领域。

背景技术

[0002] 并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程。并行计算的主要目的是快速解决大型且复杂的计算问题。为了节约成本,实现对现有资源的充分利用,可以使用多台普通配置的个人计算机作为计算节点,多个节点之间通过网络互连,SSH远程登录以及MPI并行库函数构建并行计算平台。现阶段,在使用此类并行计算平台进行并行计算时,一种广泛运用的并行策略是将计算的参数均匀的分配到每个参与计算的计算机上,并根据MPI软件包提供的通信接口函数在程序运行的适当时间进行必要参数的通信与交流,最终完成并行计算任务。与传统的串行计算方式相比,该并行计算能够对大规模计算问题快速求解,极大降低了运算时间。但是这种并行策略存在以下问题:(1)这种并行方式不考虑各节点计算性能的差异,对计算任务平均分配,因此运行时,配置低的计算节点花费时间最长,成为限制整个并行计算平台计算效率的瓶颈;(2)当执行大规模,耗时长的计算任务时,计算过程中各个节点可能会因为突发性的访问或其他应用程序占用计算资源等情况,导致该节点计算时间大大延长。但是其他计算节点已经完成了本阶段的计算任务,处于空闲等待阶段,因此导致计算资源利用率大大降低。
[0003] 在由山东大学信息科学与工程学院的徐昆,江铭炎发表的“Parallel Artificial Bee Colony Algorithm for Traveling Salesman Problem”(“并行人工蜂群算法求解旅行商问题”)论文中,就是使用了上述普通的并行计算策略,不考虑各节点的具体配置及实际拥有的计算能,使用并行人工蜂群算法,将计算任务平均的分配给各个计算节。虽然与传统的串行算法相比,该并行策略大大提高了运算效率,节省了计算时间,但是计算能力最差的节点成为限制整个并行计算平台计算效率的瓶颈,导致整个平台资源利用率低。

发明内容

[0004] 为了克服现有技术缺陷和不足,以解决普通并行计算在执行大规模,超大规模计算任务时,出现的系统资源利用率低,任务分配不均衡,计算效率低的问题,本发明提出了一种基于Linux并行计算平台的动态负载均衡方法。
[0005] 本发明的技术方案是采用如下方式来实现的:
[0006] 一种基于Linux的并行计算平台的动态负载均衡方法,其硬件架构包括多台参与计算的计算机,每台计算机上安装Linux操作系统和相关的MPICH软件,将每根网线的一端插入计算机的网口,另一端接入同一个局域网的路由器上,并配置Linux的SSH服务器使各个计算机之间实现无密码登入,选择参与计算的一台计算机为主控计算机,称为主节点,负责数据和任务的收集与分发、计算结果的显示这些辅助工作,同时它也作为一个计算节点参与计算,其余的计算机均只负责计算功能,称为从节点;从而完成了并行计算的硬件连接和软件的配置,并行计算平台构建完成后,再设计并行算法,以硬件平台以及并行算法为基础,通过编写脚本文件,并结合Linux系统中的例行性工作调度技术,实现并行计算的动态负载均衡,该方法步骤如下:
[0007] 1.依次在各计算节点上对将要执行的并行计算程序进行编译;所有节点参与计算的程序均存放在相同的路径下;
[0008] 2.主节点通过SSH服务器,实现远程登录并控制各个节点,执行保存在各节点统一路径下的脚本文件,该脚本文件用于计算各个节点的CPU利用率,并使用Linux系统中的数据处理指令awk以及数据流重定向技术将计算得到的CPU利用率保存到指定路径的文件中;
[0009] 3.主节点通过执行远程复制指令scp,将各节点记录CPU利用率的文件远程复制到主节点的指定路径;
[0010] 4.主节点使用指令awk指令读取各节点的CPU利用率,设定每个阶段并行计算时间为TD,根据并行计算时间TD、算法复杂度、每个节点处理器性能、内核数目及CPU利用率,分别计算每个节点在一个TD时间段内能够完成的计算数据量,根据计算的值为每个节点分配TD内的数据量,由此保证各节点都能在TD时间内完成该阶段的计算任务,将分配好的数据依次保存到指定路径文件中;
[0011] 5.使用远程复制指令scp,将分配好的数据文件依次下发到各从节点;
[0012] 6.主节点执行程序运行指令,使各节点同时开始计算时间为TD的并行计算任务;
[0013] 7.TD时间的并行计算任务完成后,各节点将本阶段运行结果保存;
[0014] 8.判断总的计算是否完成,如未完成,返回步骤2继续下一次动态任务分配;如完成,执行步骤9;
[0015] 9.主节点将保存在各个计算节点的数据通过scp指令读回主机,输出最终结果,退出并行计算。
[0016] 本发明方法通过编写两个脚本文件来实现,一个是步骤2中用于读取并计算各节点CPU利用率的脚本文件A,该脚本文件编辑完成后保存在各个节点统一路径下;另一个脚本文件B在主节点上编辑运行,用于实现步骤2-6;最后通过例行性工作调度,实现每隔TD时间执行一次脚本文件B,从而达到动态负载均衡的目的。通过这种动态任务分配的方式实现对各节点计算资源的充分利用,打破低配节点性能瓶颈,整体提高并行计算效率,在该并行策略下进一步提高整个平台的计算资源的利用率,提高计算效率,缩短运算时间。
[0017] 下面首先对本方法实现过程中使用到的Linux系统的基本技术、具体指令进行详细说明,然后再给出脚本文件A,B的具体编辑:
[0018] shell是操作系统提供的一种在命令行界面下用户与系统交互的接口,用户通过在shell中调用命令来实现对系统的操作。程序化脚本文件(shell script)则是利用shell的功能所编写的一个“程序”,将多条shell命令写在script脚本文件中,通过执行一个脚本文件的方式来一次执行多个命令,完成复杂的操作。简单来说,shell script可以看做批处理文件,不需要编译即可执行。下面对本发明方法中用到的shell命令进行详细介绍。
[0019] 1、查看系统cpu运行状态
[0020] 使用指令:cat/proc/stat
[0021] CPU利用率的计算方法:
[0022] 由于该命令给出的数据都是自系统启动到当前时刻的累计时间,那么CPU利用率的计算方法为取两个采样点,计算其差值来得到CPU利用率。首先计算CPU时间:
[0023] CPU时间=user+system+nice+idle+iowait+irq+softirq
[0024] 式中各字段的具体含义如下:
[0025] user:从系统启动开始累计到当前时刻,用户态的CPU时间;
[0026] nice:从系统启动开始累计到当前时刻,nice值为负的进程所占用的CPU时间;
[0027] system:从系统启动开始累计到当前时刻的核心时间;
[0028] idle:从系统启动开始累计到当前时刻,除硬盘IO等待时间以外其它等待时间;
[0029] iowait:从系统启动开始累计到当前时刻,硬盘IO等待时间;
[0030] irq:从系统启动开始累计到当前时刻,硬中断时间;
[0031] softirq从系统启动开始累计到当前时刻,软中断时间。
[0032] 根据上述公式得到总的CPU时间,即完成当前所有进程所花费的时间;CPU利用率计算公式如下:
[0033] CPU利用率=1-(idle2-idle1)/(cputime2-cputime1)
[0034] 该公式根据前后两个时间采样点的除IO等待外的其他等待时间之差,该差值反映了在本段时间内的CPU空闲时间;用该差值除以总CPU时间之差来计算这段时间内的CPU空闲率,再用1减去空闲率得到本时间段内的CPU利用率。
[0035] 2、数据流重定向技术
[0036] 数据流重定向是指将某个命令执行后应该要输出到屏幕上的数据传输到指定的文件,包括数据输入和输出,此处仅对本方法使用的数据输出进行详细说明。指令格式:
[0037] command[1>/1>>/2>/2>>]filename
[0038] 一个命令执行后,输出的信息分为标准输出(standard output)和标准错误输出(standard error output)两类。标准输出是指命令执行后所回传的正确信息,代码为1,而标准错误输出可理解为命令执行失败后所回传的错误信息,代码为2。输出使用“>”或“>>”符号,符号后面为数据输出的指定文件,表示将输出数据保存在该指定文件中,如果该文件不存在,则执行该命令时系统自动创建,如果是一个已经存在的文件,使用“>”进行数据重定向输出时,系统会先将该文件内容清空,然后再将数据写入;而使用“>>”则会以数据累加方式将数据写入到该文件的最下方。
[0039] 3、管道命令(pipe)
[0040] 指令格式:
[0041] command1|command2
[0042] 管道命令使用符号“|”对前后的命令进行界定。用于将前一个命令的输出数据作为下一个指令的标准输入数据,以便对获取的数据进行处理。管道命令仅会处理标准输出,对于错误输出予以忽略;而且管道命令必须能够接收来自前一个命令的数据成为标准输入继续处理。
[0043] 4、数据处理工具awk
[0044] awk是一种文件格式化的数据处理工具。该指令处理输入数据时以行为单位,并将一行数据分成多个“字段”进行处理。
[0045] 指令格式:
[0046] awk'条件类型1{动作1}条件类型2{动作2}...'filename
[0047] 在上述命令中,awk后面接两个单引号并加上大括号来设置想要对数据进行的处理动作。下面分别从处理数据来源、处理动作、条件类型三个方面来对awk指令进行详细说明。
[0048] 1)数据来源
[0049] awk可以以指令后面接的文件作为数据来源,也可以通过管道命令(pipe)将前一个命令的标准输出作为输入数据进行处理。
[0050] 读入数据后,awk指令根据内置变量明确处理数据的行数和列数,三个内置变量如下:
[0051] NF:每一行拥有的字段总数;
[0052] NR:目前awk所处理的是第几行数据;
[0053] FS:目前的分隔字符,默认是空格键。
[0054] 2)条件类型
[0055] 基本的awk指令涉及到的条件类型多为逻辑运算。通过判断是否满足某一条件来确定是否执行后续动作。
[0056] 3)处理动作
[0057] awk是以行为处理单位,以字段为最小的处理单位,默认的字段分隔符为空格键或者[tab]键。awk处理数据时,为每一行的每一个字段都分配变量名称,从第一列开始依次为[0058] $1,$2...。$0代表一整行数据。
[0059] awk的数据处理流程为:
[0060] a.读入第一行,并将第一行的数据填入$0,$1,$2等变量中;
[0061] b.依据条件类型的限制,判断是否需要进行后面大括号中的处理动作;
[0062] c.依次判断单引号内所有条件类型,并执行满足条件的动作;
[0063] d.读入下一行数据,重复上述a-c步骤,直到所有数据处理完毕。
[0064] 5、远程命令执行
[0065] 在本方法中,以SSH远程登入为基础,主节点远程无密码登录到从节点上,并执行保存在从节点中的脚本文件,完成对从节点资源利用率的动态读取与计算,并通过远程复制指令scp将计算得到的数据复制到主节点中。
[0066] 相应的命令格式:
[0067] ssh用户名@从节点机器名待执行脚本文件绝对路径
[0068] scp用户名@从节点机器名:数据保存文件路径主节点数据接收文件路径[0069] 将上面两条指令写入脚本文件中,只有第一条指令是远程登录到从节点执行,其后续的指令则都是在本地节点(主节点)上执行。
[0070] 第一条ssh指令实现主节点无密码远程登录到从节点上,根据给出的绝对路径查找并执行目标脚本文件;第二条scp是基于ssh的远程复制命令,可以实现本地文件复制到远程机器以及从远程机器上复制文件到本地机器的双向复制。此处给出的命令为从远程从节点上将其文件复制到本地主节点的指定文件中。
[0071] 6、例行性工作调度
[0072] 为了保证系统的正常运行,某些在后台的工作必须要定时进行,这种系统中每隔一定的周期就要执行的工作称为例行性工作。例行性工作调度是由cron系统服务来控制的。以上是系统服务默认启动的例行性工作,除此之外,Linux系统还为用户提供crontab命令实现用户控制的例行性工作调度。
[0073] 用户使用crontab这个命令新建例行性工作调度。具体创建方式如下:
[0074] a.将所需执行的例行性工作的命令写入script脚本文件并保存;
[0075] b.执行crontab-e命令进入例行性工作编辑页面;
[0076] c.编辑例行性工作调度指令:
[0077] */TD****/home/[user]/dynamic_computing.sh
[0078] 该指令分为六个字段,前五个字段均用于设置时间,从左向右代表的意义以及取值氛围分别为:分钟(0-59)、小时(0-23)、日期(1-31),月份(1-12),周(0-7),用五个时间段来设置例行性工作的循环周期。第六个字段为该例行性工作所对应的命令行脚本文件,该字段给出该脚本文件的绝对路径,以便查找并执行。
[0079] 以上述命令为例,该命令指的是每隔TD分钟执行一次保存在/home/[user]/路径下的dynamic_computing脚本文件,“*”表示任何时刻,表示本时间段没有限制。
[0080] 以上对本发明方法中用到的指令和技术进行了详细介绍,下面对脚本文件A,脚本文件B以及例行性工作调度脚本文件B的具体实现进行详述:
[0081] 脚本文件A:
[0082] 用于读取计算机当前运行数据,并计算CPU利用率,并通过数据流重定向将计算数据存入指定路径文件中。该脚本文件具体实现方法如下:
[0083] 1)计算当前时刻的CPU时间及CPU空闲时间:
[0084] 读取当前时刻本节点CPU使用状态,结合管道命令将表征CPU使用状态的数据作为awk指令的输入数据,根据CPU时间的计算公式,利用awk指令提取相应的字段信息保存到变量CPUP_1中,指令如下:
[0085] CPUP_1=$(cat/proc/stat|awk‘{if(NR==1)\
[0086] print$2,”\t”,$3,”\t”,$4,”\t”,$5,”\t”,$6,”\t”,$7,”\t”,$8}’)[0087] 其中awk指令为读取第一行数据中的第二到第八个字段的数据信息,依次对应计算CPU时间的每个变量值,”\Enter”为换行符,“\t”为print命令中的[tab]键;
[0088] IDLE_1=$(echo$CPUP_1|awk‘{print$4}’)
[0089] 使用awk指令读取CPUP_1中的第四个字段:空闲等待时间,并将该值赋于变量IDLE_1;
[0090] Total_1=$(echo$CPUP_1|awk‘{print$1+$2+$3+$4+$5+$6+$7}’)[0091] 计算当前时刻的CPU时间Total_1;
[0092] 2)计算5秒钟之后的CPU时间及CPU空闲时间,指令如下:
[0093] sleep 5
[0094] 等待5秒钟;
[0095] CPUP_2=$(cat/proc/stat|awk‘{if(NR==1)\
[0096] print$2,”\t”,$3,”\t”,$4,”\t”,$5,”\t”,$6,”\t”,$7,”\t”,$8}’)[0097] IDLE_2=$(echo$CPUP_2|awk‘{print$4}’)
[0098] Total_2=$(echo$CPUP_2|awk‘{print$1+$2+$3+$4+$5+$6+$7}’)[0099] 当前时刻的CPU空闲时间IDLE_2及CPU时间Total_2;
[0100] 3)计算本节点CPU利用率:
[0101] 根据公式:CPU利用率=1-(idle2-idle1)/(cputime2-cputime1)计算当前CPU利用率
[0102] IDLE=`expr$IDLE_2-$IDLE_1`
[0103] Total=`expr$CPUP_2-$CPUP_1`
[0104] CPU_Rate=`expr 1-$IDLE-$Total`
[0105] 4)将CPU利用率保存到指定文件:
[0106] 将CPU利用率数据流重定向输出到指定文件/home/[user]/[hostname]_used_source保存,user代表用户名,hostname代表主机名,具体名称需自行定义。
[0107] echo$CPU_Rate>>/home/[user]/[hostname]_used_source
[0108] 脚本文件B:
[0109] 实现步骤2-6,该脚本文件具体实现如下:
[0110] 1)步骤2-3:数据读取阶段
[0111] 指令如下:
[0112] for(i=1;i<=N;i=i+1)N表示参与并行计算的节点数量
[0113] do
[0114] ssh user@[hostname]${i}home/[user]/A.sh
[0115] 主节点依次远程登录各节点,执行脚本文件A.sh,实现对所有节点CPU利用率的计算
[0116] scp user@[hostname]${i}:/home/[user]/[hostname]_used_source\[0117] /home/[user]/[hostname]${i}_used_source
[0118] 将各从节点的CPU利用率文件远程复制到主节点,'\'为换行符
[0119] eval[hostname]${i}=$(cat/home/[user]/[hostname]${i}_usedsource|\[0120] awk‘NR==1{print$1}’)
[0121] 使用awk命令在远程复制过来的文件中提取从节点的CPU利用率,并将该值赋于变量[hostname]${i},由于该变量使用变量i命名,故使用eval指令,eval命令将首先扫描命令行进行所有的替换,然后再执行命令
[0122] eval export[hostname]${i}
[0123] 将记录每个节点CPU利用率的变量设置为全局变量,便于后面程序调用done[0124] 2)步骤4:数据分配阶段
[0125] a.根据计算机的配置信息获取各个节点的CPU主频m_freq,内核数目m_core,CPU利用率CPU_Rate以及并行算法的时间复杂度O(nx),通过
[0126] capacity=m_freq*m_core*(1-CPU_Rate)*TD*90%
[0127] 计算各个节点i在TD时间内具有的计算能力,选取剩余计算量的90%是为了给各个节点留出足够的空间应对突发的事件。参与计算的参数的变量统一量纲。
[0128] b.根据算法运行的时间复杂度,得到计算一组数据所需要的运算次数CN;
[0129] c.通过data=capacity/CN计算得到各个节点i在TD时间内可以计算的数据量[0130] D=[d1,d2,...,dN]。
[0131] d.根据D=[d1,d2,...,dN]依次对各个节点进行计算数据的分配,将每个节点的数据分别保存在对应的/home/[user]/[hostname]${i}文件中。
[0132] 3)步骤5:数据文件下发
[0133] 使用远程复制指令,将分配好的数据文件依次下发到各计算节点,假设并行计算平台中共有N个节点,指令编辑如下:
[0134] for((i=1;i<=N;i=i+1))
[0135] do
[0136] scp/home/[user]/[hostname]${i}user@[hostname]${i}:/home/[user]/new_task
[0137] 将分配的新的计算数据文件远程复制到各个对应的节点
[0138] done
[0139] 4)步骤6:开始并行计算
[0140] mpirun-np app
[0141] 使用MPI指令mpirun在所有np个节点上同时执行主程序app,开始并行计算。为了程序的成功执行,各节点上的app程序存放路径需保证完全一致;各节点的程序在整个并行计算过程开始前已经完成了编译工作;在接下来动态任务分配过程中,动态任务的分配只是体现在各节点分配的数据上,各节点的程序并不需改变,因此无需在各个阶段任务开始之前进行再次编译。
[0142] 脚本文件B的例行性工作调度
[0143] 以上完成了脚本文件B的编辑。将脚本文件B设置为例行性工作,通过系统后台定期循环执行该脚本文件,实现本专利提出的动态负载均衡策略,该策略保证该并行计算平台以较高的资源利用率,高效完成并行计算任务。
[0144] 时间间隔设定为TD,即系统每隔时间TD读取并计算各节点的资源利用率,下一时间段TD内各节点计算动态分配的数据,指令编辑如下:
[0145] crontab-e
[0146] 执行该命令进入例行性工作编辑页面
[0147] */TD****/home/[user]/dynamic_computing.sh
[0148] 每隔TD分钟,系统后台自动执行一次该脚本文件,进行动态任务分配。
[0149] 本发明方法的有益效果是在并行计算的基础上进一步节省计算时间,提高计算效率。附图说明
[0150] 图1为本发明方法的各步骤示意框图

具体实施方式

[0151] 下面结合附图和实施例对本发明作进一步说明,但不限于此。
[0152] 实施例:
[0153] 一种基于Linux的并行计算平台的动态负载均衡方法,其硬件架构包括多台参与计算的计算机,每台计算机上安装Linux操作系统和相关的MPICH软件,将每根网线的一端插入计算机的网口,另一端接入同一个局域网的路由器上,并配置Linux的SSH服务器使各个计算机之间实现无密码登入,选择参与计算的一台计算机为主控计算机,称为主节点,负责数据和任务的收集与分发、计算结果的显示这些辅助工作,同时它也作为一个计算节点参与计算,其余的计算机均只负责计算功能,称为从节点;从而完成了并行计算的硬件连接和软件的配置,并行计算平台构建完成后,再设计并行算法,以硬件平台以及并行算法为基础,通过编写脚本文件,并结合Linux系统中的例行性工作调度技术,实现并行计算的动态负载均衡,该方法步骤如下:
[0154] 1.依次在各计算节点上对将要执行的并行计算程序进行编译;所有节点参与计算的程序均存放在相同的路径下;
[0155] 2.主节点通过SSH服务器,实现远程登录并控制各个节点,执行保存在各节点统一路径下的脚本文件,该脚本文件用于计算各个节点的CPU利用率,并使用Linux系统中的数据处理指令awk以及数据流重定向技术将计算得到的CPU利用率保存到指定路径的文件中;
[0156] 3.主节点通过执行远程复制指令scp,将各节点记录CPU利用率的文件远程复制到主节点的指定路径;
[0157] 4.主节点使用指令awk指令读取各节点的CPU利用率,设定每个阶段并行计算时间为TD,根据并行计算时间TD、算法复杂度、每个节点处理器性能、内核数目及CPU利用率,分别计算每个节点在一个TD时间段内能够完成的计算数据量,根据计算的值为每个节点分配TD内的数据量,由此保证各节点都能在TD时间内完成该阶段的计算任务,将分配好的数据依次保存到指定路径文件中;
[0158] 5.使用远程复制指令scp,将分配好的数据文件依次下发到各从节点;
[0159] 6.主节点执行程序运行指令,使各节点同时开始计算时间为TD的并行计算任务;
[0160] 7.TD时间的并行计算任务完成后,各节点将本阶段运行结果保存;
[0161] 8.判断总的计算是否完成,如未完成,返回步骤2继续下一次动态任务分配;如完成,执行步骤9;
[0162] 9.主节点将保存在各个计算节点的数据通过scp指令读回主机,输出最终结果,退出并行计算。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈