论文部分内容阅读
高性能并行计算是实现蒙特卡罗全堆芯高保真模拟的重要手段,然而计算过程中的并行效率问题以及海量内存占用问题已成为限制其发展的瓶颈。为突破这些瓶颈,本文基于超级蒙卡核模拟软件系统SuperMC,对蒙卡输运-燃耗耦合计算中的各类数据进行了定量分析,针对通信模式、共享内存以及线程级数据分解并行方法展开深入的研究,大幅降低了反应堆全堆芯输运-燃耗计算时的内存消耗,同时有效提升了并行计算效率。本文主要内容及创新点如下: (1)发展了基于单边通信的全局共享存储方法。针对输运计算中,计数数据占用内存过大问题,本文将计数累加器放入一块用于全局访问的内存空间进行存储。通过单边通信模式,将输运过程中产生的计数发送到对应计数累加器进行累加。数值测试结果表明,在保证结果正确性的前提下,该方法能够大幅节省输运计算中计数累加器的内存占用,在16个节点计算Hoogenboom-Martin全堆芯例题时内存占用约为原先的19%,并且具有较高的并行效率。 (2)发展了基于无锁弱同步的多线程共享内存方法。针对材料、截面等数据冗余的问题,本文将其数据结构进行优化,使其可在进程内共享使用,大幅节省了内存;针对线程竞争问题,本文制定了内存访问规则,移除了“线程锁”的限制,保证了各线程操作对应内存区域的独立性。采用BN-600模型对无锁与“线程锁”的内存同步模式进行了对比测试。结果表明,在100,000个计数累加器条件下,当每个进程派生的线程数量达10时,无锁弱同步内存访问模式的计算效率约为“线程锁”内存访问模式的4.5倍。 (3)发展了基于细粒度定位的线程级数据分解并行方法。针对不同进程上的线程直接传输计数时,产生的通信冲突问题,本文将输运-燃耗计算中核素信息相关计数分解到各线程分别进行存储,采用细粒度定位的通信方法使得线程间可直接进行通信而不会产生任何冲突,极大的提高了蒙卡计算效率。采用OECD/NEA发布的13,200个燃耗区的压水堆组件模型进行数值测试。结果表明,采用细粒度定位通信模式的计算效率是采用粗粒度通信模式计算效率的2倍。 本文将上述方法应用于国际通用基准例题BEAVRS的输运-燃耗计算,计算结果与实验值吻合良好,在16个节点320个处理器并行计算时,单个节点上的核素信息内存消耗约为理论值的6.3%,且并行效率保持在93%以上,从而验证了本文方法在反应堆全堆芯高保真输运-燃耗计算中的准确性及高效性。