System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及电力系统仿真,尤其涉及一种基于分组排序的仿真计算加速方法和相关装置。
技术介绍
1、电力系统仿真计算依靠计算硬件系统的强大算力以期望加速求解过程,实现非实时仿真计算甚至实时仿真计算。由于计算硬件系统有充足的计算资源和存储资源,较以往多采用的单一计算机计算有着明显的优势。但随着区域电网的互联,电力系统规模不断扩大,加之大规模新能源等快速响应电力电子设备的广泛使用,使得电力系统仿真计算的规模和运算复杂程度日益复杂,计算过程中各运算子单元间的数据交互愈发频繁,如何合理高效利用计算硬件系统进行资源加速计算,是亟待研究的问题。
2、现有的电力系统电磁暂态仿真计算过程并没有充分考虑多并行计算单元的资源分配和顺序安排对最终计算时间的影响,难以实现对计算硬件系统的合理利用,难以提高计算效率。
技术实现思路
1、本专利技术提供了一种基于分组排序的仿真计算加速方法和相关装置,用于解决现有的电力系统电磁暂态仿真计算过程没有充分考虑多并行计算单元的资源分配和顺序安排对最终计算时间的影响,难以实现对计算硬件系统的合理利用,难以提高计算效率的技术问题。
2、有鉴于此,本专利技术第一方面提供了一种基于分组排序的仿真计算加速方法,包括以下步骤:
3、s1、获取仿真所分配的并行计算单元和控制计算块;
4、s2、根据每个控制计算块的输入数量和输出数量,对所有控制计算块进行分组,得到若干个计算组;
5、s3、根据每个计算组的输入数量大小,将每个计
6、可选地,步骤s2具体包括:
7、s21、在未归入计算组的控制计算块中,判断是否存在没有输入的控制计算块,若是,则找到1个没有输入的控制计算块,跳转至步骤s22,若否,则判断未归入计算组的控制计算块数量是否大于0,若未归入计算组的控制计算块数量大于0,则在未归入计算组的控制计算块中选取输入数量最少的一个控制计算块,跳转至步骤s22,若未归入计算组的控制计算块数量为0,则跳转至步骤s24;
8、s22、判断当前选择的控制计算块的输出数量是否为1,若是,则跳转至步骤s23,否则,将当前选择的控制计算块加入当前计算组,返回步骤s21;
9、s23、将当前选择的控制计算块加入当前计算组,并以当前选择的控制计算块所输出的控制计算块为当前选择的控制计算块,返回步骤s22;
10、s24、分组结束,得到若干个计算组。
11、可选地,步骤s3具体包括:
12、s31、将所有计算组的编号i设置为0,将每个计算组的输入数量配置为每个计算组的当前输入数量,跳转至步骤s32;
13、s32、在当前编号为0的计算组中选取1个当前输入数量最小的计算组,将选取的计算组的编号i配置为1,令编号i为1的计算组的当前输入数量为0,获取编号i为1的计算组的所有输出对应的计算组,将输出对应的计算组的当前输入数量减1,跳转至步骤s33;
14、s33、将编号i为1的计算组放入当前并行计算单元,跳转至步骤s34;
15、s34、在编号i为1的计算组的所有输出对应的计算组中判断是否存在当前输入数量为1的计算组,若是,则将i自增1,将找到的当前输入数量为1的计算组命名为计算组i,并令计算组i所有输出对应的计算组的当前输入数量减1,跳转至步骤s35,若否,则判断所有计算组是否已经全部放入并行计算单元,若未全部放入,则在当前所有编号为0的计算组中找到一个当前输入数量最小的计算组命名为计算组i,跳转至步骤s36,若所有计算组已经全部放入并行计算单元,则跳转至步骤s37;
16、s35、将计算组i放入与计算组i-1所在的并行计算单元,返回步骤s34;
17、s36、将计算组i放入所有并行计算单元中计算组时间总和最小的并行计算单元,返回步骤s34;
18、s37、结束。
19、可选地,步骤s32和步骤s34中,若当前输入数量减1后小于0,则令减1后的当前输入数量等于0。
20、本专利技术第二方面提供了一种基于分组排序的仿真计算加速装置,包括以下模块:
21、获取模块,用于获取仿真所分配的并行计算单元和控制计算块;
22、分组模块,用于根据每个控制计算块的输入数量和输出数量,对所有控制计算块进行分组,得到若干个计算组;
23、均衡分配模块,用于根据每个计算组的输入数量大小,将每个计算组作为一个独立单元进行排序,按计算时间均衡原则一次将各计算组放入对应的并行计算单元中。
24、可选地,分组模块具体用于执行以下步骤:
25、s21、在未归入计算组的控制计算块中,判断是否存在没有输入的控制计算块,若是,则找到1个没有输入的控制计算块,跳转至步骤s22,若否,则判断未归入计算组的控制计算块数量是否大于0,若未归入计算组的控制计算块数量大于0,则在未归入计算组的控制计算块中选取输入数量最少的一个控制计算块,跳转至步骤s22,若未归入计算组的控制计算块数量为0,则跳转至步骤s24;
26、s22、判断当前选择的控制计算块的输出数量是否为1,若是,则跳转至步骤s23,否则,将当前选择的控制计算块加入当前计算组,返回步骤s21;
27、s23、将当前选择的控制计算块加入当前计算组,并以当前选择的控制计算块所输出的控制计算块为当前选择的控制计算块,返回步骤s22;
28、s24、分组结束,得到若干个计算组。
29、可选地,均衡分配模块具体用于执行以下步骤:
30、s31、将所有计算组的编号i设置为0,将每个计算组的输入数量配置为每个计算组的当前输入数量,跳转至步骤s32;
31、s32、在当前编号为0的计算组中选取1个当前输入数量最小的计算组,将选取的计算组的编号i配置为1,令编号i为1的计算组的当前输入数量为0,获取编号i为1的计算组的所有输出对应的计算组,将输出对应的计算组的当前输入数量减1,跳转至步骤s33;
32、s33、将编号i为1的计算组放入当前并行计算单元,跳转至步骤s34;
33、s34、在编号i为1的计算组的所有输出对应的计算组中判断是否存在当前输入数量为1的计算组,若是,则将i自增1,将找到的当前输入数量为1的计算组命名为计算组i,并令计算组i所有输出对应的计算组的当前输入数量减1,跳转至步骤s35,若否,则判断所有计算组是否已经全部放入并行计算单元,若未全部放入,则在当前所有编号为0的计算组中找到一个当前输入数量最小的计算组命名为计算组i,跳转至步骤s36,若所有计算组已经全部放入并行计算单元,则跳转至步骤s37;
34、s35、将计算组i放入与计算组i-1所在的并行计算单元,返回步骤s34;
35、s36、将计算组i放入所有并行计算单元中计算组时间总和最小的本文档来自技高网...
【技术保护点】
1.一种基于分组排序的仿真计算加速方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于分组排序的仿真计算加速方法,其特征在于,步骤S2具体包括:
3.根据权利要求2所述的基于分组排序的仿真计算加速方法,其特征在于,步骤S3具体包括:
4.根据权利要求3所述的基于分组排序的仿真计算加速方法,其特征在于,步骤S32和步骤S34中,若当前输入数量减1后小于0,则令减1后的当前输入数量等于0。
5.一种基于分组排序的仿真计算加速装置,其特征在于,包括以下模块:
6.根据权利要求5所述的基于分组排序的仿真计算加速装置,其特征在于,分组模块具体用于执行以下步骤:
7.根据权利要求6所述的基于分组排序的仿真计算加速装置,其特征在于,均衡分配模块具体用于执行以下步骤:
8.根据权利要求7所述的基于分组排序的仿真计算加速方法,其特征在于,步骤S32和步骤S34中,若当前输入数量减1后小于0,则令减1后的当前输入数量等于0。
9.一种基于分组排序的仿真计算加速设备,所述设备包括处理器以及存储器:
10.一种计算机可读存储介质,所述计算机可读存储介质用于存储程序代码,所述程序代码用于执行权利要求1-4中任一项所述的基于分组排序的仿真计算加速方法。
...【技术特征摘要】
1.一种基于分组排序的仿真计算加速方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的基于分组排序的仿真计算加速方法,其特征在于,步骤s2具体包括:
3.根据权利要求2所述的基于分组排序的仿真计算加速方法,其特征在于,步骤s3具体包括:
4.根据权利要求3所述的基于分组排序的仿真计算加速方法,其特征在于,步骤s32和步骤s34中,若当前输入数量减1后小于0,则令减1后的当前输入数量等于0。
5.一种基于分组排序的仿真计算加速装置,其特征在于,包括以下模块:
6.根据权利要求5所述的基于分组排序的仿真计算加速装...
【专利技术属性】
技术研发人员:卢远宏,郭琦,张杰,郭海平,郭天宇,黄立滨,胡斌江,涂亮,张竞月,罗辉,
申请(专利权)人:南方电网科学研究院有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。