电磁功能材料优化设计的粗颗粒并行方法及系统与流程

文档序号:11865034阅读:288来源:国知局
电磁功能材料优化设计的粗颗粒并行方法及系统与流程

本发明涉及功能材料设计和高性能计算领域,尤其涉及电磁功能材料优化设计的粗颗粒并行方法及系统。



背景技术:

电磁功能材料由于具备某种特定的电磁响应特征,广泛应用于各种功能元器件,在信息技术、电磁防护、国防等重点领域发挥着关键作用,对高新技术的发展及新产业的形成具有重要的意义。为获得电磁功能材料更宽频段、更优异的电磁响应特征,需要根据事先设定的电磁响应技术指标,从材料介质选材到立体结构等方面进行严格的优化设计。电磁功能材料优化设计需要针对优化算法给出的每一种介质组合及其形成的立体结构,建立电磁功能材料个体,计算其在一系列频率下的电磁响应。为实现某个电磁响应技术指标的电磁功能材料优化设计,需要针对大量不同个体进行大规模电磁场数值计算。这类大规模数值计算由于不同计算实例具有不同结构,从而生成不同数量的剖分网格,导致不同计算实例的计算复杂度不对等,对于这类不对等的海量计算,需要高效率并行计算方法设计,充分考虑不同实例计算复杂度的不对等,尽可能提高并行计算效率。

常规并行计算基本针对单个计算实例并行,也就是说所有进程同时进行一个个体在某些优化频点下的计算,在大量循环的计算部分实现并行,并行颗粒通常很细,这样导致不同进程之间存在大量的数据交换,降低并行效率;其次,由于不同进程计算进度不同,不可避免在需要数据共享和同步时出现大量等待,从而导致整体并行效率很低;再者,由于单个实例计算中相当部分的计算过程有先后顺序,数据有依赖性,因此针对单个计算实例并行时,有相当部分的计算无法并行化,这也严重降低整体并行效率。



技术实现要素:

本发明的目的在于提供一种电磁功能材料优化设计的粗颗粒并行方法及系统,以解决现阶段电磁功能材料优化设计中并行计算效率低的问题。

本发明提供了一种电磁功能材料优化设计的粗颗粒并行方法,其包括:

步骤1:根据电磁功能材料的优化目标,以及电磁功能材料频率响应特征曲线连续性的原理,选取一个以上优化频点,以及选定优化算法;

步骤2:根据所述优化算法生成一个以上初始优化个体;所述初始优化个体为电磁功能材料的结构;

步骤3:构建执行所述初始优化个体在所有优化频点下的电磁响应及个体目标函数计算的粗颗粒,并获得包括所述粗颗粒的串行版本;

步骤4:在串行版本的基础上,以粗颗粒为基本执行单元,获得多个进程同时计算多个计算任务的并行版本;

步骤5:利用所述优化算法生成一个以上优化个体,优化个体在每个优化频点下的电磁响应及优化个体目标函数计算形成粗颗粒执行的计算任务,采用随机排序的分配策略对粗颗粒执行的计算任务进行处理,获取计算任务的新序列;

步骤6:每个计算进程采用先申请先分配策略申请分配新序列下待分配的计算任务,并调用相应的粗颗粒进行计算;

步骤7:判断新序列里是否存在待分配的计算任务,若存在,返回步骤6,否则,进行步骤8;

步骤8:收集所有计算结果,将所有计算结果进行目标化处理,并将处理结果与预期优化目标进行比较,若没有达到优化目标,进行步骤5,否则,结束。

在一些实施例中,优选为,在步骤3之后,步骤4之前,所述粗颗粒并行方法还包括:调试所述串行版本内粗颗粒能否正常运行;若能正常运行,进行步骤4;若不能正常运行,进行步骤3。

所述步骤6中,所述先申请先分配策略为:第一计算进程在申请分配第一计算任务时,生成第一状态文件对第一计算任务进行标记,如果所述第一状态文件存在,则表明第一计算任务已经被分配,第一计算进程自动申请分配第二计算任务;所述状态文件的生成方式为:文件锁定与解锁技术。

