CN106055401B - 海量计算粗颗粒并行的自动启停及计算任务动态分配方法 - Google Patents

海量计算粗颗粒并行的自动启停及计算任务动态分配方法 Download PDF

Info

Publication number
CN106055401B
CN106055401B CN201610410903.6A CN201610410903A CN106055401B CN 106055401 B CN106055401 B CN 106055401B CN 201610410903 A CN201610410903 A CN 201610410903A CN 106055401 B CN106055401 B CN 106055401B
Authority
CN
China
Prior art keywords
calculating task
parallel
calculating
coarse granule
task
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610410903.6A
Other languages
English (en)
Other versions
CN106055401A (zh
Inventor
王芬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Wisechip Simulation Technology Co Ltd
Original Assignee
Beijing Vtradex Minorities Among Science And Technology Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Vtradex Minorities Among Science And Technology Development Co Ltd filed Critical Beijing Vtradex Minorities Among Science And Technology Development Co Ltd
Priority to CN201610410903.6A priority Critical patent/CN106055401B/zh
Publication of CN106055401A publication Critical patent/CN106055401A/zh
Application granted granted Critical
Publication of CN106055401B publication Critical patent/CN106055401B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了海量计算粗颗粒并行的自动启停及计算任务动态分配方法,包括:根据问题计算特征,定义为并行粗颗粒;基于文件标记技术和动态分配计算任务策略,主进程将并行粗颗粒中的每个计算任务以及该计算任务对应的输入参数动态分配到包含主进程的所有进程中;基于自动启停技术针对有计算任务的进程动态分配内存;待所有并行粗颗粒的并行计算完成后,主进程收集所有进程的输出参数,对其归并整理得到所述完整运行的最终结果。本发明最大限度的减少了进程之间的通信,避免了多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时完美解决计算实例复杂度不对等问题,进而大大提高并行计算效率。

Description

海量计算粗颗粒并行的自动启停及计算任务动态分配方法
技术领域
本发明涉及高性能计算技术领域,尤其涉及海量计算粗颗粒并行的自动启停及计算任务动态分配方法。
背景技术
在电磁功能材料优化设计、测井响应及反演、复杂电磁环境与多物理场耦合计算、海洋环境数值模拟、分子动力学及个性化药物设计与筛选等领域,需要海量的同类型大规模数值计算。这类大规模数值计算由于不同计算实例具有不同结构,导致不同计算实例的计算复杂度不对等,对于这类不对等的海量计算,需要高效率并行计算方法设计,充分考虑不同实例计算复杂度的不对等,尽可能提高并行计算效率。
常规并行计算基本针对单个计算实例并行,在大量循环的计算部分实现并行,并行颗粒通常很细,这样导致不同进程之间存在大量的数据交换,降低并行效率;其次,由于不同进程计算进度不同,不可避免在需要数据共享和同步时出现大量等待,从而导致整体并行效率很低;再者,由于单个实例计算过程相当部分的计算过程有先后顺序,数据有依赖性,因此针对单个计算实例并行时,有相当部分的计算无法并行化,这也严重降低整体并行效率。
再者,常规多线程并行计算,各线程进行大规模数值计算分配大内存时,并不考虑当前时刻可用物理内存大小,直接分配内存,当分配内存大于可用物理内存时,系统将自动从硬盘开辟一部分空间作为虚拟内存,并将不活动进程所占内存写入虚拟内存,释放相应的物理内存,目前常用的机械硬盘读写速度在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为大数组,针对并行粗颗粒中的大数组变量。
其中:问题计算特征为:对不同行业,问题计算特征各不相同。例如对于电阻率测井的测井响应计算,其问题计算特征是在某个地质条件下(地层结构、井眼大小、仪器结构和位置)仪器工作时的电磁场分布,并由此计算出指定电极的电流、电位大小;对于电磁功能材料的电磁响应计算,其问题计算特征是某种结构(包括几何结构和材料介质构成)的材料对某个频率电磁波的影响,即材料对电磁波的反射、透射和吸收效果;对于大规模集成电路电磁场分布计算,其问题计算特征是某种结构的多层集成电路板,在不同频率、或不同大小电流驱动情况下各层板的电流、电位分布以及层与层之间电磁场分布情况;对于脑电问题的电磁场计算,其问题计算特征是脑内电偶极子某种分布情况下脑内的电磁场分布,进而计算头皮电位分布;对于药物设计的大规模筛选问题,其问题计算特征可能是某种结构大分子的自由能扰动;
独立完整计算为包含计算前处理、动态分配大数组变量进行大规模数值计算、计算结果整理并释放大数组变量的完整过程;其中计算前处理是指:对于包含复杂计算区域的计算问题,通常需要采用数值计算方法获得近似解,首先需要对复杂计算区域进行描述(复杂区域三维建模),然后进行离散,即对复杂计算区域进行网格剖分,这个三维建模和网格剖分,即为计算前处理。
其具体实施例为:若一个完整运行需要依次经过a1、a2、a3、a4、a5共5个步骤;假设a2有1000次独立完整计算,a4有500次独立完整计算;且a2、a4的运行符合独立完整计算的特征。因此,将a2或a4定义为并行粗颗粒;其中a2有1000个计算任务,a4有500个计算任务。将并行粗颗粒a2、a4分别设计成包含最少输入/输出参数的独立执行模块,并设计a2或a4中每个计算任务的串行版本;调用a2、a4的独立执行模块,并结合完整运行中并行粗颗粒之外的处理任务(a1、a3、a5),实现该完整运行的串行版本。
S2、在并行粗颗粒并行计算前,采用主进程执行并行粗颗粒之外的处理任务。
其具体实施例为:完整运行中并行粗颗粒a2并行计算前需要先执行a1;并行粗颗粒a4并行计算前需要先执行a3,并行计算后需要执行a5;其中a1、a3、a5采用主进程进行执行。
S3、基于文件标记技术和动态分配计算任务策略,主进程将并行粗颗粒中的每个计算任务以及该计算任务对应的输入参数动态分配到包含主进程的所有进程中;
其中:动态分配计算任务策略为:先申请先分配策略;先申请先分配策略一方面可使得各进程计算完即随时分配到新的计算任务,而不是计算预先分配好的任务,造成因为不同计算任务运行的CPU时间有较大差别而导致的运行结束后的等待;另一方面,可以根据各进程申请分配的顺序不同,动态将CPU时间偏高的计算任务分配到各个进程,而不是集中分配到一个或几个进程。
先申请先分配策略基于文件标记技术实现;在多进程并行计算过程中,各个进程分配到某个计算任务的机会是均等的,如果不采取任何措施,可能导致多个进程被分配到同一计算任务,造成计算资源的浪费,因此必须采取某种措施,使得所有计算任务被唯一分配到某个进程。达到这一目的最简单也最直观的措施是分配任务及时标记,即任务被分配到某一进程的同时即将该任务进行标记,这样其他进程不再分配该任务。但由于并行计算时各进程的变量一般情况下相互独立,且计算任务不对称,各进程计算状态不同,任何进程通过变量标记任务被分配的信息无法立即被传递到其他进程,因此必须采用一种外在显式的标记方法使得计算任务一旦被标记,所有进程都能获得这个信息。本发明提出采用文件标记技术,若并行粗颗粒中计算任务被分配到进程中,马上生成计算任务的状态文件;某一进程在申请分配某一计算任务时,将试图生成该计算任务的状态文件,如果该状态文件存在,则表明该计算任务已经被分配,该进程将自动尝试申请分配下一个计算任务。
如图2所示,文件标记技术的实现方法为:
步骤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、结束。
文件标记技术采用文件锁定与解锁技术,文件锁定与解锁技术保证一次只能一个进程读/写同一计算任务,防止多个进程同时操作同一文件,导致重复计算同一个计算任务。文件读写锁具有很高的并行性,可以有多个线程同时占用读模式的读写锁,但是只能有一个线程占用写模式的读写锁,读写锁的三种状态:
1、当读写锁是写加锁状态时,在这个锁被解锁之前,所有试图对这个锁加锁的线程都会被阻塞;
2、当读写锁在读加锁状态时,所有试图以读模式对它进行加锁的线程都可以得到访问权,但是以写模式对它进行加锁的线程将会被阻塞;
3、当读写锁在读模式的锁状态时,如果有另外的线程试图以写模式加锁,读写锁通常会阻塞随后的读模式锁的请求,这样可以避免读模式锁长期占用,而等待的写模式锁请求则长期阻塞。
处理读者-写者问题的两种常见策略是强读者同步(strong readersynchronization)和强写者同步(strong writer synchronization)。在强读者同步中,总是给读者更高的优先权,只要写者当前没有进行写操作,读者就可以获得访问权限;而在强写者同步中,则往往将优先权交付给写者,而读者只能等到所有正在等待的或者是正在执行的写者结束以后才能执行。
采用C++实现的文件锁定与解锁技术的典型代码如下所示:
创建标识文件并加锁,其他进程不能读/写该文件:
out.open(filename,_SH_DENYRW);
读标识文件并加锁,其他进程不能写该文件:
ifstream in(filename,ios::in,_SH_DENYWR);
写标识文件并加锁,其他进程不能读/写该文件:
out.open(filename,ios::app,_SH_DENYRW)。
如图3所示,采用文件锁定与解锁技术的文件标记技术的实现方法为:
步骤3-1、一进程申请分配第i个计算任务;
步骤3-2、判断第i个计算任务的状态文件Fi是否存在,若存在则跳至步骤3-8,若不存在则跳至步骤3-3;
步骤3-3、判断状态文件Fi是否被锁定,若被锁定则跳至步骤3-8,若未被锁定则跳至步骤3-4;
步骤3-4、锁定状态文件Fi
步骤3-5、生成状态文件Fi
步骤3-6、状态文件Fi解锁;
步骤3-7、完成第i个计算任务的计算;
步骤3-8、判断并行粗颗粒执行的所有计算任务是否全部完成,若未完成则i=i+1,并返回步骤3-1,若已完成则跳至步骤3-9;
步骤3-9、结束。
其具体实施例为:主进程在执行a1后,在执行并行粗颗粒a2时,包含主进程在内的所有进程分别申请各自所需的计算任务,基于上述文件标记技术、文件锁定与解锁技术及动态分配计算任务策略,主进程动态分配计算任务到各个进程中,当并行粗颗粒a2中最后一个计算任务完成后,并行粗颗粒a2的并行计算完成;上述技术保证a3可以同时获取计算结果,无需太长时间等待。
S4、基于自动启停技术,分配有计算任务的进程动态分配内存,并完成该计算任务的计算;
其中:自动启停技术即动态分配内存过程中,随时判断可用物理内存与动态分配内存大小,如动态分配内存小于可用物理内存,分配内存并进行计算,否则该进程暂停大数组内存分配,暂停时间T后继续更新可用物理内存并与动态分配内存大小比较。
如图4所示,自动启停技术的实现方法为:
步骤4-1、分配有计算任务的进程统计计算任务所需的分配内存大小;
步骤4-2、检测可用物理内存的大小;
步骤4-3、比较该计算任务所需的分配内存与可用物理内存,若分配内存小于可用物理内存则执行该计算任务,若分配内存不小于可用物理内存则暂停时间T,T为1秒,并返回步骤4-2。
其具体实施例为:在并行粗颗粒a2进行并行计算时,统计每个计算任务完成计算需要分配的内存;假设有4个进程,4个进程共同使用32GB可用物理内存;
假设不同进程分配计算任务为:若第一个进程先申请,则第一个进程分配并行粗颗粒中的第一个计算任务,假定第一个计算任务计算过程需要占用10GB,则需要分配10GB内存;由于10GB<32GB那么第一个进程就可以执行,剩余22GB可分配内存;
由于第一个计算任务被分配,则第二个进程只能申请分配并行粗颗粒中的第二个计算任务;假定第二个计算任务计算过程需要占用10GB,则需要分配10GB内存;由于10GB<22GB那么第二个进程可以和第一个进程同时工作,剩余12GB可分配内存;
由于第一、二个计算任务被分配,则第三个进程只能申请分配并行粗颗粒中的第三个计算任务;假定第三个计算任务计算过程需要占用10GB,则需要分配10GB内存;由于10GB<12GB那么第三个进程可以和第一、第二个进程同时执行,剩余2GB可分配内存;
由于第一、二、三个计算任务被分配,则第四个进程只能申请分配并行粗颗粒中的第四个计算任务;假定第四个计算任务计算过程需要占用10GB内存,则需要分配10GB内存;由于10GB>2GB那么第四个进程不能和第一、二、三个进程同时执行;其需要等待其他进程完成后释放物理内存,且可用物理内存达到该进程所需物理内存后进行计算。
S5、重复S3~S4,完成并行粗颗粒的并行计算;
其具体实施例为:主进程执行a3完成对并行粗颗粒a2的多个运行结果的归并、整理形成完整结果,主进程按照并行粗颗粒a2的处理方式处理并行粗颗粒a4。
S6、待所有并行粗颗粒的并行计算完成后,主进程收集所有进程的输出参数,对其归并整理得到所述完整运行的最终结果,针对最终结果根据不同问题计算特征可进行后处理。
在复杂地层的电法测井响应计算、复杂结构的电磁功能材料电磁响应计算等计算模型表明,同一类型计算由于模型结构不同,导致网格剖分产生的单元数量有较大差异,从而不同模型计算需要的内存也有较大差异。统计结果表明,如果采用二阶有限元计算,对于较为复杂的模型,稀疏矩阵求解所需的最大内存超过20GB。如果一个集群每个节点内存为48GB,利用该集群采用二阶有限元并行计算,采用普通方法,每个节点只能同时开启2个进程,如果开启更多进程,则会造成因使用虚拟内存导致的长时间等待。实验结果表明,采用本发明的自动启停技术,每节点开启4个进程,比每节点开启2个进程计算同样的1000个模型时间减少20%。这一结果表明,在粗颗粒并行计算中,由于计算的三维模型结构复杂,在稀疏矩阵求解之外的三维实体建模、复杂结构网格剖分以及有限元刚度矩阵安装也占用相当部分的时间,本发明的自动启停技术能保证在避免使用虚拟内存的情况下同时开启更多的进程。
本发明针对海量的计算需求,提出一种海量计算粗颗粒并行的自动启停及计算任务动态分配方法,该方法最大限度的减少了进程之间的通信,避免了多进程并行计算时因为内存峰值大于可用物理内存而造成的硬盘读写瓶颈,同时完美解决计算实例复杂度不对等问题,进而大大提高并行计算效率。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,包括:
步骤1、根据问题计算特征,将一个完整运行中相同类型的所有独立完整计算定义为并行粗颗粒,并行粗颗粒执行的一个独立完整计算作为一个计算任务;
步骤2、在并行粗颗粒并行计算前,采用主进程执行并行粗颗粒之外的处理任务;
步骤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、结束;
步骤4、基于自动启停技术,对有计算任务的进程动态分配内存,并完成该计算任务的计算;
所述自动启停技术的实现方法为:
步骤4-1、分配有计算任务的进程统计所述计算任务所需的分配内存大小;
步骤4-2、检测可用物理内存的大小;
步骤4-3、比较该计算任务所需的分配内存与可用物理内存,若分配内存小于可用物理内存则执行该计算任务,若分配内存不小于可用物理内存则暂停时间T并返回步骤4-2;
步骤5、重复步骤3~步骤4,完成并行粗颗粒的并行计算;
步骤6、待所有并行粗颗粒的并行计算完成后,主进程收集所有进程的输出参数,对其归并整理得到所述完整运行的最终结果。
2.如权利要求1所述的海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,在步骤1中,所述独立完整计算为包含计算前处理、动态分配大数组变量进行大规模数值计算、计算结果整理并释放大数组变量的完整过程。
3.如权利要求1所述的海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,在步骤3中,所述动态分配计算任务策略为:先申请先分配策略。
4.如权利要求1所述的海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,所述步骤3-2与步骤3-3之间还包括:
步骤3-7、判断状态文件Fi是否被锁定,若被锁定则跳至步骤3-5,若未被锁定则跳至步骤3-8;
步骤3-8、锁定状态文件Fi
所述步骤3-3与步骤3-4之间还包括:
步骤3-9、状态文件Fi解锁。
5.如权利要求1所述的海量计算粗颗粒并行的自动启停及计算任务动态分配方法,其特征在于,所述暂停时间T为1秒。
CN201610410903.6A 2016-06-13 2016-06-13 海量计算粗颗粒并行的自动启停及计算任务动态分配方法 Active CN106055401B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610410903.6A CN106055401B (zh) 2016-06-13 2016-06-13 海量计算粗颗粒并行的自动启停及计算任务动态分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610410903.6A CN106055401B (zh) 2016-06-13 2016-06-13 海量计算粗颗粒并行的自动启停及计算任务动态分配方法

Publications (2)

Publication Number Publication Date
CN106055401A CN106055401A (zh) 2016-10-26
CN106055401B true CN106055401B (zh) 2019-02-26

Family

ID=57170076

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610410903.6A Active CN106055401B (zh) 2016-06-13 2016-06-13 海量计算粗颗粒并行的自动启停及计算任务动态分配方法

Country Status (1)

Country Link
CN (1) CN106055401B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678859A (zh) * 2017-10-13 2018-02-09 郑州云海信息技术有限公司 一种基于cap机制的文件访问方法、装置及设备
CN110688807B (zh) * 2019-12-10 2020-04-17 北京唯智佳辰科技发展有限责任公司 一种多层集成电路直流电场的场路耦合方法及装置
CN111881643A (zh) * 2020-06-08 2020-11-03 北京智芯仿真科技有限公司 进程自启停的基于频域电磁响应的集成电路版图优化方法
CN111881641A (zh) * 2020-06-08 2020-11-03 北京智芯仿真科技有限公司 多进程自适应分配的多层超大规模集成电路场路耦合方法
CN112307709B (zh) * 2020-12-21 2021-04-06 北京智芯仿真科技有限公司 系统级集成电路直流压降的端口等效并行分析方法及系统
CN112989675B (zh) * 2021-04-20 2021-09-14 北京智芯仿真科技有限公司 集成电路层间耦合即时更新的粗颗粒并行迭代方法及装置
CN113128142B (zh) * 2021-04-27 2022-04-01 北京智芯仿真科技有限公司 基于文件锁的集成电路电磁仿真粗颗粒并行方法及装置
CN117573328B (zh) * 2024-01-15 2024-03-29 西北工业大学 基于多模型驱动的并行任务快速处理方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073546A (zh) * 2010-12-13 2011-05-25 北京航空航天大学 一种云计算环境中分布式计算模式下的任务动态调度方法
CN102929707A (zh) * 2012-11-06 2013-02-13 无锡江南计算技术研究所 并行任务动态分配方法
CN104699542A (zh) * 2015-03-31 2015-06-10 北京奇艺世纪科技有限公司 任务处理方法及系统
WO2015126495A2 (en) * 2014-02-20 2015-08-27 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595732B2 (en) * 2010-11-15 2013-11-26 International Business Machines Corporation Reducing the response time of flexible highly data parallel task by assigning task sets using dynamic combined longest processing time scheme

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102073546A (zh) * 2010-12-13 2011-05-25 北京航空航天大学 一种云计算环境中分布式计算模式下的任务动态调度方法
CN102929707A (zh) * 2012-11-06 2013-02-13 无锡江南计算技术研究所 并行任务动态分配方法
WO2015126495A2 (en) * 2014-02-20 2015-08-27 Stillwater Supercomputing, Inc. Execution engine for executing single assignment programs with affine dependencies
CN104699542A (zh) * 2015-03-31 2015-06-10 北京奇艺世纪科技有限公司 任务处理方法及系统

Also Published As

Publication number Publication date
CN106055401A (zh) 2016-10-26

Similar Documents

Publication Publication Date Title
CN106055401B (zh) 海量计算粗颗粒并行的自动启停及计算任务动态分配方法
CN106095574B (zh) 海量计算粗颗粒并行实现及计算任务随机动态分配方法
Zhu et al. Synchronization state buffer: supporting efficient fine-grain synchronization on many-core architectures
US8868531B2 (en) Concurrent access methods for tree data structures
Welton et al. Mr. scan: Extreme scale density-based clustering using a tree-based network of gpgpu nodes
CN103514053B (zh) 一种基于共享内存的进程间通讯方法
US20130227194A1 (en) Active non-volatile memory post-processing
CN104412233B (zh) 流水线调度中混叠寄存器的分配
CN101571810B (zh) 执行程序的方法、验证程序结果的方法、装置及系统
CN113205417B (zh) 一种面向联盟链的交易并行处理方法及系统
CN106339324B (zh) 一种选择垃圾回收块的方法及装置
CN102385588B (zh) 用于提高数据并行插入的性能的方法和系统
Che et al. Accelerating truss decomposition on heterogeneous processors
US9761305B2 (en) Timing control in a quantum memory system
US20100094870A1 (en) Method for massively parallel multi-core text indexing
EP2316074A1 (en) Copying entire subgraphs of objects without traversing individual objects
DE102013209350A1 (de) Ressource-Management-Subsystem, welches Fairness und Ordnung einhält
US20180267840A1 (en) Using Expedited Grace Periods To Short-Circuit Normal Grace-Period Computations
CN103793332B (zh) 基于内存的数据存储方法、装置、处理器和电子设备
Barinka Fast computation tools for adaptive wavelet schemes
CN106126878B (zh) 电磁功能材料优化设计的粗颗粒并行方法及系统
Seo et al. An integrated algorithm for memory allocation and assignment in high-level synthesis
CN102681820A (zh) 动态分簇的寄存器堆及使用该寄存器堆的可重构计算装置
CN111767337B (zh) 区块的验证方法、装置及设备
CN106484818A (zh) 一种基于Hadoop和HBase的层次聚类方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200324

Address after: Room 02b-350, building B (2f), No.28, information road a, Haidian District, Beijing 100000

Patentee after: Beijing Smart core Simulation Technology Co., Ltd

Address before: 100034, room 1, No. 2028, Hu Ying Road, sheepskin City, Beijing, Xicheng District

Patentee before: BEIJING WEIZHI JIACHEN TECHNOLOGY DEVELOPMENT Co.,Ltd.

TR01 Transfer of patent right