Page 334 - 《软件学报》2021年第9期
P. 334

2958                                 Journal of Software  软件学报 Vol.32, No.9,  September 2021

                                  Table 2    Single SW26010 processor performance
                                        表 2   单 SW26010 处理器的性能
                                    原子数           Steps/s       GFlops/s
                                      64           120K           152
                                      512          52K            264
                                      2K           15K            305
                                     98K           2.2K           450
             程序的弱可扩展性测试是基于相同的数据规模,节点个数不同时,考察系统的性能.强可扩展性的测试是基
         于不同的粒子数,扩展系统的节点数,节点数目随着粒子数的增加而增长.我们的测试是针对典型的细粒度分
         布,来考察典型计算模式下,系统的速率及强可扩展性.
             我们的测试利用了 SW26010 处理器的所有 4 个核组,每个处理器运行 4 个进程,但负责通信的进程只有 0
         号主进程.为了验证程序的强可扩展性,我们考察了不同规模的节点个数,从 8 个节点到 32 768 个节点.
             每个节点 4 个进程,最多可达到 131K 个进程.不同的系统规模下,每个进程上负责处理的原子个数固定不
         变,为 512 个原子.我们考察这种典型计算模式下系统的运算速率.
             我们的实验为考察程序的强可扩展性,随着进程数的增加,粒子数同比例增长,即每个进程上所负责计算的
         粒子数目保持不变.在上述细粒度分布的条件下,我们得到这种典型计算模式下的速率,即每秒迭代的步数,见
         表 3 第 4 列.
                                Table 3    Comparison of software solution on Sunway
                                      表 3   神威上不同系统规模下的对比
                                 节点数    进程数      粒子数     Steps/s  us/step  Time
                                   8      32     4 096   20 732  48.23  0.98
                                   64     256    32 768   19 289  51.84  1.04
                                  512    2 048   262 144   17 708  56.47  1.13
                                  1 728   6 912   884 736   15 325  65.25  1.31
                                  4 096   16 384   2 097 152  11 253  88.87  1.78
                                  8 000   32 000   4 096 000  10 015  99.85  1.99
                                 13 824  55 296   7 077 888  9 089  110.02  2.21
                                 21 952  87 808   11 239 424  6 710  149.03  3.74
                                 32 768  131 072   16 777 216  5 106  195.85  3.97
             我们的测试通过改变系统规模,即进程数来观察系统性能的变化,如图 26 所示.纵坐标是每个迭代步所消
         耗的时间,横坐标表示了进程数的不同,在每个点上的数据,对应了不同的粒子数.

                                                                        us/step

                                200
                                                                     16777216
                                                          11239424
                                150

                               us/step  100  2097152  4096000  7077888

                                     884736
                                50  262144
                                   32768

                                 0
                                   4096
                                  0   20000  40000  60000  80000  100000  120000  140000
                                                    进程数
                            Fig.26    Time spent on each iteration step at different system sizes
                                    图 26   不同系统规模下每个迭代步的耗时
   329   330   331   332   333   334   335   336   337   338   339