一种大规模行为模拟应用中的负载均衡方法

文档序号:7769348阅读:400来源:国知局
一种大规模行为模拟应用中的负载均衡方法
【专利摘要】本发明公开了一种大规模行为模拟应用中的负载均衡方法,包括以下步骤:建立两个哈希表,其中一个用于存放块中的所有模拟对象,另一个用于存放域中的所有块信息,并对该哈希表进行初始化,重复增量计算各域的负载,直到大规模行为模拟应用结束为止,以生成增量计算负载后的域D,对域D进行划分以生成域集合Dset,其中划分后的域集合Dset中每一个域D2的负载均为T1,且其中的块都是相互连接的,将域D和其在划分后的域集合Dset中的相邻域进行合并,其中合并后的域D的负载为T1,且域D中的块都是相互连接的,执行各数据处理器之间的域调度,实现数据处理器的负载均衡。本发明能够解决大规模行为模拟应用中现有方法难以有效消除的负载不均衡问题。
【专利说明】一种大规模行为模拟应用中的负载均衡方法
【技术领域】
[0001]本发明属于科学计算与模拟【技术领域】,更具体地,涉及一种大规模行为模拟应用中的负载均衡方法。
【背景技术】
[0002]大规模行为模拟应用用于模拟现实世界中大规模自治个体的群体行为,更好的学习和理解现实世界中的现象。这样的应用遍布于物理,生物和人类学等领域,例如:鱼群模拟,天体模拟和交通模拟等。比如在交通方面,可以在一个交通道路建设之前,利用交通模拟程序,提前预测道路的拥堵情况,减少道路实现以后的交通拥堵状况。这些应用以固定的时间间隔运行。在每一固定时间间隔时,模拟对象收集周边模拟对象的信息,处理和更新其状态信息用于下一时间间隔的运行。为了在集群系统上并行的运行这些大规模行为模拟程序,数据的划分是以域的方式进行了。也就是说,整个模拟空间被划分为多个域,而一个域内的所有模拟对象被分配到一起处理。这样的话就能提高数据局部性,加快程序的完成。
[0003]然而由于大规模行为模拟中模拟对象会群体性进行位置迁移,导致上述所说的某些域中的模拟对象数目是其余域中模拟对象数目的数倍甚至数十倍,导致严重的负载不均衡。并且每个域中的模拟对象数目随着时间也在发生变化,使得现在方法很难有效的解决此负载不均衡问题。

【发明内容】

[0004]针对现有技术的以上缺陷或改进需求,本发明提供了一种大规模行为模拟应用中的负载均衡方法,其目的在于解决大规模行为模拟应用中现有方法难以有效消除的负载不均衡的技术问题。
[0005]为实现上述目的,按照本发明的一个方面,提供了一种大规模行为模拟应用中的负载均衡方法,是应用在一种负载均衡器中,该负载均衡器用于迁移其所在数据处理器中数据管理器的数据,以实现数据处理器之间的负载均衡,该方法包括以下步骤:
[0006](I)建立两个哈希表,其中一个用于存放块中的所有模拟对象,另一个用于存放域中的所有块信息,并对该哈希表进行初始化;
[0007](2)重复增量计算各域的负载,直到大规模行为模拟应用结束为止,以生成增量计算负载后的域D ;本步骤包括以下子步骤:
[0008](2-1)判断是否所有新一轮被处理完的模拟对象都已经被处理过,如果是则进入步骤(2-8),否则进入步骤(2-2);
[0009](2-2)获取各域中被处理后的模拟对象O的新位置信息(0X,Oy, Oz);
[0010](2-3)根据模拟对象的新位置信息并按照以下公式计算此模拟对象所在块的编号K -
lvnew.
【权利要求】
1.一种大规模行为模拟应用中的负载均衡方法,是应用在一种负载均衡器中,该负载均衡器用于迁移其所在数据处理器中数据管理器的数据,以实现数据处理器之间的负载均衡,其特征在于,所述方法包括以下步骤: (1)建立两个哈希表,其中一个用于存放块中的所有模拟对象,另一个用于存放域中的所有块信息,并对该哈希表进行初始化; (2)重复增量计算各域的负载,直到大规模行为模拟应用结束为止,以生成增量计算负载后的域D ;本步骤包括以下子步骤: (2-1)判断是否所有新一轮被处理完的模拟对象都已经被处理过,如果是则进入步骤(2-8),否则进入步骤(2-2); (2-2)获取各域中被处理后的模拟对象O的新位置信息(Ox,Oy, Oz); (2-3)根据模拟对象的新位置信息并按照以下公式计算此模拟对象所在块的编号
2.根据权利要求1所述的负载均衡方法,其特征在于,步骤(1)包括以下子步骤: (1-1)建立一个块表和一个域表,其中块表用于存放块中的所有模拟对象,每一表项对应一个数据组,且包括四个列项:第一个列项用于存储块的键值,第二个列项为一个链表,用于存储块的相邻块的键值,第 三个列项用于存储块中的模拟对象数,第四个列项为一个链表,用于存储块中的所有模拟对象信息,域表用于存放域中的所有块信息,每一表项也对应一个数据组,并包括四个列项:第一个列项用于存储域的键值,第二个列项用于存储域的负载,第三个列项用于存储域的相邻域信息,第四个列项为一个链表,用于存储域中包含的所有块的键值; (1-2)将大规模行为模拟应用的整个模拟空间划分为固定大小的块,将所有块的信息填写入块表中,并将所有块平均分配给多个域; (1-3)初始化所有域的负载: (1-4)通知任务执行器开始大规模行为模拟应用的执行。
3.根据权利要求2所述的负载均衡方法,其特征在于,步骤(1-3)是采用以下公式:

4.根据权利要求3所述的负载均衡方法,其特征在于,步骤(2-7)是采用以下公式:
5.根据权利要求1所述的负载均衡方法,其特征在于,步骤(4)包括以下子步骤: (4-1)获取域D的第一个相邻域Dl ; (4-2)判断域Dl与域D是否在同一个数据处理器,并且它们的负载之和小于阈值Tl,如果是,则进入步骤(4-3),否则进入步骤(4-4); (4-3)将域Dl合并到域D中,并更新域D的负载,然后进入步骤(4-4); (4-4)获取D的下一个相邻域Dl ; (4-5)判断Dl是否为空,如果是,则返回步骤(2-8),否则进入步骤(4-2)。
6.根据权利要求1所述的负载均衡方法,其特征在于,步骤(5)包括以下子步骤: (5-1)判断目前的数据处理器的负载是否超过阈值Tt,如果是,进入步骤(5-2),否则进入步骤(6); (5-2)获取目前数据处理器的一个域D ; (5-3)获取与域D相邻的所有域所在的数据处理器集合W ; (5-4)取出W中负载最小的数据处理器wl ; (5-5)判断将域D迁移到数据处理器wl后的负载是否小于Tt,如果是,则进入步骤(5-6),否则进入步骤(5-7); (5-6)将域D迁移到数据处理器wl上,然后进入步骤(5-1); (5-7)获取所有数据处理器上负载最小的数据处理器WL,将域D迁移到该数据处理器WL上,并进入步骤(5-1)。
【文档编号】H04L12/803GK103491018SQ201310398936
【公开日】2014年1月1日 申请日期:2013年9月4日 优先权日:2013年9月4日
【发明者】廖小飞, 金海 , 张宇 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1