Page 10 - 201901
P. 10

6                                                                                    2019 年 1 月


             每个算例计算耗时的均值和方差。以经典深海情                                              S N = T 1 /T N ,          (7)
             况 (MunkB_Coh_gb) 为例,其环境参数和几何参
                                                               T 1 是在单个处理器下的运行时间,T N 是在有 N 个
             数见图 5 的计算说明,其均值与标准差结果如图 7
                                                               处理器并行系统中的运行时间。
             所示。
                                                                   根据图 7 的计算结果,取 T 1 为 Bellhop 的运行
                 以上两种 CPU下的计算结果趋势一致,如图 7
             所示。但是在 Xeon 处理器上,耗时的方差较大,这                        时间,BellhopMP 在不同线程下相对于 Bellhop 的
                                                               并行化效率如图 8 所示。BellhopMP 采用大粒度的
             应该与 CPU 的架构差别有关。BellhopC 的耗时比
             Bellhop 的多,这与 Bellhop 的 C++ 语言实现的效                并行处理,在主线程中不仅计算声场,还负责声线
             率有关,有进一步优化的可能。需要说明的是,对                            区间的分割和声场计算结果的合并。这导致了随着
             于计算一条声线的声场,BellhopMP 并没有使用多                       线程数量的增加,时间减小得越来越不明显,并行
             线程来计算,且当算例的计算耗时很少时,由于                             效率逐渐降低,如图 8 中 i7 CPU 在使用 4 个线程时
             BellhopMP 需要额外的任务分配和结果合并操作,                       并行效率只有0.5,这是由于Fortran版本的Bellhop
             导致计算时间相对于BellhopC并没有减少,有时计                        的计算时间只有12 s。
             算时间反而会增加。                                             并行效率与串行的计算时间有关,串行时间越
                 为了定量描述并行计算的能力,定义并行效                           长,并行效率越高。如图 9 所示为使用 Acousitc
             率 (P) 为加速比与线程数目之比,反映执行并行算                         Toolbox 中提供的测试算例 (arcticB_cpp、Dick-
             法时,平均每个处理器的执行效率。其中加速比为                            insCervenyB、MunkB_Coh_CervenyR、MunkB_
             同一个任务在单处理器系统和并行处理器系统中                             Coh_gb、MunkB_Coh_ SGB、MunkB_gbt),皆使
             运行消耗的时间的比率:                                       用4个线程(与CPU的核心数相同)时的并行效率。

                       20                                         22
                                                                  20
                                                                  18
                      ᤂᛡ௑ᫎ/s                                    ᤂᛡ௑ᫎ/s  14
                                                                  16
                       15
                                                                  12
                       10                                         10
                                                                  8
                                                                  6
                        5                                         4
                            F  C  1  2  3  4  5  6  7  8  A           F  C  1  2  3  4  5  6  7  8  A
                                       Bellhop                                    Bellhop
                        (a) Intel(R) Core(TM) i7-4770K CPU@3.50 GHz  (b) Intel(R) Xeon(R) CPU E3-1505M v6@3.00 GHz
               图 7  各类计算方式耗时的均值和标准差。其中,F、C、1–8、A 依次表示 Bellhop、BellhopC、BellhopMP(线程数 1∼8)、
               BellhopMP(默认参数)
               Fig. 7 The mean value and standard variance of computation time cost by different models on two platform. F,
               C, 1–8, A represents different models: Bellhop, BellhopC, BellhopMP(thread count: 1∼8), BellhopMP (default)

                     20                                1.0      20                                0.8

                    ᤂᛡ௑ᫎ/s  10                         0.5  P,MP/F  ᤂᛡ௑ᫎ/s  15                    0.6  P,MP/F



                                                                10                                0.4


                      0                                0         5                                0.2
                         F  C  1  2  3  4  5  6  7  8  A             F  C  1  2  3  4  5  6  7  8  A
                                     Bellhop                                     Bellhop
                      (a) Intel(R) Core(TM) i7-4770K CPU@3.50 GHz  (b) Intel(R) Xeon(R) CPU E3-1505M v6@3.00 GHz
                                   图 8  不同线程数目时 BellhopMP 相对于 Bellhop 的并行计算效率
                       Fig. 8 The parallel efficiency of BellhopMP using different count of thread on two platforms
   5   6   7   8   9   10   11   12   13   14   15