工作进展

1 测试



龙测试

ta  

oblas使用-g选项正确性 特征值部分还是有个函数不能过。

原版blas配合-g选项正确性可以过   

原版BLAS配合-O2选项正确性可以过   性能?


验收 TB   LO编译器 确定一下 正确性和性能ok

TC  gforran编译器??





       


 


2 天体


(1)使用8路8核机器上  earth20120418-format目录下文件

串行 并行2线程 并行4线程对比精度


22文件差别很大 串并行  有错误

今天调试的结果是发现进行omp并行的时候三个输出文件中例如22,22d,22p。
并行的22文件跟穿行的差别非常大。卡在这了。不知道作何解释。
1  不知道是不是以前的结果就是这样,还是因为我没有弄好。这次这样的结果。
2 如果确实是这样的结果,那麻烦就大了
截取部分文件如下:
 
穿行的22:
  4.000000
  4.9960060E-04  4.9961155E-04  4.9976038E-04  4.9981714E-04  4.9988757E-04
  4.9990788E-04  4.9986731E-04  4.9982639E-04  4.9984490E-04  4.9985270E-04
  4.9990293E-04  4.9991067E-04  4.9995241E-04  4.9996743E-04  4.9994991E-04
  4.9993611E-04  4.9989828E-04  4.9992820E-04  4.9993151E-04  4.9994548E-04
  4.9994781E-04  4.9991917E-04  4.9990905E-04  4.9993640E-04  5.0000916E-04
  5.0002674E-04  4.9998611E-04  4.9991749E-04  4.9991690E-04  4.9995194E-04
  4.9996126E-04  4.9996562E-04  4.9996708E-04  4.9996882E-04  4.9997057E-04
  4.9998239E-04  4.9998763E-04  4.9998140E-04  4.9997389E-04  4.9997307E-04
  4.9998262E-04  4.9998547E-04  4.9997290E-04  4.9995224E-04  4.9995136E-04
  4.9995858E-04  4.9997802E-04  4.9999251E-04  4.9999217E-04  4.9997610E-04
  4.9995346E-04  4.9995346E-04  4.9997197E-04  4.9998332E-04  4.9998332E-04
  4.9998204E-04  4.9998099E-04  5.0000375E-04  5.0003733E-04  5.0004222E-04
  5.0003314E-04  4.9998693E-04  4.9997121E-04  4.9996923E-04  4.9996894E-04
  4.9996795E-04  4.9996725E-04  4.9996434E-04  4.9996329E-04  4.9996848E-04
  4.9998431E-04  4.9999903E-04  5.0000683E-04  5.0001411E-04  5.0001417E-04
  5.0001184E-04  5.0000288E-04  4.9999903E-04  4.9999927E-04  5.0000608E-04
  5.0001498E-04  5.0001789E-04  5.0001900E-04  5.0002098E-04  5.0002494E-04
  5.0002919E-04  5.0002889E-04  5.0001283E-04  4.9997336E-04  4.9994822E-04
  4.9993949E-04  4.9993087E-04  4.9993052E-04  4.9994804E-04  4.9997889E-04
  4.9998745E-04  4.9998844E-04  4.9998821E-04  4.9998594E-04  4.9998588E-04
并行的22:
        160         160         160
  -300.0002      -283.9657      -268.7968      -254.4468      -240.8716
  -228.0292      -215.8802      -204.3870      -193.5143      -183.2286
  -173.4982      -164.2931      -155.5849      -147.3469      -139.5536
  -132.1810      -125.2065      -118.6085      -112.3667      -106.4619
  -100.8758      -95.59135      -90.59217      -85.86288      -81.38890
  -77.15646      -73.15250      -69.36472      -65.78142      -62.39156
  -59.18472      -56.15100      -53.28107      -50.56607      -47.99764
  -45.56787      -43.26928      -41.09478      -39.03768      -37.09163
  -35.25064      -33.50904      -31.86146      -30.30283      -28.82835
  -27.43346      -26.11388      -24.86555      -23.68460      -22.56741
  -21.51053      -20.51072      -19.56487      -18.67009      -17.82362
  -17.02284      -16.26530      -15.54865      -14.87069      -14.22934
  -13.62260      -13.04863      -12.50564      -11.99196      -11.50601
  -11.04630      -10.61141      -10.20000      -9.800000      -9.400001
  -9.000001      -8.600001      -8.200002      -7.800002      -7.400002
  -7.000002      -6.600002      -6.200002      -5.800002      -5.400002
  -5.000001      -4.600001      -4.200001      -3.800001      -3.400001
  -3.000001      -2.600001      -2.200001      -1.800000      -1.400000
  -1.000000     -0.6000006     -0.2000005      0.1999995      0.5999995
  0.9999995       1.399999       1.799999       2.199999       2.599999
   3.000000       3.400000       3.800000       4.200000       4.599999
   5.000000       5.400000       5.800000       6.200000       6.600000


这是因为 多输出了数据,无所谓去掉前面的97行就可以了。

使用文件:/projectearth/earth20120418-format/earthserial/earth.for

/projectearth/earth20120418-format/earthomp4/ earth4_omp.allloop.zone3seep3.for



(2)

/projectearth/earth20120418-format/earthomp/ earth4_omp.allloop.zone3oseep3o.for不行,只计算了一步。导致事件很短。

头文件.zone3oseep3o 换成zone3 sweep3 即可



多测试即便openmp的数据 对比精度:

如果出现不一样 说明是顺序不一致引起的

如果一致,说明openmp改变的顺序没有变或者没有改变顺序


(3)测试结果

关于精度:
1 对omp程序多次测试
结果如下:
(1)固定线程数目,多次测试,结果不会改变,数值精度保持稳定。
(2)改变线程数目,结果不会改变,数值精度保持稳定。
2 openmp结果与串行精度是不一样的。

结论:
1 我们的结果精度可以达到10^-11或者10^12.   与串行结果相减后的误差达到10^-9或者10^-10。基本上是后两位数字有差别。
2 如果是并行导致的计算顺序的不一样引起的误差,那么2线程与4,8线程的结果应该是不一样的。现在是一样的。何解?

omp打乱循环的数序, 所以截断误差会导致最后几位不同(如前面几个数据).

除了这个原因,应该不可能是别的原因了。

但是实验结果似乎不支持。


(4)是否对程序做了修改?上次的测试结果是否还有效?


1
今天在226上把测试结果和以前的对比一下。是一样的。
上次的应该有效。

2不过因为上次226的测试时间序列我没有保存,所以时间没有对比。
时间上2线程是超线性加速的。
时间:
OMP线程数:
1          4687.83
2          860.10
4         1160.84
8         951.78

上次好像在226上测试时间序列也是超线性的。

3 更改:改变了头文件的引用。
使用zone3.h seep3.h 而不是zone3o.h seep3o.h。
zone3o.h seep3o.h设置了公共区私有数据。导致不会正确运行足够的步数。
不知道上次测试用的是哪个头文件。





3   网络

1修改推荐服务API文档(等待雷完成数据库的修改,然后我在测试)

2修改配置中心代码 使之支持多条规则(主要问题:读入多条规则,存起来,以前是只能一条规则。)

数据结构定义在 breservice.h

对应文件代码 /home/xuanji.xiao/trunk/Recommend/cpp/src/BREConf/ConfManager.cpp


1)修改了breservice.cpp 和breservice.h,应该是把存储那一块搞定了。用find  rules_查找排查一遍.智勇添加grouprules变量即可.  done

2)开始修改abtest调用那一块



原文地址:https://www.cnblogs.com/catkins/p/5270661.html