所述文件锁定与解锁技术为:

若状态文件是写加锁状态,则在所述状态文件被解锁之前,所有对所述状态文件加锁的线程都会被阻塞;

若状态文件在读加锁状态,所有以读模式对所述状态文件进行加锁的线程都可以得到访问权,以写模式对所述状态文件进行加锁的线程将会被阻塞;

若状态文件在读模式的锁状态,且有另外的线程以写模式对所述状态文件加锁,所述状态文件会阻塞其他读模式加锁的请求。

所述步骤2包括:根据所述优化算法生成一个以上优化个体;将优化个体数确定为计算任务数。则所述步骤7中判断新序列里是否存在待分配的计算任务包括:统计文件锁定与解锁技术生成的计算任务状态文件数量;若计算任务状态文件数量与所述计算任务数相同,则所有计算任务被分配,否则,存在待分配的计算任务。

所述电磁功能材料为特定频率范围内具有满足特定要求的电磁响应特征材料,包括:吸波材料、电磁屏蔽材料、频率选择材料或干扰抑制材料。所述优化算法包括差分进化算法、蚁群算法或遗传优化算法。

本发明提出一种电磁功能材料优化设计的粗颗粒并行系统,其包括:

选定模块,用于根据电磁功能材料的优化目标,以及电磁功能材料频率响应特征曲线连续性的原理,选取一个以上优化频点,以及选定优化算法;

生成模块,用于根据所述优化算法生成一个以上初始优化个体;所述初始优化个体为电磁功能材料的结构;

构建模块,用于构建执行所述初始优化个体在所有优化频点下的电磁响应及个体目标函数计算的粗颗粒,并获得包括所述粗颗粒的串行版本;并且,在串行版本的基础上,以粗颗粒为基本执行单元,获得并行版本;

优化与排序模块,用于利用所述优化算法生成一个以上优化个体,优化个体在每个优化频点下的电磁响应及优化个体目标函数计算形成粗颗粒执行的计算任务,采用随机排序的分配策略对计算任务进行处理,获取计算任务的新序列;

分配模块,用于调度各计算进程采用先申请先分配策略申请分配新序列下待分配的计算任务,并调用相应的粗颗粒进行计算;

判断模块,用于判断新序列里是否存在待分配的计算任务;

比较模块,用于收集所有计算结果,将所有计算结果进行目标化处理,并将处理结果与预期优化目标进行比较。

本发明实施例提供的电磁功能材料优化设计的粗颗粒并行方法及系统,与现有技术相比,首先获得包含粗颗粒形成的独立模块的串行版本并以粗颗粒为基本执行单元进行并行,而非现有技术的大量循环的计算部分实现并行,进而提高并行计算效率,其中粗颗粒执行一个优化个体在所有优化频点下的电磁响应及个体目标函数计算。在此基础上,采用随机排序的分配策略对粗颗粒执行的计算任务进行处理。该随机排序的分配策略能彻底打乱所有计算任务的分配顺序,可避免相对复杂的计算任务集中在某些节点上造成大量时间的硬盘读写,从而实现各计算节点同时计算的任务占用的峰值内存总和由进程数和所有模型占用峰值内存的平均值而非最高值决定。然后,每个计算进程采用先申请先分配策略申请分配计算任务,并进行计算,直至所有计算任务完成。该先申请先分配策略根据各个计算进程的完成情况进行动态计算任务分配,从而避免了不同计算节点、不同计算进程由于计算速度的快慢造成长时间等待。

由上可知,本发明通过的电磁功能材料优化设计的粗颗粒并行方法,有效的解决了现阶段电磁功能材料优化设计中并行计算效率低的问题。

附图说明

图1为本发明一个实施例中电磁功能材料优化设计的粗颗粒并行方法步骤示意图;

图2为本发明一个实施例中随机分配策略流程示意图;

图3为本发明一个实施例中先申请先分配策略流程示意图;

图4为本发明一个实施例中文件标记技术标记流程示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

针对现阶段的电磁功能材料优化设计中并行计算效率低的问题,本发明提出了一种电磁功能材料优化设计的粗颗粒并行方法。如图1所示,其具体包括:

步骤1:根据电磁功能材料的优化目标,以及电磁功能材料频率响应特征曲线连续性的原理,选取一个以上优化频点,以及选定优化算法;

其中,电磁功能材料为特定频率范围内具有满足特定要求的电磁响应特征材料,包括:吸波材料、电磁屏蔽材料、频率选择材料或干扰抑制材料,优化算法包括差分进化算法、蚁群算法或遗传优化算法;

步骤2:根据优化算法生成一个以上初始优化个体,优化个体为电磁功能材料的结构,初始优化个体相当于程序优化所需的初始值;

步骤3:构建执行一个优化个体在所有优化频点下的电磁响应及个体目标函数计算的粗颗粒,并获得包括所述粗颗粒的串行版本;

其中,粗颗粒是执行一个优化个体在所有选定频点下电磁响应及个体目标函数计算的程序代码,串行版本不仅仅是包括粗颗粒,还包括优化个体的各个参数,即串行版本可进行用户参数的读取、判断是否达到优化目标、根据优化算法形成新的优化个体,以及输出计算结果等;

步骤4:在串行版本的基础上,以粗颗粒为基本执行单元,获得多个进程同时计算多个计算任务的并行版本,并行的多个进程使用同一个粗颗粒去执行计算任务;

步骤5:利用优化算法生成一个以上的优化个体,优化个体在每个优化频点下的电磁响应及个体目标函数计算形成粗颗粒执行的计算任务,采用随机排序的分配策略对粗颗粒执行的计算任务进行处理,获取计算任务的新序列;

随机排序的分配策略为:将计算任务的顺序随机打乱,产生新的随机序列;计算任务为一个优化个体在所有优化频点上的电磁响应及个体目标函数计算;

步骤6:每个计算进程采用先申请先分配策略申请分配新序列下待分配的计算任务,并调用相应的粗颗粒进行计算;

先申请先分配策略为:第一计算进程在申请分配第一计算任务时,生成第一状态文件对第一进行标记,如果第一状态文件存在,则表明第一计算任务已经被分配,第一计算进程自动申请分配第二计算任务;

步骤7:判断新序列里是否存在待分配的计算任务,若存在,返回步骤6,否则,进行步骤8;

步骤8:收集所有计算结果,将所有计算结果进行目标化处理,并将处理结果与预期优化目标进行比较,若没有达到优化目标,进行步骤5,否则,结束。

在上述步骤2中,优化个体为电磁功能材料的结构,其中,电磁功能材料的结构不仅仅是指电磁功能材料的组合材料结构,还包括每个组合材料的空间结构、不同介质复合结构、介质构成等。假设优化10层的复合结构吸波材料,则10层材料,每层厚度、每层选材等等会形成无数种可能,每种可能都是一种复合吸波材料的结构。

在步骤3之后,步骤4之前,所述粗颗粒并行方法还包括:调试所述串行版本内粗颗粒能否正常运行;若能正常运行,进行步骤4;若不能正常运行,进行步骤3。判断串行版本内所有粗颗粒是否能并行,是为了确定所得到的串行版本可以进行并行优化,即可以进行步骤3以下的步骤。否则,只能再次修改粗颗粒模块代码,以保证执行计算任务的代码实现。

在步骤5中,先申请先分配策略通过文件标记技术实现的,并且状态文件的生成方式为:文件锁定与解锁技术。

如图4所示,文件锁定与解锁技术通过文件读写锁保证一次只能一个技术进程读或写同一计算任务;并具有以下特征:

若状态文件是写加锁状态,则在状态文件被解锁之前,所有对状态文件加锁的线程都会被阻塞;

若状态文件在读加锁状态,所有以读模式对状态文件进行加锁的线程都可以得到访问权,以写模式对状态文件进行加锁的线程将会被阻塞;

若状态文件在读模式的锁状态,且有另外的线程以写模式对状态文件加锁,状态文件会阻塞其他读模式加锁的请求。

并且,步骤2包括:根据优化算法生成一个以上优化个体,并确定计算任务数,计算任务数为优化个体数。

