并行处理方法中的作业分配方法及并行处理方法

文档序号:5117393阅读:180来源:国知局
专利名称:并行处理方法中的作业分配方法及并行处理方法
技术领域
本发明涉及利用由主计算机和通过共用总线与该主计算机连接的多个处理器构成的计算机系统,由多个处理器并行处理多个作业的并行处理方法中的作业分配方法。另外,涉及用以高速处理大规模的具有特定对称性的矩阵元素计算,尤其是采用非经验分子轨道法的分子模拟中的福克矩阵元素计算的并行处理方法。
背景技术
化学领域中,作为用数值解析分子的状态和运动的方法,有分子轨道法、分子动力学法、蒙特卡洛法等。其中,非经验分子轨道计算法是基于第一原理的量子力学的计算,其目的为记述分子中电子的运动。因而,该方法是用于以分子模拟为基础,详细解析物质构造和化学反应的工业上重要的方法。
非经验分子轨道计算法中,将以构成分子的原子的原子核和轨道电子之间距离的2次方乘以经验常数后的数作为指数的指数函数的倒数或它们的线性组合作为基底函数,相对于一个原子准备多个该基底函数。用这些基底函数的线性组合记述分子内轨道电子的波函数即分子轨道。
确定分子轨道中基底函数的线性组合系数是非经验分子轨道计算法中的主要处理,该计算必须有与基底函数的数的4次方成比例的计算量和存储容量。因此,当前的非经验分子轨道计算法仅仅适用于100原子左右规模的分子体系。为了使生命现象/化学现象的分子论的解释更加现实,必须开发可适用于数千原子规模的分子体系的非经验分子轨道计算专用的计算系统。
作为这样大规模的非经验分子轨道计算专用的计算系统的例子,有文献1(白川他“超高速分子轨道计算专用机MOE的体系结构”,电子情报通信学会技术报告,vol.CPSY96-46,no.5,pp.45-50,1996)或文献2(稲畑他,“PPRAM-MOE分子轨道计算专用服务器MOE的处理节点LSI”,电子情报通信学会技术报告,vol.CPSY98-21,no.4,pp.77-84,1998)中记载的系统。
这些文献记载的计算系统是将主计算机和例如100个处理器(以下的说明中将用于该并行处理的处理器称为处理单元)通过共用总线连接而构成的并行处理系统,其目的为高速进行非经验分子轨道计算。
由于这些系统的各个并行处理单元具有高的运算处理能力且可实现整个系统的低成本,因而能够提供性价比良好的计算系统。
象非经验分子轨道计算这样的计算量大的场合,有效运用并行处理用的多个处理单元以实现进一步高速化是很重要的。特别是在上述文献记载的系统中,由于在各处理单元通过共用总线和主计算机通信、进行必要的数据收发的同时进行计算处理,因而尽可能减少各处理单元中通信的等待时间以进行有效处理对于高速处理显得尤为重要。
但是,单纯的非经验分子轨道计算中,在形成作业并分配给并行处理单元的场合,由于各个作业的计算量(计算时间和通信量)不同,因而产生通信的系统开销(等待时间),导致无法提高与处理单元的个数成比例的处理性能的问题。
如果进行并行处理的处理单元的个数增加,则主计算机和处理单元之间收发的总数据量虽然不变,但是处理单元的处理能力随个数成比例增加。结果,一定时间内必须进行通信的量(平均通信量)增加,处理单元数若超过某一个数,则平均通信量超过通信网的处理能力(通信性能)。该情况是发生通信的系统开销的一个原因。
另外,在短时间内集中发生通信请求、总通信量在某一时刻超过通信网的通信性能,即发生在时间上不均一的通信负荷的场合时,发生通信的开销,导致并行处理效率的劣化。这在平均通信量不超过通信网的通信性能的场合时也会发生。
从而,为了用并行计算机进行有效的处理,必须减少发生的总通信量并使通信负荷的发生在时间上均一(通信负荷随时间分散)。
例如,多个作业中的各个作业如果是计算量(计算时间;另外,该计算中包含使用例如ROM(只读存储器)的变换处理等。本说明书中的计算和运算同义)和通信量(通信时间)均等的作业,则通过向各处理单元分配作业使经由共用总线进行的通信时刻延迟,从而不发生通信的开销,可进行并行处理。
文献3(特开平5-324581号公报)中公开了在并行处理多体问题的计算时使计算负荷均一化的负荷分散方法。该文献3记载的负荷分散方法中,以各作业的大小完全相等为前提,通过向处理单元分配个数均等的作业,使计算负荷均等。
但是,非经验分子轨道计算中,各作业的计算循环的次数不同,且从主计算机取得的数据量的差异引起的通信量也不同。从而有仅仅通过使作业个数均等无法使计算负荷均等的问题。
除了上述文献,文献4(特开平6-35870号公报)、文献5(特开平6-243112号公报)、文献6(特开平7-295942号公报)、文献8(特开平8-185377号公报)、文献9(特开平10-240698号公报)等也公开了由多个处理单元进行并行处理时的负荷分散方法。
但是,由于这些文献4、文献5、文献6、文献7、文献9记载的任何一个负荷分散方法都是在测定或预测处理单元的负荷状态的基础上进行作业的调度,因而必须设置用于测定或预测的专用功能且为了进行测定或预测需要进行附加处理。
另外,文献8记载的分散计算系统中虽然公开了将分散系统分成具有均等能力的群、以群单位进行负荷分散的方法,但是由于没有考虑关于通信负荷的分散,有可能导致通信的开销增大的问题。
针对上述的问题点,本发明的目的为提供即使在各个作业的计算负荷和通信负荷的大小不同的场合,也不用设置专用机构,可以用简单的方法使负荷均等化的作业分配方法,可进行有效的并行处理,缩短整个系统的处理时间。
发明的公开第1发明的并行处理方法中的作业分配方法的特征在于在利用由主计算机和通过共用总线与该主计算机连接的多个处理器构成的计算机系统,将由所述主计算机与所述处理器之间的通信处理和所述处理器中的运算处理组成的多个作业通过所述多个处理器进行并行处理的并行处理方法中,向所述各处理器分配各作业,使所述作业的通信时间与运算时间之比的平均值为规定值。
根据上述构成的第1发明,由于向多个处理器分配作业使得作业的通信时间与运算时间之比的平均值为规定值,因而通信处理和运算处理都可有效进行,能够缩短到处理结束为止的时间。
第2发明的特征为在第1发明的并行处理方法中的作业分配方法中,所述多个作业的全体通信时间与向所述多个处理器均等分配所述多个作业时的一个作业内的运算时间的总和大致相等时,向所述各个处理器分配各作业,使得所述作业的通信时间与运算时间之比的平均值为所述处理器个数的倒数。
根据该第2发明,由于在多个作业的全体通信时间与向多个处理器均等分配多个作业时的一个作业内的运算时间的总和大致相等时,作业的通信时间与运算时间之比的平均值为处理器个数的倒数,因而不会产生各处理器即不通信又不运算的时间带,在并行的多个处理器的每一个的所述运算时间结束时,处理结束。从而,可以有效进行通信处理和运算处理,缩短到处理结束为止的时间。
第3发明的特征为在第1发明的并行处理方法的作业分配方法中,向各处理器交替分配通信时间与运算时间之比大于和小于所述规定值或所述处理器个数的倒数的作业。
另外,第4发明的特征在于在第2发明的并行处理方法的作业分配方法中,向各处理器交替分配通信时间与运算时间之比大于和小于所述规定值或所述处理器个数的倒数的作业。
根据上述的第3和第4发明,通过交替分配通信时间与运算时间之比大于和小于规定值或处理器个数的倒数的作业的简单方法,可以有效进行通信处理和运算处理。
另外,第5发明的特征为在利用由主计算机和通过共用总线与该主计算机连接的多个处理器构成的计算机系统,将由所述主计算机与所述处理器之间的通信处理和所述处理器中的运算处理组成的多个作业通过所述多个处理器进行并行处理的并行处理方法中,用从N(N是整数)到M(大于N的整数)的连续整数对所述多个作业进行编号,如果就要分配完的作业的编号J小于或等于(N+M)/2,则将编号为N+(M-J-1)的作业作为下一次作业进行分配,如果就要分配完的作业的编号J大于(N+M)/2,则将编号为N+(M-J)的作业作为下一次作业进行分配,或者,如果就要分配完的作业的编号J小于(N+M)/2,则将编号为N+(M-J)的作业作为下一次作业进行分配,如果就要分配完的作业的编号J大于或等于(N+M)/2,则将编号为N+(M-J-1)的作业作为下一次作业进行分配,如上分配各作业,使得所述通信时间和所述运算时间之比的平均值为规定值。
该第5发明中,用从N(N是整数)到M(大于N的整数)的连续整数按照通信时间与运算时间之比从小到大或从大到小的顺序对作业编号。从而,多个作业的大小的波动变小。
从而,当处理器中先前处理的作业编号大于全体作业编号中的中间值时,分配作业编号小的作业作为下一次作业,先前处理的作业编号小于全体作业编号中的中间值时,分配作业编号大的作业作为下一次作业。
从而,令作业的通信时间与运算时间之比的平均值大致为处理器个数的倒数,可以有效进行通信处理和运算处理,缩短至处理结束为止的时间。
另外,第6发明的特征为在利用由主计算机和通过共用总线与该主计算机连接的多个处理器构成的计算机系统,将由所述主计算机与所述处理器之间的通信处理和所述处理器中的运算处理组成的多个作业通过所述多个处理器进行并行处理的并行处理方法中,将所述多个处理器分割成G个(G是大于或等于2的整数)处理器群,群内的所述处理器个数大致相等,同时将所述多个作业分割成G个作业群,群内的所述作业个数大致相等,使所述处理器群和所述作业群一一对应,一个作业群内的作业分配给对应的一个处理器群内的处理器,使由所述通信时间和运算时间组成的大小与所述通信时间和所述运算时间之比近似的作业分别属于所述各个不同的作业群,同时,将由所述通信时间和运算时间组成的大小与所述通信时间和所述运算时间之比近似的作业分配到所述各个作业群内,其分配顺序在所述多个作业群中互不相同。
该第6发明中,将多个处理器分割成G个(G是大于或等于2的整数)处理器群,群内的处理器个数大致相等。另外,将多个作业分割成G个作业群,群内的作业个数与处理器群的个数大致相等。从而,处理器群和作业群一一对应,一个作业群内的作业分配给对应的一个处理器群内的处理器。
该情况下,可将由通信时间和运算时间组成的大小与通信时间和运算时间近似的作业分散,使其分别属于不同的作业群,而且,可将由通信时间和运算时间组成的大小与通信时间和运算时间近似的作业分散地分配到各个作业群内,使其分配顺序在多个作业群中互不相同,可使多个作业的通信处理在共用总线上不会形成拥挤状态。
从而,可有效进行通信处理和运算处理,缩短到处理结束为止的时间。
另外,第7发明是采用由主计算机和多个处理器构成的计算机系统进行分子轨道计算的并行处理方法,所述分子轨道计算是计算用n个(n是正整数)收缩壳(縮約シエル,contracted shell)表示的分子的能量,其特征在于它执行以下计算,即,将收缩壳R、S、T、U分别包含的原始壳r、s、t、u的各个分量、即原始基底函数i、j、k、l作为指标而表示的2电子积分函数g的函数值g(i,j,k,l)、将以所述原始基底函数k为一个构成元素的收缩基底函数K和以所述原始基底函数l为一个构成元素的收缩基底函数L作为指标而表示的密度矩阵P的元素P(K,L)与系数A1的积A1·P(K,L)·g(i,j,k,l)的所有收缩基底函数的总和f1(I,J);和所述2电子积分函数的函数值g(i,k,j,l)、所述密度矩阵P的元素P(K,L)与系数A2的积A2·P(K,L)·g(i,k,j,l)的所有收缩基底函数相关的总和f2(I,J);之和f(I,J)=f1(I,J)+f2(I,J),用以所述原始基底函数i、j为一个构成元素的所述收缩基底函数I、J中包含的所有所述原始基底函数的和进行表示的福克矩阵F的所有矩阵元素F(I,J)的计算;令最外侧的循环为与满足R≤nmax(nmax是赋予n个收缩壳的编号的最大值)和T≤R关系的所述收缩壳R和T的组合相关的循环,令所述最外侧的循环的内侧的第2循环为与所述收缩壳S相关的循环,比所述第2循环更靠内侧的第3循环为与所述收缩壳U相关的循环,或令所述第2循环为与所述收缩壳U相关的循环,所述第3循环为与所述收缩壳S相关的循环,令所述收缩壳S的可取值范围小于或等于R,令所述收缩壳U的可取值范围小于或等于R,在所述第3循环的内侧执行的规定的2电子积分的计算和利用该结果的规定的福克矩阵元素的一部分的计算;在归拢所述第2和第3循环而形成一个作业单位、将各个所述作业单位分配到所述处理器中进行处理的并行处理方法中,所述作业通过向所述收缩壳R的轨道量子数高的作业分配小编号、向所述收缩壳R的轨道量子数低的作业分配大编号而形成。
该第7发明的并行处理方法中,采用非经验分子轨道计算的福克矩阵计算算法进行的福克矩阵的计算不受控于主计算机和处理单元之间的通信性能和主计算机的处理性能,可以高速进行计算。
该场合中,与收缩壳R和T相关的循环由主计算机控制,与R和T的组合的固定的S和U相关的循环部分分配给处理单元。
由于有R≥T、S、U的关系,R的编号大的收缩壳其循环次数也多。另一方面,R的编号小的收缩壳其循环次数也少。另外,轨道量子数高的壳其计算所必要的密度矩阵需要很多,通信量也增大相应的量,轨道量子数低的壳其密度矩阵变少,通信量也减少相应的量。
从而,如该第7发明,如果向收缩壳R的轨道量子数高的作业分配小的作业编号,向收缩壳R的轨道量子数低的作业分配大的作业编号,则可减少由运算处理和通信处理之和组成的作业的大小的波动。
从而,可以容易地向并行处理的多个处理单元进行有效的作业分配。
因而,在该第7发明的分子轨道计算的并行处理方法中,采用前述的第1发明、第2发明、第3发明、第4发明或第6发明的任何一个作业分配方法,通过向所述多个处理器分配所述作业,可以有效进行通信处理和运算处理,缩短处理结束的时间。
附图简述

