本发明专利技术公开了海量计算粗颗粒并行的自动启停及计算任务动态分配方法,包括:根据问题计算特征,定义为并行粗颗粒;基于文件标记技术和动态分配计算任务策略,主进程将并行粗颗粒中的每个计算任务以及该计算任务对应的输入参数动态分配到包含主进程的所有进程中;基于自动启停技术针对有计算任务的进程动态分配内存;待所有并行粗颗粒的并行计算完成后,主进程收集所有进程的输出参数,对其归并整理得到所述完整运行的最终结果。本发明专利技术最大限度的减少了进程之间的通信,避免了多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时完美解决计算实例复杂度不对等问题,进而大大提高并行计算效率。
【技术实现步骤摘要】
本专利技术涉及高性能计算
,尤其涉及海量计算粗颗粒并行的自动启停及计算任务动态分配方法。
技术介绍
在电磁功能材料优化设计、测井响应及反演、复杂电磁环境与多物理场耦合计算、海洋环境数值模拟、分子动力学及个性化药物设计与筛选等领域,需要海量的同类型大规模数值计算。这类大规模数值计算由于不同计算实例具有不同结构,导致不同计算实例的计算复杂度不对等,对于这类不对等的海量计算,需要高效率并行计算方法设计,充分考虑不同实例计算复杂度的不对等,尽可能提高并行计算效率。常规并行计算基本针对单个计算实例并行,在大量循环的计算部分实现并行,并行颗粒通常很细,这样导致不同进程之间存在大量的数据交换,降低并行效率;其次,由于不同进程计算进度不同,不可避免在需要数据共享和同步时出现大量等待,从而导致整体并行效率很低;再者,由于单个实例计算过程相当部分的计算过程有先后顺序,数据有依赖性,因此针对单个计算实例并行时,有相当部分的计算无法并行化,这也严重降低整体并行效率。再者,常规多线程并行计算,各线程进行大规模数值计算分配大内存时,并不考虑当前时刻可用物理内存大小,直接分配内存,当分配内存大于可用物理内存时,系统将自动从硬盘开辟一部分空间作为虚拟内存,并将不活动进程所占内存写入虚拟内存,释放相应的物理内存,目前常用的机械硬盘读写速度在80MB/s左右,而物理内存的读写速度有百倍以上的提高,例如,对于DDR3 1333MHz的服务器内存,其数据传输速率达到10.6GB/s。这一比较结果说明,如果并行计算开启的进程较多且不采用任何措施,可能导致计算过程中部分硬盘存储空间被当作虚拟内存读取,将使得程序运行速度降低百倍以上。
技术实现思路
针对上述问题中存在的不足之处,本专利技术提供海量计算粗颗粒并行的自动启停及计算任务动态分配方法。为实现上述目的,本专利技术提供海量计算粗颗粒并行的自动启停及计算任务动态分配方法,包括:步骤1、根据问题计算特征,将一个完整运行中相同类型的所有独立完整计算定义为并行粗颗粒,并行粗颗粒执行的一个独立完整计算作为一个计算任务;步骤2、在并行粗颗粒并行计算前,采用主进程执行并行粗颗粒之外的处理任务;步骤3、基于文件标记技术和动态分配计算任务策略,主进程将并行粗颗粒中的每个计算任务以及该计算任务对应的输入参数动态分配到包含主进程的所有进程中;步骤4、基于自动启停技术,对有计算任务的进程动态分配内存,并完成该计算任务的计算;步骤5、重复步骤3~步骤4,完成并行粗颗粒的并行计算;步骤6、待所有并行粗颗粒的并行计算完成后,主进程收集所有进程的输出参数,对其归并整理得到所述完整运行的最终结果。作为本专利技术的进一步改进,在步骤1中,所述独立完整计算为包含计算前处理、动态分配大数组变量进行大规模数值计算、计算结果整理并释放大数组变量的完整过程。作为本专利技术的进一步改进,在步骤3中,所述动态分配计算任务策略为:先申请先分配策略。作为本专利技术的进一步改进,在步骤3中,所述文件标记技术为:若并行粗颗粒中某计算任务被分配到一进程中,则生成该计算任务的状态文件;另一进程在申请分配某一计算任务时,将尝试生成该计算任务的状态文件,如果该状态文件存在,则表明该计算任务已经被分配,则所述另一进程将自动尝试申请分配下一个计算任务。作为本专利技术的进一步改进,所述文件标记技术的实现方法为:步骤3-1、一进程申请分配第i个计算任务;步骤3-2、判断第i个计算任务的状态文件Fi是否存在,若存在则跳至步骤3-5,若不存在则跳至步骤3-3;步骤3-3、生成状态文件Fi;步骤3-4、完成第i个计算任务的计算;步骤3-5、判断并行粗颗粒执行的所有计算任务是否全部完成,若未完成则i=i+1,并返回步骤3-1,若已完成则跳至步骤3-6;步骤3-6、结束。作为本专利技术的进一步改进,所述步骤3-2与步骤3-3之间还包括:步骤3-7、判断状态文件Fi是否被锁定,若被锁定则跳至步骤3-5,若未被锁定则跳至步骤3-8;步骤3-8、锁定状态文件Fi;所述步骤3-3与步骤3-4之间还包括:步骤3-9、状态文件Fi解锁。作为本专利技术的进一步改进,在步骤4中,所述自动启停技术的实现方法为:步骤4-1、分配有计算任务的进程统计所述计算任务所需的分配内存大小;步骤4-2、检测可用物理内存的大小;步骤4-3、比较该计算任务所需的分配内存与可用物理内存,若分配内存小于可用物理内存则执行该计算任务,若分配内存不小于可用物理内存则暂停时间T并返回步骤4-2。作为本专利技术的进一步改进,所述暂停时间T为1秒。与现有技术相比,本专利技术的有益效果为:本专利技术公开的海量计算粗颗粒并行的自动启停及计算任务动态分配方法,该方法最大限度的减少了进程之间的通信,避免了多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时完美解决计算实例复杂度不对等问题,进而大大提高并行计算效率。附图说明图1为本专利技术一种实施例公开的海量计算粗颗粒并行的自动启停及计算任务动态分配方法的总体流程图;图2为本专利技术一种实施例公开的文件标记技术实现方法的流程图;图3为本专利技术一种实施例公开的采用文件锁定技术的文件标记技术实现方法的流程图;图4为本专利技术一种实施例公开的自动启停技术流程图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术提供海量计算粗颗粒并行的自动启停及计算任务动态分配方法,该方法包括下述步骤:根据计算问题确定独立并行计算区域,即并行粗颗粒;实现串行版本并将粗颗粒设计成独立模块,大数组变量实现基于自动启停技术的动态分配内存;针对并行粗颗粒对串行版本并行化,根据各计算颗粒的任务完成情况,动态分配计算任务;采用文件标记技术记录计算任务正在实现和已经实现的状态;如果所有计算任务已经完成,主进程完成计算结果收集与后处理。下面结合附图对本专利技术做进一步的详细描述:如图1-4所示,本专利技术提供海量计算粗颗粒并行的自动启停及计算任务动态分配方法,包括:在并行计算前,需人为的确定进程数,并将其中一个进程作为主进程。S1、根据问题计算特征,将一个完整运行中相同类型的所有独立完整计算定义为并行粗颗粒,并行粗颗粒中的一个独立完整计算作为一个计算任务;将每个并行粗颗粒设计成包含最少输入/输出参数的独立执行模块,并设计该并行粗颗粒中每个计算任务的串行版本;调用所有独立执行模块,并结合完整运行中并行粗颗粒之外的处理任务,实现该完整运行的串行版本;对于双精度类型数组,定义数组长度大于106为大数组,针对并行粗颗粒中的大数组变量。其中:问题计算特征为:对不同行业,问题计算特征各不相同。例如对于电阻率测井的测井响应计算,其问题计算特征是在某个地质条件下(地层结构、井眼大小、仪器结构和位置)仪器工作时的电磁场分布,并由此计算出指定电极的电流、电位大小;对于电磁功能材料的电磁响应计算,其问题计算特征是某种结构(包括几何结构和材料介质构成)的材料对某个频率电磁波的影响,即材料对电磁波的反射本文档来自技高网...
【技术保护点】
一种海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,包括:步骤1、根据问题计算特征,将一个完整运行中相同类型的所有独立完整计算定义为并行粗颗粒,并行粗颗粒执行的一个独立完整计算作为一个计算任务;步骤2、在并行粗颗粒并行计算前,采用主进程执行并行粗颗粒之外的处理任务;步骤3、基于文件标记技术和动态分配计算任务策略,主进程将并行粗颗粒中的每个计算任务以及该计算任务对应的输入参数动态分配到包含主进程的所有进程中;步骤4、基于自动启停技术,对有计算任务的进程动态分配内存,并完成该计算任务的计算;步骤5、重复步骤3~步骤4,完成并行粗颗粒的并行计算;步骤6、待所有并行粗颗粒的并行计算完成后,主进程收集所有进程的输出参数,对其归并整理得到所述完整运行的最终结果。
【技术特征摘要】
1.一种海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,包括:步骤1、根据问题计算特征,将一个完整运行中相同类型的所有独立完整计算定义为并行粗颗粒,并行粗颗粒执行的一个独立完整计算作为一个计算任务;步骤2、在并行粗颗粒并行计算前,采用主进程执行并行粗颗粒之外的处理任务;步骤3、基于文件标记技术和动态分配计算任务策略,主进程将并行粗颗粒中的每个计算任务以及该计算任务对应的输入参数动态分配到包含主进程的所有进程中;步骤4、基于自动启停技术,对有计算任务的进程动态分配内存,并完成该计算任务的计算;步骤5、重复步骤3~步骤4,完成并行粗颗粒的并行计算;步骤6、待所有并行粗颗粒的并行计算完成后,主进程收集所有进程的输出参数,对其归并整理得到所述完整运行的最终结果。2.如权利要求1所述的海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,在步骤1中,所述独立完整计算为包含计算前处理、动态分配大数组变量进行大规模数值计算、计算结果整理并释放大数组变量的完整过程。3.如权利要求1所述的海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,在步骤3中,所述动态分配计算任务策略为:先申请先分配策略。4.如权利要求1所述的海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,在步骤3中,所述文件标记技术为:若并行粗颗粒中某计算任务被分配到一进程中,则生成该计算任务的状态文件;另一进程在申请分配某一计算任务时,将尝试生成该计算任务的状态文件,如果该状态文件存在,则表明该计算任务已经被分配...
【专利技术属性】
技术研发人员:王芬,
申请(专利权)人:北京唯智佳辰科技发展有限责任公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。