则在步骤7中判断所有粗颗粒执行的计算任务是否完成包括:通过文件锁定与解锁技术生成的计算任务状态文件数量与计算任务数相同,则所有计算任务完成,否则,没有完成。并且,可定义并行计算中多个进程中的一个进程为主进程,主进程负责将所有计算任务分配到各进程,负责收集各进程的计算结果(目标函数值)并根据目标函数完成优化算法的各步骤。主进程还将根据收集的计算结果判定计算任务是否完成。

在上述步骤中,电磁响应计算是指为了获得一个优化个体在频率下的响应(针对不同优化目的,这里的响应可以是材料的吸波效能、屏蔽效能、干扰抑制效能等)而进行的计算,包括根据个体的结构特征进行建模、再利用数值计算获得描述响应特征的量。在程序编写过程中,将每个频率下每个优化个体(特定的复合结构电磁功能材料)的电磁响应及个体目标函数计算作为一个独立的程序模块编写,便于后续并行过程中每个进程内的串行计算。并且,以独立的程序模块(一个优化个体在所有选定频点下的计算程序模块)作为并行的基本单元就称为粗颗粒并行,而不是独立程序模块里面更细的循环作为并行基本单元。

同时,在优化个体计算过程中,为了形成描述电磁功能材料在优化频段内响应特征的曲线而进行离散频率点的计算,为了形成反映响应特征的光滑曲线,需要计算比典型优化频点多得多的频点,如计算1GHz~18GHz范围内的吸波效能,采用步长0.1GHz的采样频点,需要计算181个点,计算完成后,将181个点的吸波效能绘图(横坐标为频率、纵坐标为计算的吸波效能),形成吸波效能曲线。

随机排序的分配策略和先申请先分配策略合称为随机动态分配计算任务策略,其中“随机”是指随机分配策略,“动态”分配是指先申请先分配策略。随机排序的分配策略是针对计算任务而言,如图2所示,假设有100个计算任务,编号为1,2,...,100,随机分配是指不按编号1,2,3,...依次分配,而是按随机的顺序分配。这样做的目的是避免复杂计算集中在某些计算节点上,譬如100个计算任务,前50个计算模型复杂,需要20GB内存,后50个计算模型简单,只需要10GB内存。这100个计算任务由2个都有32GB内存的计算节点完成,如果按顺序分配,每个节点分配两个计算任务,则有相当部分的时间是两个复杂任务同时计算,峰值内存为40GB,造成大量时间的硬盘读写,随机排序的分配策略则能很大程度的减少或避免这种问题。先申请先分配策略则是针对计算节点而言,与先申请先分配对应的是预先分配,通常根据计算任务的多少和计算进程的多少预先给各计算进程进行分配,分配完成后,后面的并行计算过程中不可更改。如图3所示,先申请先分配策略不是一次性分配完,而是根据不同进程的计算进度实现动态分配,在某个进程计算完一个模型,动态分配下一个计算模型之前,需要检查计算任务是否已经被分配,只有计算任务没有被分配才从未被分配的任务中分配下一个任务给该进程。譬如100个计算任务,10个进程,如果预先分配,则是每个进程分配10个计算任务(无论是顺序分配还是随机分配),计算过程中无论出现什么情况各进程的计算任务都不会改变,而先申请先分配则是根据各进程计算任务的完成情况进行的动态分配,这样可以避免不同计算节点、不同进程由于计算速度的快慢造成长时间等待,这种等待可能因为不同节点由于硬件配置不同导致的计算能力不同,最终导致计算相同数量的任务所需的CPU时间不同,也可能因为不同计算模型的复杂程度不同导致相同配置节点计算不同模型的CPU时间不同。

