主权项 |
一种基于分布式内存的并行数字地形分析优化方法,其特征在于,所述方法包括:(一)确定面向并行数字地形分析的数据分发粒度和结果融合粒度的大小,其中,数据分发粒度DDG是指任务的计算时间与该任务需要的数据分发时间的比值,可以表示为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>DDG</mi><mo>=</mo><mfrac><msub><mi>T</mi><mi>c</mi></msub><msub><mi>T</mi><mi>d</mi></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000660662100000011.GIF" wi="792" he="156" /></maths>T<sub>c</sub>为任务的计算时间,T<sub>d</sub>为数据的分发时间,包括数据从外部存储器读取的I/O时间;结果融合粒度RFG是指任务的计算时间与结果的回收与融合时间的比值,可以表示为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>RFG</mi><mo>=</mo><mfrac><msub><mi>T</mi><mi>r</mi></msub><msub><mi>T</mi><mi>d</mi></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000660662100000012.GIF" wi="816" he="157" /></maths>T<sub>r</sub>为计算结果的回收与融合时间,也包括数据写入外部存储器的I/O时间;数据分发粒度DDG和结果融合粒度RFG的具体计算过程如下:步骤11,选取一个大小为Q的基本数据块,然后根据算法设计程序,并运行,分别测得Q<sub>h</sub>=h*Q的数据分发时间,h为整数且h=1,2,…10,计算时间和结果回收时间;步骤12,根据公式(1)和(2)的定义,分别计算得到DDG<sub>h</sub>和RFG<sub>h</sub>的值,然后分别计算数据分发粒度DDG和结果融合粒度RFG的平均值,即,<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>DDG</mi><mo>=</mo><mfrac><mrow><munderover><mi>Σ</mi><mrow><mi>h</mi><mo>=</mo><mn>1</mn></mrow><mn>10</mn></munderover><msub><mi>DDG</mi><mi>h</mi></msub></mrow><mn>10</mn></mfrac></mrow>]]></math><img file="FDA0000660662100000013.GIF" wi="374" he="202" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>RFG</mi><mfrac><mrow><munderover><mi>Σ</mi><mrow><mi>h</mi><mo>=</mo><mn>1</mn></mrow><mn>10</mn></munderover><msub><mi>RFG</mi><mi>h</mi></msub></mrow><mn>10</mn></mfrac><mo>;</mo></mrow>]]></math><img file="FDA0000660662100000014.GIF" wi="439" he="204" /></maths>(二)分布式内存并行计算模式下,基于分布式内存的数据顺序分发和调度策略:数据分发和任务计算同时进行,考虑计算节点或进程启动与关闭开销,计算数据拆分的数据块最优数目和块大小;基于数据块最优数目,对集群节点配置参数进行优化选择;具体过程包括:步骤21,确定最优的数据块数目和大小:已知待计算的数据大小W,数据分发速度V,进程启动延迟开销δ,以及由上一步得到的数据分发粒度DDG和结果融合粒度RFG,根据下面公式计算得到最优的数据块数目K:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>K</mi><mo>=</mo><msqrt><mfrac><mrow><mi>W</mi><mrow><mo>(</mo><mi>DDG</mi><mo>+</mo><mi>RFG</mi><mo>)</mo></mrow></mrow><mi>Vδ</mi></mfrac></msqrt></mrow>]]></math><img file="FDA0000660662100000015.GIF" wi="483" he="155" /></maths>步骤22,根据数据大小W和拆分的数据块数目K得到单个数据块的大小P:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>P</mi><mo>=</mo><mfrac><mi>W</mi><mi>K</mi></mfrac></mrow>]]></math><img file="FDA0000660662100000021.GIF" wi="183" he="134" /></maths>步骤23,由下式得到总的计算时间为:<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mi>T</mi><mo>=</mo><mn>2</mn><msqrt><mfrac><mrow><mi>W</mi><mrow><mo>(</mo><mi>DDG</mi><mo>+</mo><mi>RFG</mi><mo>)</mo></mrow><mi>δ</mi></mrow><mi>V</mi></mfrac></msqrt><mo>+</mo><mfrac><mi>W</mi><mi>V</mi></mfrac></mrow>]]></math><img file="FDA0000660662100000022.GIF" wi="634" he="153" /></maths>步骤24,确定并行计算集群的参数,即节点数目或核总数N,最佳的并行计算集群的节点数目或核总数应为最优的数据块数目K,即一个轮次全部计算完毕。 |