# YHSn3D **Repository Path**: e-level-parallel-algorithm/yhsn3d ## Basic Information - **Project Name**: YHSn3D - **Description**: YH-Sn3D是另一款着重与异构加速方面的粒子输运软件,主要基于类KBA算法,实现了CPU和Matrix-2000的异构并行算法。YH-Sn3D通在 CPU 和 Matrix-2000 加速器之间采用 ACL 和 BCL 进行控制和通信,实现异构编程;根据处理器核的计算能力进行任务划分。在 Matrix-2000 加速器端,通过 OpenMP 指令开发程序的线程级并行;测试结果表明 OpenMP线程级优化最大可以获得 5.5 倍的加速;在天河二号升级系统上进行测试,大规模扩展达到101 万核,对比 17 万核并行效率达到 52% - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-02-24 - **Last Updated**: 2024-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # YHSn3D #### 介绍 YH-Sn3D是另一款着重与异构加速方面的粒子输运软件,是Sweep3D在天河2A系统上的异构移植版本,主要基于类KBA算法,实现了CPU和Matrix-2000的异构并行算法。YH-Sn3D通在 CPU 和 Matrix-2000 加速器之间采用 ACL 和 BCL 进行控制和通信,实现异构编程;根据处理器核的计算能力进行任务划分。在 Matrix-2000 加速器端,通过 OpenMP 指令开发程序的线程级并行;测试结果表明 OpenMP线程级优化最大可以获得 5.5 倍的加速;在天河二号升级系统上进行测试,大规模扩展达到101 万核,对比 17 万核并行效率达到 52% #### 软件架构 参考YH-Sn3D 用户手册 #### 安装教程 硬件要求 CPU,内存,储存空间和频率没有明确要求,根据测试规模而定。 MATRIX2000协处理器,现在只有天河2A上提供该型号的协处理器。 软件要求 系统:Linux及发行版本。 开发运行环境:Intel 编译器,支持 icc,ifort,cpp,支持mpi,openmp并行,支持MATRIX编译,支持ACL和BCL通信,包含ACL和BCL通信库。 安装面向异构计算系统的YH-Sn3D 将src/cpu/的文件加入到Sweep3D的源码目录下,通过cpucompile.sh进行编译,生成CPU端的可执行文件opensn.mpi; 将src/mtx/的文件单独拷贝到目录,通过matxcompile.sh进行编译。生成matrix2000端的可执行程序matx_main.mtx; 将以上两个可执行文件拷贝到一个目录下, 进行运行,注意库的对应情况。 #### 使用说明 目录中输入文件为input,可对文件进行设置。 给出输入文件中对应的参数,如表2.1所示。NPE_I表示在I方向进程数划分,NPE_J表示在J方向进程数划分,NPE_I*NPE_J表示测试时的总进程数。MK表示K方向的切割块数,MMI表示离散角块数(必须时MM参数的约数),NCPU 表示每个SMP上的CPU数,IT_G,JT_G,KT分别表示I,J,K方向的计算网格数, MM表示八分圆的方位角数(取3或者6),ISCT表示Pn散射顺序(取0或者1)。DX,DY,DZ分别表示I,J,K方向的差分间距,EPSI表示收敛条件控制(>0时为收敛通量误差标准,<0时绝对值为最大迭代次数),IBC,JBC,KBC表示I,J,K三个方向的边界条件(0真空条件,1反射条件),IPRINT控制是否输出flux(0不输出,1输出),IDSA控制是否更新DSA 面流(0不更新,1更新),IFIXUPS控制flux是否校正(0不校正,1校正,<0绝对值代表从第几次迭代开始校正)。详细参考YH-Sn3D 用户手册。