例如,利用差分进化算法优化一种带频率选择表面的3~10层复合结构吸波材料,计算模型表明,同一类型计算由于优化个体计算模型结构和复杂度不同,导致网格剖分产生的单元数量有较大差异,从而不同优化个体计算需要的内存也有较大差异。统计结果表明,如果采用二阶有限元计算,相同网格剖分参数设置情况下,优化算法产生的3层复合结构,带有1层频率选择表面,厚度5mm的模型,计算所需内存峰值最小,约为8GB;优化算法产生的10层复合结构,带有6层频率选择表面,厚度5mm的模型,计算所需内存峰值最大,超过20GB。如果一个集群每个节点内存为48GB,利用该集群采用二阶有限元并行计算,最简单的模型可以同时开启6个进程,最复杂的模型则只能同时开启2个进程,否则系统会将部分硬盘空间作为虚拟内存供程序使用。目前常用的硬盘驱动器HDD硬盘读写速度在80MB/s左右,而物理内存的读写速度有百倍以上的提高,例如,对于DDR3 1333MHz的服务器内存,其数据传输速率达到10.6GB/s。这一比较结果说明,如果并行计算开启的进程过多,导致计算过程中部分硬盘存储空间被当作虚拟内存读取,将使得程序运行速度降低百倍以上。为避免计算过程中部分硬盘存储空间被当作虚拟内存读取的现象,在开启进程时,需要考虑每个进程运行时可能需要的最大内存,以此为依据确定每个节点能开启的最大进程数。如果采用普通方法粗颗粒并行计算,则每节点最多能开启2个进程。实验结果表明,采用本发明的随机动态分配计算任务策略,每节点开启4个进程,且内存使用率长期在80%以上,基本做到了内存使用峰值平均化和内存峰值出现时间上的错位。

采用C++实现的文件锁定与解锁技术的典型代码如下所示:

1)创建标识文件并加锁,其他进程不能读/写该文件:

out.open(filename,_SH_DENYRW);

2)读标识文件并加锁,其他进程不能写该文件:

ifstream in(filename,ios::in,_SH_DENYWR);

3)写标识文件并加锁,其他进程不能读/写该文件:

out.open(filename,ios::app,_SH_DENYRW);

在一些程序中存在读者写者问题,也就是说,对某些资源的访问会存在两种可能的情况,一种是访问必须是排它行的,就是独占的意思,这称作写操作;另一种情况就是访问方式可以是共享的,就是说可以有多个线程同时去访问某个资源,这种就称作读操作。这个问题模型是从对文件的读写操作中引申出来的。

读写锁和互斥量(mutex)同为线程同步常用的机制,读写锁比起mutex具有更高的适用性,具有更高的并行性,可以有多个线程同时占用读模式的读写锁,但是只能有一个线程占用写模式的读写锁,读写锁的三种状态:

1.当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞

2.当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是以写模式对它进行加锁的线程将会被阻塞

3.当读写锁在读模式的锁状态时,如果有另外的线程试图以写模式加锁,读写锁通常会阻塞随后的读模式锁的请求,这样可以避免读模式锁长期占用,而等待的写模式锁请求则长期阻塞。

针对上述电磁功能材料优化设计的粗颗粒并行方法,本发明还公开了一种电磁功能材料优化设计的粗颗粒并行系统,其包括:

选定模块,用于根据电磁功能材料的优化目标,以及电磁功能材料频率响应特征曲线连续性的原理,选取一个以上优化频点,以及选定优化算法;

生成模块,用于根据优化算法生成一个以上初始优化个体;优化个体为电磁功能材料的结构;

构建模块,用于构建执行初始优化个体在所有优化频点下的电磁响应及个体目标函数计算的粗颗粒,并获得包括所述粗颗粒的串行版本;并且,在串行版本的基础上,以粗颗粒为基本执行单元,获得并行版本;

优化与排序模块,用于利用所述优化算法生成一个以上优化个体,优化个体在每个优化频点下的电磁响应及优化个体目标函数计算形成粗颗粒执行的计算任务,采用随机排序的分配策略对计算任务进行处理,获取计算任务的新序列;

分配模块,用于调度各计算进程采用先申请先分配策略申请分配新序列下待分配的计算任务,并调用相应的粗颗粒进行计算;

判断模块,用于判断新序列里是否存在待分配的计算任务;

比较模块,用于收集所有计算结果,将所有计算结果进行目标化处理,并将处理结果与预期优化目标进行比较。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1