图1是表示本发明实施例采用的计算机系统的一个例子的方框图。
图2是表示本发明实施例采用的计算机系统的其他例的方框图。
图3是以程序代码形式表示本发明实施例的RT并行算法的图。
图4是表示本发明实施例的RT并行算法的流程图。
图5是说明对本发明实施例采用的数据进行双缓冲时存储器区域的使用方法的图。
图6是表示本发明实施例中,从主计算机向处理单元发送的密度矩阵信息的格式的一个例子的图。
图7是表示本发明实施例的密度矩阵数据块的构成例的图。
图8是表示本发明第1实施例的分子轨道计算中并行处理器数和SCF计算的处理时间的关系的图。
图9是表示本发明第1实施例的分子轨道计算中并行处理器数和处理器运转率的关系的图。
图10是表示本发明第1实施例的分子轨道计算中各个并行处理器的处理的结束时间的图。
图11是表示效率低的处理方法和效率高的处理方法中通信处理和计算处理的进行状况的模式图。
图12是表示本发明第1实施例的分子轨道计算中每个作业发生的通信量和计算量的相关关系的图。
图13是表示本发明第2实施例采用的用以向处理单元分配作业的等待矩阵的示例的图。
图14是表示本发明第2实施例中并行处理器数和SCF计算的处理时间的关系的图。
图15是表示本发明第2实施例中并行处理器数和处理器运转率的关系的图。
图16是表示本发明第2实施例中各个并行处理器的处理的结束时间的图。
图17是说明本发明第3实施例中作业群分割方法和作业分配方法的图。
图18是表示本发明第3实施例中用以向处理单元分配作业的等待矩阵的示例的图。
图19是表示本发明第3实施例中并行处理器数和SCF计算的处理时间的关系的图。
图20是表示本发明第3实施例中并行处理器数和处理器运转率的关系的图。
图21是表示本发明第3实施例中各个并行处理器的处理的结束时间的图。
图22是说明本发明第4实施例中作业群分割方法和作业分配方法的图。
图23是表示本发明第4实施例中用以向处理单元分配作业的等待矩阵的示例的图。
图24是表示本发明第4实施例中并行处理器数和SCF计算的处理时间的关系的图。
图25是表示本发明第4实施例中并行处理器数和处理器运转率的关系的图。
图26是表示本发明第4实施例中各个并行处理器的处理的结束时间的图。
图27是本发明第5实施例中作业群分割方法和作业分配方法的说明图。
图28是表示本发明第5实施例中用以向处理单元分配作业的等待矩阵的示例的图。图29是表示本发明第5实施例中并行处理器数和SCF计算的处理时间的关系的图。
图30是表示本发明第5实施例中并行处理器数和处理器运转率的关系的图。
图31是表示本发明第5实施例中各个并行处理器的处理的结束时间的图。
图32是表示原始基底函数与其角动量、轨道指数、原子核座标的对应例的图。
图33~图39是表示非经验分子轨道计算法的说明中所采用的公式的图。
发明的最佳实施例以下,参照图说明将本发明的并行处理方法及其作业分配方法应用于在非经验分子轨道计算法中进行福克矩阵的计算算法的场合时的实施例。
在说明本发明的并行处理方法及其作业分配方法的实施例之前,对非经验分子轨道法、用于它的计算机系统的构成例以及该非经验分子轨道法中的福克矩阵的新计算算法进行说明。
在非经验分子轨道计算法中,将表示分子状态的波函数Ψ用相当于分子中的电子空间轨道的电子轨道函数φμ记述。这里,μ是表示多个分子轨道中的第μ个轨道的附加字符。如图33(公式1)所示,分子轨道φμ用原子轨道χI的线性组合近似表示。
这里,(公式1)中,I是表示多个原子轨道中的第I个轨道的附加字符。另外,原子轨道也称为基底函数。本说明书以下将原子轨道称为基底函数。另外,(公式1)出现的CIμ是线性组合系数。(公式1)中I的总和是关于构成作为计算对象的分子的全部基底函数的总和。
为了从量子力学的角度记述分子轨道,分子内的电子状态必须满足众所周知的泡利不相容原理。考虑电子的自旋,采用如图33的(公式2)的斯雷特矩阵式作为记述2n电子体系的分子状态Ψ的表达式,以满足泡利不相容原理。这里,(公式2)中,α(x)和β(x)分别表示第x个电子的自旋向上和向下的状态。
对2n电子体系的哈密顿算子H,用1电子部分H1与2电子部分H2之和的形式表示,如图33的(公式3)到(公式5)所示。
图33的(公式4)中,右边的(...)内的第1项为电子p的运动能,第2项为第p个电子与第A个原子核的相互作用。(公式4)中,∑p(本说明书中的∑i表示求出关于i的总和,以下同)是全部电子的总和,∑A是全部原子核的总和,ZA是原子核A的电荷,rpA是电子p与原子核A的距离。
另外,(公式5)表示电子p和电子q之间的相互作用,∑p∑q(>p)是关于2个电子的组合的总和,rpq是电子p、q间的距离。
如果利用上述的哈密顿算子H和(公式2)的斯雷特矩阵式,则分子能量的期望值ε可表示成如图34的(公式6)~(公式9)。
(公式6)中,∑μ和∑v是n个(n是正整数)分子轨道的总和。(公式7)称为“コア积分(core integration)”,以编号1的电子为代表进行书写。另外,(公式8)和(公式9)分别称为“库仑积分”和“交换积分”,以电子1和电子2为代表进行书写。另外,(公式6)到(公式9)中,dτ、dτ1、dτ2表示位置座标空间中的体积积分。
用基底函数重写(公式6),则如图35(公式10)~(公式13)所示。(公式13)表示的积分称为“2电子间排斥积分(反発積分)”或省略称为“2电子积分”。
(公式10)所示分子能量的期望值ε包含有CIμ未知数,这样无法获得数值。CIμ是(公式1)中的线性组合常数,μ是从1到n(分子轨道数)的整数,I是从1到N(N是基底函数的个数,为正整数)的整数。以下,以CIμ为元素的N×n矩阵C称为系数矩阵。
作为决定系数矩阵,使得期望值ε最小,求出基底状态的波函数Ψ的方法之一,可利用哈特里·福克·罗汤的变分法(以下称为HFR法)。省略其导出过程,作为HFR法的结果而获得的公式如图36的(公式14)~(公式18)所示。
FIJ、PKL分别称为福克矩阵元素和密度矩阵元素。以下的说明中有将它们表示成F(I,J)、P(K,L)的情况。它们令I、J、K、L各自具有从1到N的值,分别以N×N矩阵的形态进行表示。
通过求解(公式14),求出系数矩阵。(公式14)相对于从1到n的所有μ以及从1到N的所有I都存在,因而形成n×N个联立方程式。
在求解(公式14)而获得的系数矩阵C的计算中,采用密度矩阵P。如(公式18)所示,密度矩阵P从系数矩阵C计算。从而,具体的计算步骤为,首先,提供适当的系数矩阵C,利用它计算出密度矩阵P,并使用该密度矩阵P用(公式15)计算福克矩阵F,求解(公式14)的联立方程式,获得新的系数矩阵C。反复进行上述的计算直到作为密度矩阵P的起源的C和作为结果获得的C之间的差足够小,即变成自洽。该反复计算称为自洽计算(以下称为SCF计算)。
实际的计算中最消耗时间的是(公式15)的福克矩阵元素FIJ的计算。这是因为,必须对所有的I、J计算该(公式15),以及必须对各I、J的组合计算密度矩阵元素PKL的K、L的和。
SCF计算的方法有两种。一种叫磁盘存储SCF法,将第一次SCF计算时获得的2电子积分的值全部保存到磁盘,第二次开始从磁盘读取必要的2电子积分。另一种叫直接SCF法,在每次计算SCF时重新进行2电子积分的计算。
现在,由于磁盘容量的限制和访问时间的长短等,后者即直接SCF法的利用成为主流。在采用该直接SCF法的分子轨道计算中,由于每1次SCF计算必须进行大致与N4成比例的个数的2电子积分的计算,因而2电子积分计算的高速进行与分子轨道计算的高速化有直接的联系。
这里预先说明2电子积分G(I,J,K,L)、密度矩阵P(K,L)和福克矩阵F(I,J)的对称性。
从(公式13)可以明白,2电子积分具有如图26的(公式19)所示的对称性。从而,如果能够获得(公式19)内的其中一个数值,则可以获得其他7个数值。
另外,从图36的(公式18)可以明白P(K,L)=P(L,K),从图26的(公式15)和图25的(公式11)可以明白F(I,J)=F(J,I)。
非经验分子轨道法中,一般采用如图37的(公式20)所示的基底函数。该(公式20)中,r、n、R是矢量,带附加字符x、y、z者表示其分量。r是电子的座标,n是电子的角动量,R是原子核的座标。
nx+ny+nz=λ是角动量的大小,也叫轨道量子数。该轨道量子数λ为0时该轨道称为s轨道,为1时该轨道称为p轨道,为2时该轨道称为d轨道。
ζm是轨道指数,表示轨道的空间扩展状态。有用轨道指数不同的多个轨道的线性组合表示一个基底函数的场合,这样表示的基底函数称为收缩基底函数,线性组合系数dm称为收缩系数,与此相对,线性组合前图37的(公式21)形式的函数ψ称为原始基底函数。
按照惯例,收缩基底函数χ附上如I、J、K、L的大写字符编号,原始基底函数ψ附上如i、j、k、l的小写字符编号,本说明书中也依从该惯例。
轨道量子数为1时,收缩基底函数存在三种情况,即,n=(1,0,0),n=(0,1,0),n=(0,0,1)。同样地,轨道量子数为2时存在6种情况(或,根据基底函数的构成方式为5种)的收缩基底函数。
(公式20)中图37的(公式22)所示部分相同的多个收缩基底函数的集合称为收缩壳。p轨道的收缩壳由3个收缩基底函数构成,另外,d轨道的收缩壳由6个(或5个)收缩基底函数构成。为了方便,在s轨道的情况也将一个收缩基底函数的集合称为收缩壳。
(公式21)中exp[-ζ(r-R)2]的部分相同的原始基底函数的集合同样称为原始壳。通常向收缩壳赋予大写字母如R、S、T、U,向原始壳赋予小写字母如r、s、t、u,本说明书中也依照该惯例。
在实施分子轨道计算时,对每个构成作为计算对象的分子的原子预备轨道量子数不同的多个收缩壳,将这些所有的集合作为基底函数集进行利用。可以用原子核座标R和轨道量子数λ的组合(R,λ)表示一个收缩壳。
用收缩基底函数表示的2电子积分G(I,J,K,L)若采用原始基底函数,则可表示成图37的(公式23)。这里,g(i,j,k,l)可以表示成图37的(公式24)。
G(I,J,K,L)称为用收缩基底函数表示的2电子积分,g(i,j,k,l)称为用原始基底函数表示的2电子积分,以下的说明中,两者都有简称为2电子积分的场合。g(i,j,k,l)也具有图37的(公式25)所示的对称性。
原始基底函数ψ可以用其角动量n、轨道指数C、原子核座标R的组合惟一地表示。假设第i、j、k、l个原始基底函数具有图32所示表1的角动量、轨道指数、原子核座标。
为了避免复杂的说明,以下的说明中,分别用角动量a、b、c、d代替原始基底函数的编号i、j、k、l,将2电子积分表示成[ab,cd]。
根据文献1(S.Obara and A.Saika,JCP,vol.84,no.7,p.3964,1986)对利用上述预备的基底函数集计算2电子积分的有效方法进行说明。
首先,a、b、c、d全部为s轨道,即a=0a=(0,0,0),b=0b=(0,0,0),c=0c=(0,0,0),d=0d=(0,0,0)时,如图38的(公式26)~(公式34)所示求出(公式24)的2电子积分。
这里,(公式26)中出现的[··,··](m)为辅助积分,m是辅助指标,这将在后面说明。(公式27)的积分范围为从0到1。
另外,a、b、c、d不全为s轨道时,采用图39的(公式35)和(公式36)所示递推公式进行计算。
(公式35)中,附加字符i表示x或y或z分量。另外,1I是仅仅i分量为1、其他为0的矢量。而且,Ni(n)表示角动量n的i分量的值。(公式35)具有这样的性质,即,左边的辅助积分中出现的一个角动量在右边确实减少了1以上的量,另外,左边的辅助积分的辅助指标在右边增加了相同的量或仅仅增加了1。
辅助指标m为0时,辅助积分[··,··](m)与2电子积分[··,··]完全一致,可用于辅助2电子积分的计算。无论是包含多大角动量的基底函数的2电子积分,都可以反复利用(公式35)使角动量减少,直到最后全部角动量变成(0,0,0)的辅助积分。由于角动量为(0,0,0)的辅助积分可以用(公式26)计算,因而如果该数值与适当的系数相乘相加,则可获得2电子积分的数值。
实际的计算如下。
首先,根据(公式35),用8个以下的辅助积分表示2电子积分。这里出现的辅助积分也适用(公式35)。反复进行该步骤,将全部角动量变成(0,0,0)的辅助积分的步骤作为计算步骤记录下来。
接着,用(公式26)计算角动量为(0,0,0)的辅助积分,从其出发,按照先前的计算步骤计算辅助积分的数值,最后获得作为目的的2电子积分的数值。
(公式35)还具有另一个重要的性质,即,2电子积分中出现的4个角动量的组合如果相同,则即使轨道指数和原子核座标的组合不同,也能够采用完全相同的上述计算步骤。进行计算时,可以对应轨道指数和原子核座标仅仅改变与辅助积分相乘的系数。
如上所述,用必须计算的收缩基底函数表示的2电子积分的数相对于收缩基底函数的数N成为N4。而实际必须获得的数值是用原始基底函数表示的2电子积分的数,其总数可达到用收缩基底函数表示的2电子积分的数的数倍到数十倍(取决于构成收缩基底函数的原始基底函数的数,即收缩数)。
作为减少该个数的方法,首先可考虑利用(公式19)或(公式25)中记述的对称性。但是,即使用该方法达到最佳效率,2电子积分的计算量也只能为1/8。
另一个方法是积极排除从计算精度的角度可判断为不必要的2电子积分的计算的方法。不必要的2电子积分的判断可如下进行。
如上所述,所有的2电子积分的数值可根据(公式26)所示的所有角动量为(0,0,0)的辅助积分
(m)的数值进行计算。从而,可以用
(m)的数值判断2电子积分的数值对福克矩阵元素的数值的贡献是否达到计算误差的程度。而且,
(m)的数值的大小可以从(公式29)所示函数K(ζ,ζ’,R,R’)的值进行判断,而且函数K(ζ,ζ’,R,R’)的值可以从图39的(公式37)的大小进行判断。
从而,通过用(ζa,A,ζb,B)的数值的组合估计(公式26)的第一个函数K的大小,可以判断2电子积分[ab,**]的计算是否必要,另外,通过用(ζc,C,ζd,D)的数值的组合估计(公式26)的第二个函数K的大小,可以判断2电子积分[**,cd]的计算是否必要。
从而,将对不必要的2电子积分的计算进行排除称为“终止”。上述的例中,仅仅从a和b的信息进行判断并终止的场合也可称为用ab进行的终止,仅仅从c和d的信息进行判断并终止的场合也可称为用cd进行的终止。从而,仅仅从ab或cd可以判断是否终止,这是因为图29的(公式37)的最大值为1、下限值为0。通过进行这样的终止,必须计算的2电子积分变成大致与N2成比例的个数,可以显著减少计算量。
如上所述,在N大的场合,利用终止减少计算量的效果明显大于利用2电子积分的对称性的效果,通过采用该方法,可以显著缩短非经验分子轨道计算中福克矩阵计算所需的处理时间。
图1表示本实施例方法所适用的并行计算系统的一个例子的全体结构,其在先前说明的文献1中有说明。即,该系统通过共用总线3将多个处理单元2连接到主计算机1。
另外,图2表示本实施例方法所适用的并行计算系统的一个例子的全体结构,其在先前说明的文献2中有说明。图2示例的该系统通过串行总线13将多个板式计算机12以雏菊链的方式连接到主计算机11。采用如IEEE1394串行总线作为总线13。
各板式计算机12具有相互连接的多个处理单元14,同时还具有用以连接总线13和多个处理单元14的网桥15。
但是,在如图1或图2所示的文献1或文献2的系统中,可连接到各个并行处理单元2或14的存储器容量有限制。当前,各处理单元2或14最多可以连接数10兆字节(以下称为Mb)左右容量的存储器。
另外,采用上述具有较高通用性且廉价的IEEE1394串行总线作为连接主计算机1或11和各处理单元2或14的通信网的场合,其通信性能在目前的最佳性能至多可达到400兆字节/秒(以下称为Mbps)的程度。
本发明的实施例中,在这样构成的计算机系统中采用新的福克矩阵生成算法,可以不需要高的通信性能,且与各处理节点即处理单元连接的存储器即使只有上述的目前的容量也可进行高效计算。
图3说明以程序代码形式表示的可进行有效并行计算的福克矩阵生成算法。
为了方便说明,图3中记述了由与收缩壳R、S、T、U相关的4重循环和与其内部的收缩基底I、J、K、L相关的4重循环构成的算法,实际的算法中,令最外侧的循环为与满足R≤Nmax(Nmax是赋予N个收缩壳的编号的最大值。在赋予从0到N的编号时,Nmax=N。)和R≥T关系的收缩壳R和T的组合(RT)相关的循环。令第2循环为与收缩壳S相关的循环,第3循环为与收缩壳U相关的循环。在第3循环的内侧,进行函数值G(R,S,T,U)的计算和采用其结果的规定的福克矩阵元素F的一部分计算。
另外,也可以令第2循环与U相关,第3循环与S相关。即,虽然图3中与U相关的循环形成于与S相关的循环的内侧,但是也可以使该循环的顺序逆转。
与收缩壳R和收缩壳T的组合相关的循环在主计算机上控制,与收缩壳R和收缩壳T的组合固定的收缩壳S和收缩壳U相关的循环部分的处理分配给处理单元。归拢R和T固定的第2和第3两个循环,形成一个作业单位,使各个作业单位在多个处理单元2或14中进行处理。
这样,由于向多个处理单元进行的作业分配以RT对单位进行,因而以下的说明中将该算法称为RT并行算法。
此时,主计算机1或11执行所有的矩阵元素P的初始值的计算、与处理单元共同进行的SCF计算以及决定是否继续该SCF计算等。在SCF计算时,主计算机1或11执行向多个处理单元2或14分配R和T固定的作业单位的决定、应该向处理单元发送的矩阵P的一部分的矩阵元素的选择、向处理单元发送选择的矩阵元素、从处理单元发送来的矩阵F的一部分的矩阵元素的接收以及采用矩阵F进行的矩阵P的更新。
另一方面,处理单元2或14执行从主计算机1或11发送的矩阵P的一部分的矩阵元素的接收、与收缩壳S相关的循环的控制和与收缩壳U相关的循环的控制、函数G(R,S,T,U)或函数g(i,j,k,l)的计算、矩阵F的一部分的矩阵元素的计算以及向主计算机1或11发送矩阵F的一部分的矩阵元素。
收缩壳R取从0到Nshell-1的值、收缩壳S、T、U取从0到R的值。令I为属于R的所有收缩基底编号,J为属于S的所有收缩基底编号,K为属于T的所有收缩基底编号,L为属于U的所有收缩基底编号。
另外,图3中,假定收缩基底被赋予编号,使属于相同收缩壳的编号连续,令I、J、K、L的范围分别为从b_basis(R)到e_basis(R)、从b_basis(S)到e_basis(S)、从b_basis(T)到e_basis(T)、从b_basis(U)到e_basis(U)。
这里,b_basis(X)、e_basis(X)是属于收缩壳X的收缩基底的编号的最小值和最大值。在与收缩基底相关的4重循环的内部执行2电子积分G(·,J,K,L)的计算和福克矩阵元素的计算。这里采用的密度矩阵元素是以下4个P(K,L)、P(·,J)、P(K,J)、P(I,L),另外,计算的福克矩阵元素是以下4个F(·,J)、F(K,L)、F(I,L)、F(K,J)。
这里,由于I和K是分别形成收缩壳R和T的收缩基底,因而在作业分配时,它们固定成数个(收缩壳是s轨道时为1个,是p轨道时为3个,是d轨道时为6个)。J和L则任意。
图3中,为了简洁地记述代码,S和U取从0到R的R+1个的所有值进行书写,但实际上S和U并不是取该范围中的所有值。
属于R的所有收缩基底和属于S的所有收缩基底之间,用ab进行终止成立的场合下,由于可以省略所有的G(I,J,*,*)的计算,因而S不必取上述值。另外,与此同时,由于不利用P(I,J)、P(K,J),不计算F(I,J)、F(K,J),因而它们不必在主计算机和处理单元之间进行通信。
同样,属于T的所有收缩基底和属于U的所有收缩基底之间,用cd进行终止成立的场合下,由于可以省略所有的G(*,*,K,L)的计算,因而U不必取上述值。另外,与此同时,由于不利用P(I,L),P(K,L),不计算F(I,L),F(K,L),因而它们不必在主计算机和处理单元之间进行通信。
从而,不仅可以削减与S和U相关的循环次数、削减计算量,而且可以削减不必要的矩阵元素的通信、削减通信量。
用图4所示流程图说明采用RT并行算法的处理的流程。以下的说明中采用图2的系统。另外,图4中,由于主计算机11和处理单元14执行不同的处理,因而记述了不同的流程图。
另外,虽然以多个(典型为100个)处理单元14并行连接到主计算机11作为前提,但是由于它们根据同样的流程进行动作且它们之间的数据不相关,因而只表示了作为代表的一个处理单元14中的处理流程。另外,图4中虚线表示的箭头部分表示其后的处理不由其前面的处理支配,而是等待其他处理系统的信息输入。
首先,说明主计算机11的处理步骤。
主计算机11执行系数矩阵的初始设定(步骤S101)后,进入SCF循环。SCF持续循环直到新计算的系数矩阵变成自洽。
即,在SCF循环内,首先,根据(公式18)从系数矩阵计算密度矩阵(步骤S102)。然后,进入RT循环,首先确定分配给处理单元的RT对编号,即惟一表示两个收缩壳R和T的组合的编号(步骤S103)。该例的场合中,RT对编号由图39的(公式38)所示计算式确定。
根据图3的记述,RT对编号按照编号从小到大的顺序进行分配,但是也不必一定按照上述顺序,只要能对所有R、T的组合进行处理,则可以通过赋予编号或处理顺序,以任何顺序进行处理。
接着,将与上述的RT对编号对应的作业中必要的密度矩阵信息向被分配了该RT对编号的处理单元发送(步骤104),此时,考虑用ab和cd进行的终止,所有在处理单元的计算中不用的密度矩阵数据都不进行发送。
处理单元14接收来自该主计算机11的密度矩阵信息并存储到接收缓冲存储器(步骤S201)。然后,对于分配的(RT对)作业,控制与收缩壳S、U相关的循环,进行福克矩阵元素的计算(步骤S202),然后,计算结束后,将求出的福克矩阵信息存储到发送缓冲存储器,从该发送缓冲存储器向主计算机11发送该求出的福克矩阵信息(步骤S203)。
如上所述,某处理单元14中的处理结束后,主计算机11如果从该处理单元14接收了福克矩阵信息(步骤S105),则判断对所有的处理单元进行的RT对编号的分配和密度矩阵信息的发送是否结束(步骤S106),若未结束,则返回步骤S103,确定新的RT对编号的分配,将对应于该RT对编号的密度矩阵信息向该处理单元14发送。
反复进行同样的操作,主计算机11对所有的处理单元进行RT对编号的分配和密度矩阵信息的发送,等待从处理单元接收福克矩阵。
步骤S106中,若判断所有的RT对编号的处理结束,则主计算机11根据收集的福克矩阵信息求解图26的(公式14),计算新系数矩阵(步骤S107),然后,将新系数矩阵和其之前的系数矩阵比较,判断是否获得自洽的解(步骤S108),若两者十分一致,则判断获得自洽的解,结束计算。如果不一致,则从步骤S108返回步骤S102,根据(公式18)生成新的密度矩阵,重复同样的操作。
另外,为了尽可能用计算处理隐蔽通信处理,频繁使用的数据的双缓冲也可适用于RT并行算法中。
如图5所示,在各处理单元具有的存储器中,将用于存储密度矩阵信息和福克矩阵信息的区域预先分割成A和B两块。
然后,决定分别将用密度矩阵信息存储区域A存储的密度矩阵元素计算(以下,将该计算称为类型A的计算)的福克矩阵元素存储到福克矩阵信息存储区域A,用密度矩阵信息存储区域B存储的密度矩阵元素计算(以下,将该计算称为类型B的计算)的福克矩阵元素存储到福克矩阵信息存储区域B。
使对应于一个RT对编号的作业与类型A或类型B的计算的任何一个相对应,类型A的计算作业结束后开始类型B的计算,类型B的计算作业结束后开始类型A的计算。
在类型A的计算时,将刚刚进行的类型B的计算作业的计算结果保持在福克矩阵信息存储区域B中,另外,密度矩阵信息存储区域B成为可自由改写的区域。
从而,在类型A的计算作业执行过程中,可将刚刚获得的计算结果从福克矩阵信息存储区域B读出并向主计算机发送,另外,可从主计算机接收下一个类型B的计算作业中使用的信息并写入密度矩阵信息存储区域B。类型B的计算作业的执行过程中也可以利用区域A进行同样的数据收发动作。
通过采用这样的双缓冲机构,如果可以在计算作业的处理中完成数据收发处理,则可以用计算处理隐蔽通信处理,进行有效的处理。以下所示的计算例中都进行该双缓冲。
下面用图6和图7说明密度矩阵信息的构成。
图6表示从主计算机11向处理单元14发送的密度矩阵信息的格式的一例。从收缩壳R的编号到收缩壳W[Nw-1]的编号为止为整数型数据,从与收缩壳V
相关的密度矩阵数据块到与收缩壳W[Nw-1]相关的密度矩阵数据块为由一个或多个浮点型数据或定点型数据构成的块。
通过图6中从上向下的两个收缩壳R和收缩壳T的编号,确定接收了密度矩阵信息的处理单元14应处理的RT对编号。
收缩壳R和T的编号之后是表示收缩壳的集合V和收缩壳的集合W的元素数的两个整数型数据Nv和Nw。收缩壳V是其包含的收缩基底和收缩壳R包含的收缩基底的组合中,至少一个用ab进行的终止后剩余的编号,即用收缩壳S的循环可获得S的收缩壳编号。
同样,收缩壳W是其包含的收缩基底和收缩壳R包含的收缩基底的组合中,至少一个用cd进行的终止后剩余的编号,即用收缩壳U的循环可获得U的收缩壳编号。
图7表示密度矩阵数据块的结构例。该结构例是作为代表例表示的与收缩壳V
相关的密度矩阵数据块。
收缩壳的轨道量子数大于1时,与该收缩壳相关的密度矩阵数据块还由与收缩基底相关的子块构成。图7所示例是构成收缩壳V
的收缩基底为m+1个即M0(V
),M1(V
),...,Mm(V
)的情况,与各个收缩基底相对应的子块为m+1个。
一个子块还分成两个区域。一个是将从构成收缩壳R的收缩基底I0(R)到Ii(R)和M0(V
)作为指标的密度矩阵元素的区域。另一个是将从构成收缩壳T的收缩基底K0(T)到Kk(T)和M0(V
)作为指标的密度矩阵元素的区域。这里,i+1、k+1分别是构成收缩壳R、T的收缩基底的个数,它们取决于收缩壳R、T的轨道量子数。这些区域包含的密度矩阵元素的个数由收缩壳R和T的轨道量子数确定,从而,一组密度矩阵信息中,任何子块都为相同的大小。
另外,虽然省略了说明,福克矩阵信息的结构也相同,且其数据量与密度矩阵信息相同。
[关于各作业的形成方法和编号附加]从上述的说明可以明白,可分配到处理单元的作业不仅是计算处理,且包含与主计算机的通信处理。
该实施例中,形成各作业,使得计算处理和通信处理之和组成的作业的大小(size)的波动变小,尽可能使作业的大小变得均等。另外,由于各处理单元具有的存储器的容量有限制,因而形成各作业,使得该存储器保持的密度矩阵和福克矩阵的元素数尽可能少。从而,该实施例形成如下的形态。
如上所述,该实施例中,作业以RT对单位向处理单元分配。如果RT对确定,则收缩壳S和U的循环次数也确定。即,R大的场合,S和U的循环次数变多,R小的场合,S和U的循环次数变少。这里,向R大的作业分配轨道量子数低的壳,向R小的作业分配轨道量子数高的壳。
从而,在RT对的R大的作业的场合,S和U的循环次数虽然变多,但是由于向该作业分配的收缩壳的轨道量子数低,因而与其内部的收缩基底相关的循环次数变少。相反,在R小的作业的场合,虽然S和U的循环次数变少,但是由于收缩壳的轨道量子数高,因而与其内部的收缩基底相关的循环次数变多。从而,取决于由RT对决定的作业的计算量的波动变小。
另外,在RT对的R的编号大的作业的场合,虽然图6的Nv、Nw变大,但是由于分配给该作业的收缩壳的轨道量子数低,因而密度矩阵信息的数据量不会变得过多,结果,取决于作业的通信量的波动变小。
从而,可以减少作业的大小的波动。
另外,在RT对的R的编号大的场合,由于Nv、Nw变大,因而有必要减少子块的数据量,以抑制全体的容量。如前所述,子块的数据量取决于轨道量子数,与轨道量子数低的收缩壳相关的子块其数据量变少。
该实施例中,RT对的R的编号大的收缩壳的轨道量子数被降低。相反,在RT对的R的编号小的场合,由于Nv、Nw小,因而不必减少子块的数据量,编号小的收缩壳的轨道量子数被升高。
从而,通过这样将轨道量子数高的壳分配给编号小的收缩壳,将轨道量子数低的壳分配给编号大的收缩壳,即使在容量小的存储器中也可以适用于大规模的分子轨道计算。
该实施例中,由于作业以RT对单位分配给处理单元,因而作业编号与RT对编号一致。如前述,RT对编号虽然可以任意决定,但是,例如如果由图39的(公式38)决定,则可按照R、T的大小以从小到大的顺序赋予作业编号。
该例中采用图2所示计算机系统。该例中,以3残基肽Glycine-Alanine-Glutamine(以下,记为GAQ。分子式C10H18N4O5)为计算对象,用6-311++G(3d,2p)作为基底函数。
该例中,收缩壳的个数Nshell为336,其中,轨道量子数为0的s轨道的壳为167,轨道量子数为1的p轨道的壳为112,轨道量子数为2的d轨道的壳为57。
该例中,将收缩壳编号0到56分配给d轨道的壳,将57到168分配给p轨道的壳,将169到335分配给s轨道的壳。
而且,该例中,RT对的编号,即,作业编号由图39的(公式38)决定,按照RT对编号从小到大的顺序向处理单元进行作业分配。
根据该例,用RT并行算法仅仅执行1次SCF循环时所需处理时间和处理单元数的关系的一个例子形成如图8所示的情况。
图8中,虚线所示直线表示处理时间与处理单元数成反比例减少的理想情况。该第1例中,可判断当处理单元数增加到100附近时,离开理想直线,变成了不是可伸缩的并行处理。
另外,图9表示该第1例中,全体处理时间中处理单元进行处理的时间所占的比例(运转率),处理器数从100附近开始,运转率下降。
该原因可认为是,相对于随着处理单元数的增加,系统全体的计算处理能力提高,主计算机和处理单元之间的通信性能维持一定的情况下通信量增大,从而通信时间超过计算时间,处理单元等待数据接收而不进行计算的时间增大。
成为不是可伸缩的又一个原因可认为是向并行处理器分配计算负荷不均一。但是,从图10所示的全部处理单元中处理结束时间的分布,可以明白计算负荷的分配大致均一。
并行处理单元中计算时间的合计为36389秒,若将其平均分配给100个处理器则变成363.89秒的计算处理。相对地,通信时间的合计为363.02秒,与计算时间大致相等。
但是,如图10所示,第1例的并行处理中各处理单元的计算时间变成420秒左右。因而,可以说第1例的并行处理的效率差。
图11是表示通信处理和单一处理单元中计算处理的进行状况在处理效率低和处理效率高的情况下的比较模式图。图11中,网点部分为正在进行处理的时间带。该网点部分的合计长度在通信时和计算时相同,另外,在效率低的场合和高的场合也相同。
在效率低的处理的场合中,如图中的空白部分所示,产生既不进行通信也不进行计算处理的时间带。从而,全体的到处理结束的时间变长。相对地,如果进行效率高的处理,则通信处理和计算处理都不停止,处理结束的时间变短。
图12表示上述的第1例中每个作业发生的计算时间和通信时间的关系。该图12是按作业编号从全部56616个作业中等间隔地抽出100个作业而绘制的。如图12中的参照指标所示,对应作业中的收缩壳R和T的轨道量子数的组合,绘制的形状发生变化。例如,收缩壳R的轨道量子数为1即p轨道、收缩壳T的轨道量子数为2即d轨道的场合的组合(pd)绘制成黑正方形的点。
从该图12可以判断,作业的大小的波动即使小,通信时间和计算时间的比例(比)也因作业而异。图12中的点划线是通信时间和计算时间之比为0.01的线。处理单元数为100时,如果通信时间和计算时间之比在该线以下的作业很多,则通信量变大,在计算处理中产生等待。相反,如果通信时间和计算时间之比在该线以上的作业很多,则计算量变大,变得容易隐蔽通信处理。
如上所述,在全体的通信时间和计算时间大致相等的场合,则无论在任何时刻,若控制作业的分配,使与在该时刻并行处理的作业相关的通信量和计算量之比的平均值落在点划线上,则可以进行效率高的并行处理。
另外,该例中,收缩壳编号的确定方法如上所述,以轨道量子数高的壳取小编号、轨道量子数低的壳取大编号进行分配,在R大的场合,由于不会使密度矩阵信息的数据量变得过多,因而取决于作业编号的通信量的波动变小。另外,如上所述,采用上述收缩壳编号的确定方法时,取决于作业编号的计算量的波动也变小。
如果收缩壳编号不是以轨道量子数高的壳取小编号、轨道量子数低的壳取大编号进行分配,则计算时间和通信时间的取决于作业编号的波动变得比图12所示更大,向多个处理单元均等地分配负荷变得更加困难。
考察图12所示每个作业的计算时间和通信时间的关系,可以明白收缩壳R、T都是s轨道的场合全部位于点划线以上的区域,而收缩壳R为s轨道、收缩壳T为p轨道的场合的一部分在点划线以上的区域。
通过进一步考察可以明白,由图39的(公式38)决定的作业编号如果大于约35000,则绘制曲线在点划线以上,如果作业编号小于约35000,则绘制曲线在点划线以下。即,RT对编号小的作业其通信时间与计算时间之比大,RT对编号大的作业其通信时间与计算时间之比小。
以下说明的第2实施例到第5实施例也象上述实施例一样形成,使得计算时间和通信时间的波动变小,同时,利用由图39的(公式38)决定的作业编号的作业中具有的如上述图12所示的性质,进行更有效的作业分配。
根据上述的考察,通过使编号小的作业和编号大的作业混合来进行分配,可以期望实现通信负荷在时间上的分散。该第2实施例中,生成图13所示的分配等待矩阵,向并行处理单元2或14进行分配。
为了简单说明,图13所示例中表示了全部作业数N为33的场合的分配等待矩阵。图13中,括号外的数字为作业编号,它相当于分子轨道计算中的RT并行算法中的RT对编号。另外,括号内的数字表示进行作业分配的顺序。
主计算机参照该等待矩阵,以该等待矩阵的从上到下的顺序将作业编号读出,同时向处理单元分配作业。
这里,令最初的作业为编号0的作业,以后,若令前面的编号为J,·若J在N/2以下,则将编号为N-J-1的作业·若J在N/2以上,则将编号为N-J的作业作为下一次向处理单元分配的作业。
从而,RT对编号小、通信时间与计算时间之比大的作业和RT对编号大、通信时间与计算时间之比小的作业交互进行分配。从而,与多个处理单元并行处理的作业相关的通信量与计算量之比的平均值为处理单元个数的倒数,处理单元数为100时大约为0.01,可以进行有效的并行处理。
图14表示采用第2实施例的作业分配方法的并行处理方法的计算中,处理时间和处理单元数的关系。作为该例的计算对象的分子和采用的基底函数,与共同表示图8结果的第1实施例中的计算对象和基底函数相同,分别为GAQ和6-311++G(3d,2p)。
与图8的结果相比较,处理单元数为100附近的计算时间约缩短了9%,可实现比前述的第1实施例更高速的处理。
图15表示该第2实施例的场合中的处理单元的运转率和处理单元数的关系,与第1实施例的说明中的图9对应。
从两者的比较可以判断,第2实施例的场合中,与第1实施例的例子相比较,在处理单元数为100附近的运转率变高。
另外,该第2实施例中,处理单元数为100时,各处理单元的处理结束时间如图16所示。这与第1实施例的图10对应。可判断为能向并行处理单元均等地分配负荷,结束时间的波动变小。
另外,令分配等待矩阵的最前面的作业为RT对编号最大的作业,以后,若令前面的编号为J,·若J在N/2以下,则将编号为N-J的作业·若J在N/2以上,则将编号为N-J-1的作业作为下一个向处理单元分配的作业。在该场合也可以获得与上述同样的效果。
另外,令任意编号的作业为最前面的作业,以后,若令前面的编号为J,·若J在N/2以下,则将编号为N-J-1的作业·若J在N/2以上,则将编号为N-J的作业作为下一个分配的作业,若其编号小于0或大于最大的RT对编号,则从最大的RT对编号的一半的编号的作业重新开始,以同样的步骤确定下一次的作业编号,或者采用其他类似的方法,生成分配等待矩阵,也可获得同样的效果。
另外,第2实施例中,决定下一次分配的作业的编号时的条件中用于记述的除法是求出的商保留到小数点以下的准确的除法,与第3实施例以后所采用的整除不同。
第3实施例中,将多个处理单元分成群的同时,与之对应,将多个作业也分成相同数量的群,对各群分别准备分配等待矩阵。
即,将多个处理单元分割成G个(G是2以上的整数)处理器群,群内的处理单元数大致相等,同时,将多个作业分割成与处理器群数相同的G个作业群,群内的作业数大致相等。
然后,使处理器群和作业群一一对应,一个作业群内的作业分配给对应的一个处理器群内的处理单元。
该分配方法中,首先,将通信时间与运算时间组成的作业大小和通信时间与运算时间之比彼此近似的作业分别分配给不同的作业群。而且,作业大小和通信时间与运算时间之比近似的作业以在各个处理器群中的分配顺序不重叠的状态分配到各个作业群内,即其在多个作业群中的分配顺序互不相同。
在群数G为4、作业数N为33的简单的场合,用图17和图18对该第3实施例的场合的多个作业群中一一对应的多个等待矩阵的生成方法的具体例进行说明。
与前述例相同,图17、图18中,括号外的编号表示作业编号即RT对编号,括号内的编号表示在分配到相同等待矩阵的作业群内进行分配的顺序。
首先,如图17所示,向与作业编号J除以作业群数(等待矩阵数)G时的余数相当的编号g的群分配各作业。这里,在各等待矩阵内,该分配的作业暂时按照编号顺序排列。
接着,用作业编号J除以群数G(使用舍去小数点以下位的整除,以下同)时的商进行分块。图17的例中,各块编号b为该商。
这里,隶属各块编号b的多个作业的作业编号接近,如图12所示,作业大小且计算时间与计算时间之比变得近似,这些作业分配给各不相同的等待矩阵。
全部作业数N除以群数G的商为B时,全部作业数N为群数G的倍数的场合下,块数变成B,而在非上述的场合下,块数变成B+1。后者的场合中,存在有最后的块有作业编号的等待矩阵和最后的块无作业编号的等待矩阵。
接着,第g个作业群(第g个等待矩阵)内的作业中,令B除以群数G的商为x,将大于或等于x×g而小于x×(g+1)的编号的作业块中包含的作业作为最初的作业。这是因为相同块内的作业在多个作业群中的顺序不同。
图14的例中,因为B=N/G=33/4=8,x=B/G=8/4=2,如果是第0等待矩阵的作业群,则从大于或等于x×g=2×0=0而小于x×(g+1)=2×1=2的编号0或1的块中选择开始作业。该例中,选择适合上述条件的最小的编号作为开始作业。
以下所示计算例中也采用该方式,但也可以从适合条件的编号中任意选择开始编号。
接着,各作业群中,就要分配完的作业包含在第b个作业块的场合时,以第b+1个作业块内的作业作为下一次的作业编号。但是,如果第b+1个作业块内没有第g个群内的作业,则以第0个作业块内的作业作为下一次作业。
图14的例中,第1等待矩阵的作业群中,b=6的第6个块包含的编号25的作业的下一次作业变成b+1=7的第7个块包含的编号29的作业,其下一次作业变成第0个块内的编号1的作业(由于没有第8个块包含的第1个群的作业)。
另外,该例中,下一次作业为第b+1个作业块内的作业,但是下一次作业也可以为第b-1个作业块内的作业。该场合中,b-1如果为负,则包含有第g个群的作业的最大编号的作业块内的作业作为下一次作业。
图18表示如上所述确定顺序、根据各作业群内的分配顺序重排作业编号后各作业群的等待矩阵。
图19表示第3实施例的计算中处理时间和处理单元数的关系。
作为计算对象的分子、采用的基底函数与第1实施例相同。另外,令各处理单元的运算处理能力彼此相同,5个处理单元构成一个处理器群。
从该图19可以判断,根据该第3实施例,与图8的结果比较,处理单元数为100附近的计算时间约缩短了12%,可实现比第2实施例更高速的处理。
图20表示该第3实施例的场合的计算例中处理单元的运转率和处理单元数的关系,与第1实施例说明中的图9对应。根据该图,与第1实施例比较,在处理单元数为100附近时运转率变高,接近100%。
另外,图21表示该第3实施例中,处理单元数为100的场合的各处理单元的处理结束时间。虽然结束时间的波动为4秒左右,但是可大致均等地向并行处理单元分配负荷。
第4实施例在将处理单元分成群、对各群准备分配等待矩阵的方面与第3实施例相同,但是处理单元的分群方法与第3实施例不同。
在群数G为4、作业数N为33的简单的场合,用图22和图23对该第4实施例的场合的多个作业群分别对应的等待矩阵的生成方法进行说明。另外,图22、图23中,括号外的编号表示作业编号即RT对编号,括号内的编号表示在分配到相同等待矩阵的作业群中进行分配的顺序,与前述实施例相同。
首先,如图22所示,分配各作业,使得作业编号J除以作业群数(等待矩阵数)G的2倍即2×G时的余数等于g或2×G-g-1的作业包含在编号g的群中。在各等待矩阵内,分配的作业暂时按照编号顺序排列。
接着,用作业编号J除以群数G(使用舍去小数点以下位的整除,以下同)时的商进行分块。图22中,各块编号b为该商。
全部作业数N除以群数G的商为B时,全部作业数N为群数G的倍数的场合下,块数变成B,而在非上述的场合下,块数变成B+1。后者的场合中,存在有最后的块有作业编号的等待矩阵和最后的块无作业编号的等待矩阵。
接着,第g个作业群(第g个等待矩阵)内的作业中,令B除以群数G的商为x,将大于或等于x×g而小于x×(g+1)的编号的作业块中包含的作业作为最初的作业。这是因为相同块内的作业在多个作业群中的顺序不同。
图22的例中,因为B=N/G=33/4=8,x=B/G=8/4=2,如果是第0等待矩阵的作业群,则从大于或等于x×g=2×0=0而小于x×(g+1)=2×1=2的编号0或1的块中选择开始作业。该例中,选择适合上述条件的最小的编号作为开始作业。
以下所示计算例中也采用该方式,但也可以从适合条件的编号中任意选择开始编号。
接着,各作业群中,就要分配完的作业包含在第b个作业块的场合时,以第b+1个作业块内的作业作为下一次的作业编号。但是,如果第b+1个作业块内没有第g个群内的作业,则以第0个作业块内的作业作为下一次作业。
图22的例中,第1等待矩阵的群中,b=6的第6个块包含的编号25的作业的下一次作业变成b+1=7的第7个块包含的编号30的作业,其下一次作业变成第0个块内的编号1的作业(由于没有第8个块包含的第1个群的作业)。
另外,该例中,下一次作业为第b+1个作业块内的作业,但是下一次作业也可以为第b-1个作业块内的作业。该场合中,b-1如果为负,则包含有第g个群的作业的最大编号的作业块内的作业作为下一次作业。
图23表示如上所述确定顺序、根据各作业群内的分配顺序重排作业编号后各作业群的等待矩阵。
图24表示第4实施例的计算中处理时间和处理单元数的关系。作为计算对象的分子、采用的基底函数与第1实施例相同。另外,令各处理单元的运算处理能力彼此相同,5个处理单元构成一个处理器群。
从图24可以判断,根据该第4实施例,与图8的结果比较,处理单元数为100附近的计算时间约缩短了12%,可实现比第2实施例更高速的处理。
图25表示该第4实施例的场合的计算例中处理单元的运转率和处理单元数的关系,与第1实施例说明中的图9对应。根据该图,与第1实施例比较,在处理单元数为100附近时运转率变高,接近100%。
另外,图26表示该第4实施例中,处理单元数为100的场合的各处理单元的处理结束时间。虽然结束时间的波动为3.5秒左右,但是可大致均等地向并行处理单元分配负荷。
第5实施例在将处理单元和作业分成一一对应的群、对各群准备分配等待矩阵的方面与第3和第4实施例相同,另外,处理单元的分群方法与第3实施例相同,但是群内的分配顺序的确定方法与第3和第4实施例不同。
在群数G为4、作业数N为65、各群的处理单元数为2的简单的场合,用图27和图28对该第5实施例的场合的多个作业群分别对应的等待矩阵的生成方法进行说明。另外,图27、图28中,括号外的编号表示作业编号即RT对编号,括号内的编号表示在分配到相同等待矩阵的作业群中进行分配的顺序,与前述实施例相同。
首先,如图27所示,分配各作业,使得作业编号J除以作业群数(等待矩阵数)G时的余数等于g的作业包含在编号g的群中。该分配方法与第3实施例相同,但也可以用与第4实施例相同的方法进行分配。在各等待矩阵内,分配的作业暂时按照编号顺序排列。
接着,用作业编号J除以群数G(使用舍去小数点以下位的整除,以下同)时的商进行分块。图22中,各块编号b为该商。
全部作业数N除以群数G的商为B时,全部作业数N为群数G的倍数的场合下,块数变成B,而在非上述的场合下,块数变成B+1。后者的场合中,存在有最后的块有作业编号的等待矩阵和最后的块无作业编号的等待矩阵。
接着,第g个作业群(第g个等待矩阵)内的作业中,令B除以G的商为x,且令x除以分配到群内的处理单元数m的商为y,将大于或等于y×g而小于y×(g+1)的编号的作业块中包含的作业作为最初的作业。这是因为相同块内的作业在多个作业群中的顺序不同。
图27的例中,因为B=N/G=65/4=16,x=B/G=16/4=4,y=x/m=4/2=2,如果是第0等待矩阵的作业群,则从大于或等于y×g=2×0=0而小于y×(g+1)=2×1=2的编号0或1的块中选择开始作业。该例中,选择适合上述条件的最小的编号作为开始作业。
以下所示计算例中以选择适合上述条件的最小编号的方式进行,但也可以从适合条件的编号中任意选择开始编号。另外,选择开始作业的块的条件也可以与第3或第4实施例相同。
接着,各作业群中,就要分配完的作业包含在第b个作业块的场合时,以第b+B/m个作业块内的作业作为下一次的作业编号。但是,如果第b+B/m个作业块内没有第g个群内的作业,则以编号等于b+1除以(B/m)的余数的作业块内的作业作为下一次作业。
图27的例中,第1等待矩阵的群中,b=7的第7个块包含的编号29的作业的下一次作业变成b+(B/m)=7+(16/2)=15的第15个块包含的编号61的作业。令b=15,b+(B/m)=15+(16/2)=23,由于没有第23个块包含的第1个群的作业,因而其下一次作业变成与b+1=16除以(B/m)=8的余数相等的第0个块内的编号1的作业。
另外,该例中,下一次作业为第b+B/m个作业块内的作业,但是下一次作业也可以为第b-B/m个作业块内的作业。该场合中,如果b-B/m为负且b=0,则其编号除以(B/m)后的余数等于(B/m)-1的作业块中包含有第g个群的作业的最大编号的作业块内的作业作为下一次作业,如果b-B/m为负且b不为0,则其编号除以(B/m)后的余数与b-1除以(B/m)后的余数相等的作业块中包含有第g个群的作业的最大编号的作业块内的作业作为下一次作业。
图28表示如上所述确定顺序、根据各群内的分配顺序重排作业编号后的等待矩阵。
图29表示第5实施例的计算中处理时间和处理单元数的关系。作为计算对象的分子、采用的基底函数与第1实施例相同。另外,令各处理单元的运算处理能力彼此相同,5个处理单元构成一个处理器群。
从图29可以判断,根据该第5实施例,与图8的结果比较,处理单元数为100附近的计算时间约缩短了13%,可实现比第3、第4实施例更高速的处理。
图30表示该计算例中处理单元的运转率和处理单元数的关系,与第1实施例说明中的图9对应。根据该图,与以前的实施例比较,在处理单元数为100的附近运转率变高,接近100%。
另外,图31表示该第5实施例中,处理单元数为100的场合的各处理单元的处理结束时间。可以确认结束时间的波动减少到1.5秒左右,并可以均等地向并行处理单元分配负荷。
虽然以上说明的第3、第4、第5实施例中由具有相同运算处理性能的5个处理单元构成处理器群,但是没有必要将处理单元的个数限于此。
另外,所有的处理单元的运算处理性能不必相同,例如,可以用两个具有2倍运算处理性能的处理单元构成一个处理器群,用4个具有1倍运算处理性能的处理单元构成其他处理器群等,使得各群之间,处理器群内的总的运算处理性能相同。
另外,上述实施例中,以用非经验分子轨道计算中的RT并行算法的情况为例进行了本发明的说明,但是在其他并行处理中也可以应用本发明。
权利要求
1.一种并行处理方法中的作业分配方法,其特征在于,在利用由主计算机和通过共用总线与该主计算机连接的多个处理器构成的计算机系统,将由所述主计算机与所述处理器之间的通信处理和所述处理器中的运算处理组成的多个作业通过所述多个处理器进行并行处理的并行处理方法中,将所述多个处理器分割成G个(G是大于或等于2的整数)处理器群,群内的所述处理器个数大致相等,同时将所述多个作业分割成G个作业群,群内的所述作业个数大致相等,使所述处理器群和所述作业群一一对应,一个作业群内的作业分配给对应的一个处理器群内的处理器,使由所述通信时间和所述运算时间组成的大小与所述通信时间和所述运算时间之比近似的作业分别属于所述各个不同的作业群,同时,将由所述通信时间和运算时间组成的大小与所述通信时间和所述运算时间之比近似的作业分配到所述各个作业群内,其分配顺序在所述多个作业群中互不相同。
2.如权利要求1所述的并行处理方法中的作业分配方法,其特征在于在该方法中,用从N(N是整数)到M(大于N的整数)的连续整数对所述多个作业进行编号,第g个作业群由在所述作业的编号被从0开始的编号替换时其编号除以所述G后的余数等于g的作业构成,分配各作业,使得所述通信时间和所述运算时间之比的平均值为规定值。
3.如权利要求1所述的并行处理方法中的作业分配方法,其特征在于在该方法中,用从N(N是整数)到M(大于N的整数)的连续整数对所述多个作业进行编号,第g个作业群由在所述作业的编号被从0开始的编号替换时,作业编号除以2×G后的余数等于g的作业以及作业编号除以2×G后的余数等于(2×G-g-1)的作业构成,分配各作业,使得所述通信时间和所述运算时间之比的平均值为规定值。
4.如权利要求2所述的并行处理方法中的作业分配方法,其特征在于在该方法中,在构成第g个作业群的作业中,最初向处理器分配的作业是由作业编号J除以处理器群个数G的商彼此相等的作业构成并在利用该商以大于或等于0、小于或等于B=(M-N+1)/G的整数编号的作业块中,具有大于或等于(B/G)×g、小于(B/G)×(g+1)的编号的作业块中所包含的编号的作业。
5.如权利要求3所述的并行处理方法中的作业分配方法,其特征在于在该方法中,在构成第g个作业群的作业中,最初向处理器分配的作业是由作业编号J除以处理器群个数G的商彼此相等的作业构成并在利用该商以大于或等于0、小于或等于B=(M-N+1)/G的整数编号的作业块中,具有大于或等于(B/G)×g、小于(B/G)×(g+1)的编号的作业块中所包含的编号的作业。
6.如权利要求2所述的并行处理方法中的作业分配方法,其特征在于在该方法中,构成对应处理器群的处理单元数为m的第g个作业群所包含的作业中,最初向处理器分配的作业是由作业编号J除以处理器群个数G的商彼此相等的作业构成并在利用该商以大于或等于0、小于或等于B=(M-N+1)/G的整数编号的作业块中,具有大于或等于(B/G/m)×g、小于(B/G/m)×(g+1)的编号的作业块中所包含的编号的作业。
7.如权利要求3所述的并行处理方法中的作业分配方法,其特征在于在该方法中,构成对应处理器群的处理单元数为m的第g个作业群所包含的作业中,最初向处理器分配的作业是由作业编号J除以处理器群个数G的商彼此相等的作业构成并在利用该商以大于或等于0、小于或等于B=(M-N+1)/G的整数编号的作业块中,具有大于或等于(B/G/m)×g、小于(B/G/m)×(g+1)的编号的作业块中所包含的编号的作业。
8.如权利要求4所述的并行处理方法中的作业分配方法,其特征在于在该方法中,当第g个作业群中,就要分配完的作业包含在第b个作业块中时,若第(b+1)个作业块中有第g个作业群的作业则将第(b+1)个作业块内的作业,或者若第(b+1)个作业块中没有第g个作业群的作业则将第0个作业块内的作业,或者,若(b-1)大于或等于0则将第(b-1)个作业块内的作业,或者若(b-1)不是大于或等于0则将第g个作业块内的未分配的最大编号的作业,作为所述第g个作业群的下一个作业进行分配。
9.如权利要求5所述的并行处理方法中的作业分配方法,其特征在于在该方法中,当第g个作业群中,就要分配完的作业包含在第b个作业块中时,若第(b+1)个作业块中有第g个作业群的作业则将第(b+1)个作业块内的作业,若第(b+1)个作业块中没有第g个作业群的作业则将第0个作业块内的作业,或者,若(b-1)大于或等于0则将第(b-1)个作业块内的作业,若(b-1)不是大于或等于0则将第g个作业块内的未分配的最大编号的作业,作为所述第g个作业群的下一个作业进行分配。
10.如权利要求6所述的并行处理方法中的作业分配方法,其特征在于在该方法中,当第g个作业群中,就要分配完的作业包含在第b个作业块中时,若第b+(B/m)个作业块中有第g个作业群的作业则将第b+(B/m)个作业块内的作业,若第b+(B/m)个作业块中没有第g个作业群的作业则将编号等于b+1除以(B/m)后的余数的作业块内的作业,或者,若b-(B/m)大于或等于0则将第b-(B/m)个作业块内的作业,若b为0则将其编号除以(B/m)后的余数等于(B/m)-1的作业块中、包含第g个作业群的作业的最大编号的作业块内的作业,若b不为0则将其编号除以(B/m)后的余数等于(b-1)除以(B/m)后的余数的作业块中、包含第g个作业群的作业的最大编号的作业块内的作业,作为所述第g个作业群的下一个作业进行分配。
11.如权利要求7所述的并行处理方法中的作业分配方法,其特征在于在该方法中,当第g个作业群中,就要分配完的作业包含在第b个作业块中时,若第b+(B/m)个作业块中有第g个作业群的作业则将第b+(B/m)个作业块内的作业,若第b+(B/m)个作业块中没有第g个作业群的作业则将编号等于b+1除以(B/m)后的余数的作业块内的作业,或者,若b-(B/m)大于或等于0则将第b-(B/m)个作业块内的作业,若b为0则将其编号除以(B/m)后的余数等于(B/m)-1的作业块中、包含第g个作业群的作业的最大编号的作业块内的作业,若b不为0则将其编号除以(B/m)后的余数等于(b-1)除以(B/m)后的余数的作业块中、包含第g个作业群的作业的最大编号的作业块内的作业,作为所述第g个作业群的下一个作业进行分配。
12.一种并行处理方法,它是采用由主计算机和多个处理器构成的计算机系统进行分子轨道计算的方法,所述分子轨道计算是计算用n个(n是正整数)收缩壳表示的分子的能量,该方法的特征在于它执行以下计算,即,将收缩壳R、S、T、U分别包含的原始壳r、s、t、u的各个分量即原始基底函数i、j、k、l作为指标而表示的2电子积分函数g的函数值g(i,j,k,l)、将以所述原始基底函数k为一个构成元素的收缩基底函数K和以所述原始基底函数l为一个构成元素的收缩基底函数L作为指标而表示的密度矩阵P的元素P(K,L)与系数A1的积A1·P(K,L)·g(i,j,k,l)的所有收缩基底函数的总和f1(I,J);和所述2电子积分函数的函数值g(i,k,j,l)、所述密度矩阵P的元素P(K,L)与系数A2的积A2·P(K,L)·g(i,k,j,l)的所有收缩基底函数的总和f2(I,J);之和f(I,J)=f1(I,J)+f2(I,J),用以所述原始基底函数i、j为一个构成元素的所述收缩基底函数I、J中包含的所有所述原始基底函数的和进行表示的福克矩阵F的所有矩阵元素F(I,J)的计算,令最外侧的循环为与满足R≤nmax(nmax是赋予n个收缩壳的编号的最大值)和T≤R关系的所述收缩壳R和T的组合相关的循环,令所述最外侧的循环的内侧的第2循环为与所述收缩壳S相关的循环,比所述第2循环更靠内侧的第3循环为与所述收缩壳U相关的循环,或令所述第2循环为与所述收缩壳U相关的循环,所述第3循环为与所述收缩壳S相关的循环,令所述收缩壳S的可取值范围小于或等于R,令所述收缩壳U的可取值范围小于或等于R,在所述第3循环的内侧执行的规定的2电子积分的计算和利用该结果的规定的福克矩阵元素的一部分的计算,在归拢所述第2和第3循环而形成一个作业单位、将各个所述作业单位分配到所述处理器中进行处理的并行处理方法中,通过向所述收缩壳R的轨道量子数高的作业分配小编号、向所述收缩壳R的轨道量子数低的作业分配大编号而形成所述作业。
13.如权利要求12所述的并行处理方法,其特征在于在该方法中,向所述多个处理器分配各作业,使所述作业的通信时间与运算时间之比的平均值为规定值。
14.如权利要求13所述的并行处理方法,其特征在于在该方法中,当多个所述作业的全体通信时间与向多个所述处理器均等分配所述多个作业时的一个作业内的运算时间的总和大致相等时,向所述各个处理器分配各作业,使得所述作业的通信时间与运算时间之比的平均值为所述处理器个数的倒数。
15.如权利要求13所述的并行处理方法,其特征在于在该方法中,分别向所述多个处理器交替分配通信时间与运算时间之比大于和小于所述规定值或所述处理器个数的倒数的作业。
16.如权利要求14所述的并行处理方法,其特征在于在该方法中,分别向所述多个处理器交替分配通信时间与运算时间之比大于和小于所述规定值或所述处理器个数的倒数的作业。
17.如权利要求12所述的并行处理方法,其特征在于在该方法中,将所述多个处理器分割成G个(G是大于或等于2的整数)处理器群,群内的所述处理器个数大致相等,同时将所述多个作业分割成G个作业群,群内的所述作业个数大致相等,使所述处理器群和所述作业群一一对应,一个作业群内的作业分配给对应的一个处理器群内的处理器,使由所述通信时间和运算时间组成的大小与所述通信时间和所述运算时间之比近似的作业分别属于所述各个不同的作业群,同时,将由所述通信时间和运算时间组成的大小与所述通信时间和所述运算时间之比近似的作业分配到所述各个作业群内,其分配顺序在所述多个作业群中互不相同。
18.如权利要求12所述的并行处理方法,其特征在于在该方法中,向轨道量子数高的收缩壳分配小收缩壳编号、向所述轨道量子数低的收缩壳分配大收缩壳编号,所述作业的编号由R(R+1)/2+T计算式确定,用从N(N是整数)到M(大于N的整数)的连续整数进行编号,如果就要分配完的作业的编号J小于或等于(N+M)/2,则将编号为N+(M-J-1)的作业作为下一次作业进行分配,如果就要分配完的作业的编号J大于(N+M)/2,则将编号为N+(M-J)的作业作为下一次作业进行分配,或者,如果就要分配完的作业的编号J小于(N+M)/2,则将编号为N+(M-J)的作业作为下一次作业进行分配,如果就要分配完的作业的编号J大于或等于(N+M)/2,则将编号为N+(M-J-1)的作业作为下一次作业进行分配,如上分配各作业,使得所述通信时间和所述运算时间之比的平均值为规定值。
19.如权利要求17所述的并行处理方法,其特征在于在该方法中,向轨道量子数高的收缩壳分配小收缩壳编号、向轨道量子数低的收缩壳分配大收缩壳编号,所述作业的编号由R(R+1)/2+T计算式确定,用从N(N是整数)到M(大于N的整数)的连续整数进行编号,使第g个作业群由在所述作业的编号被从0开始的编号替换时其编号除以所述G后的余数等于g的作业构成,分配各作业,使得所述通信时间和所述运算时间之比的平均值为规定值。
20.如权利要求17所述的并行处理方法,其特征在于在该方法中,向轨道量子数高的收缩壳分配小收缩壳编号、向轨道量子数低的收缩壳分配大收缩壳编号,所述作业的编号由R(R+1)/2+T计算式确定,用从N(N是整数)到M(大于N的整数)的连续整数进行编号,使第g个作业群由在所述作业的编号被从0开始的编号替换时、作业编号除以2×G后的余数等于g的作业以及作业编号除以2×G后的余数等于(2×G-g-1)的作业构成,分配各作业,使得所述通信时间和所述运算时间之比的平均值为规定值。
21.如权利要求19所述的并行处理方法,其特征在于在该方法中,在构成第g个作业群的作业中,最初向处理器分配的作业是由作业编号J除以处理器群个数G的商彼此相等的作业构成并在利用该商以大于或等于0、小于或等于B=(M-N+1)/G的整数编号的作业块中,具有大于或等于(B/G)×g、小于(B/G)×(g+1)的编号的作业块中所包含的编号的作业。
22.如权利要求20所述的并行处理方法,其特征在于在该方法中,在构成第g个作业群的作业中,最初向处理器分配的作业是由作业编号J除以处理器群个数G的商彼此相等的作业构成并在利用该商以大于或等于0、小于或等于B=(M-N+1)/G的整数编号的作业块中,具有大于或等于(B/G)×g、小于(B/G)×(g+1)的编号的作业块中所包含的编号的作业。
23.如权利要求19所述的并行处理方法,其特征在于在该方法中,构成对应处理器群的处理单元数为m的第g个作业群所包含的作业中,最初向处理器分配的作业是由作业编号J除以处理器群个数G的商彼此相等的作业构成并在利用该商以大于或等于0、小于或等于B=(M-N+1)/G的整数编号的作业块中,具有大于或等于(B/G/m)×g、小于(B/G/m)×(g+1)的编号的作业块中所包含的编号的作业。
24.如权利要求20所述的并行处理方法,其特征在于在该方法中,构成对应处理器群的处理单元数为m的第g个作业群所包含的作业中,最初向处理器分配的作业是由作业编号J除以处理器群个数G的商彼此相等的作业构成并在利用该商以大于或等于0、小于或等于B=(M-N+1)/G的整数编号的作业块中,具有大于或等于(B/G/m)×g、小于(B/G/m)×(g+1)的编号的作业块中所包含的编号的作业。
25.如权利要求21所述的并行处理方法,其特征在于在该方法中,当第g个作业群中,就要分配完的作业包含在第b个作业块中时,若第(b+1)个作业块中有第g个作业群的作业则将第(b+1)个作业块内的作业,或者若第(b+1)个作业块中没有第g个作业群的作业则将第0个作业块内的作业,或者,若(b-1)大于或等于0则将第(b-1)个作业块内的作业,或者若(b-1)不是大于或等于0则将第g个作业块内的未分配的最大编号的作业,作为所述第g个作业群的下一个作业进行分配。
26.如权利要求22所述的并行处理方法,其特征在于在该方法中,当第g个作业群中,就要分配完的作业包含在第b个作业块中时,若第(b+1)个作业块中有第g个作业群的作业则将第(b+1)个作业块内的作业,若第(b+1)个作业块中没有第g个作业群的作业则将第0个作业块内的作业,或者,若(b-1)大于或等于0则将第(b-1)个作业块内的作业,若(b-1)不是大于或等于0则将第g个作业块内的未分配的最大编号的作业,作为所述第g个作业群的下一个作业进行分配。
27.如权利要求23所述的并行处理方法,其特征在于在该方法中,当第g个作业群中,就要分配完的作业包含在第b个作业块中时,若第b+(B/m)个作业块中有第g个作业群的作业则将第b+(B/m)个作业块内的作业,若第b+(B/m)个作业块中没有第g个作业群的作业则将编号等于b+1除以(B/m)后的余数的作业块内的作业,或者,若b-(B/m)大于或等于0则将第b-(B/m)个作业块内的作业,若b为0则将其编号除以(B/m)后的余数等于(B/m)-1的作业块中、包含第g个作业群的作业的最大编号的作业块内的作业,若b不为0则将其编号除以(B/m)后的余数等于(b-1)除以(B/m)后的余数的作业块中、包含第g个作业群的作业的最大编号的作业块内的作业,作为所述第g个作业群的下一个作业进行分配。
28.如权利要求24所述的并行处理方法,其特征在于在该方法中,当第g个作业群中,就要分配完的作业包含在第b个作业块中时,若第b+(B/m)个作业块中有第g个作业群的作业则将第b+(B/m)个作业块内的作业,若第b+(B/m)个作业块中没有第g个作业群的作业则将编号等于b+1除以(B/m)后的余数的作业块内的作业,或者,若b-(B/m)大于或等于0则将第b-(B/m)个作业块内的作业,若b为0则将其编号除以(B/m)后的余数等于(B/m)-1的作业块中、包含第g个作业群的作业的最大编号的作业块内的作业,若b不为0则将其编号除以(B/m)后的余数等于(b-1)除以(B/m)后的余数的作业块中、包含第g个作业群的作业的最大编号的作业块内的作业,作为所述第g个作业群的下一个作业进行分配。
全文摘要
利用通过共用总线将主计算机和多个处理器连接而构成的并行计算机进行并行处理时可以向各处理器高效分配作业的方法。向各处理器交替分配通信时间与运算时间之比大于和小于规定值或处理器个数的倒数的作业。另外,使由多个处理器和多个作业对应,分割成多个群,使通信时间和运算时间组成的大小与所述通信时间和运算时间之比近似的作业分别属于各个不同的作业群,而且,将由通信时间和运算时间组成的大小与通信时间和运算时间之比近似的作业分配到各个作业群内,其分配顺序在多个作业群中互不相同。
文档编号G06F9/50GK1655135SQ20051000954
公开日2005年8月17日 申请日期2001年4月25日 优先权日2000年4月28日
发明者山田想, 稻畑深二郎, 宫川宣明, 高岛一, 北村一泰, 长嶋云兵 申请人:大正制药株式会社, 本田技研工业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1