万威强,肖俊敏,洪学海,谭光明
WAN Weiqiang,XIAO Junmin,HONG Xuehai,TAN Guangming
摘要:
海洋数据同化是一种将海洋观测资料融合到海洋数值模式中的有效手段,经过同化的海洋数据更加接近海洋的真实情况,对人类理解和认识海洋具有重要意义。围绕海洋数据同化设计了一种基于区域分解的一般性并行实现方法。在此基础上,提出了一种基于IO代理的新并行算法。首先,IO代理进程负责数据的并行读取;接下来,IO代理进程对数据进行切块,然后将块数据发送给相应的计算进程;当计算进程完成局部数据同化后,IO代理进程负责收集计算进程的同化结果,并将其写入磁盘。该方法的主要优势在于:利用IO代理进程来负责IO,而不是像传统方法那样让所有进程都来参与IO(直接并行IO),这样可以防止大量进程对磁盘的同时访问,有效避免进程排队所导致的等待。在天河二号集群上的测试结果表明,对于1度分辨率的数据同化,在核心数为425时,该并行实现的总运行时间为9.1 s,相对于传统串行程序的加速比接近38倍。此外,对于0.1度分辨率的数据同化,基于IO代理的并行同化算法在使用10 000核时依然具有较好的可扩展性,并且可将其IO时间最大限制在直接并行IO时间的1/9。