Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

今日目标:完成InsVertex的第一种实现+调试+实验

上午

  • 1
    • 背单词
    • 新增play
  • 2
    • 思考新增实验:有必要确认下二级reverse有没有必要:本来最简单实现是直接用map,这样还不需要用onPath1来映射onpath1顶点
    • 因此实验变成:新增了2
      1. (done)基准msbfs:实现原先的数据结构用分开的路径记录结构
      2. InsVertex.map.separate:比1改了数据结构(map reverse),且加上trick(1step->2step)
      3. (done)InsVertex.separate:比1改了数据结构(二级reverse),且加上trick(1step->2step)
      4. InsVertex:比3改了路径合并 [2种实现:控制变量实现:(在路径记录合并前)一种是理论上更快,另一种是实验上更快]
        • 实现instance-vertex的合并(基于InsV)
        • 实现instance-vertex的合并(基于InsV_slower)
    • 实现InsVertex.map.separate(完成代码结构修改和反向结构)
  • 3
    • 实现InsVertex.map.separate(完成代码,通过编译中)
    • 学习模板类继承的成员访问

下午

  • 1
    • 实现和调试InsVertex.map.separate(编译+调试)
    • 跑实验InsVertex.map.separate
  • 2
    • 实现InsVertex-基于InsV(完成path2和调整路径)
      • 实现合并路径是不可避免的,就算3没有2快,合并路径也可以对2进行加快
  • 3
    • 实现InsVertex-基于InsV(完成路径翻译)
    • 调试(进行中)

晚上

  • 1
    • 分析InsVertex.map.separate和InsVertex.separate的时间分布(这个决定二级结构的价值)
      • 这两次的找p1的时间不一样,相差不是特别小,等下晚上的时候全部重新跑一遍看看
      • idea_sep和idea_sep_map
    • 调试InsVertex-基于InsV(单点对)
  • 2
    • 调试InsVertex-基于InsV(多点对;小图完成)
  • 3
    • 浅跑 InsVertex-基于InsV:发现在中图上有Bug
    • 修bug:定位bug原因:solution被乱写了,除了solution[0],后面的都是被写乱了
  • 4
    • 调试,没有解决bug 调试存档
      • bug现象:128的batch,solution[0:3]被乱写,但是后面没问题
(gdb) p solution[0][0].size()
$19 = 316753783116
(gdb) p solution[1][0].size()
$20 = 934626759737181
(gdb) p solution[2][0].size()
$21 = 1160669814397384
(gdb) p solution[3][0].size()
$22 = 18446405066571923009
(gdb) p solution[4][0].size()
$23 = 2
(gdb) p solution[5][0].size()
$25 = 2
(gdb) p solution[6][0].size()
$26 = 2
(gdb) p solution[126][0].size()
$27 = 2
(gdb) p solution[127][0].size()
$28 = 2
(gdb) p solution[128][0].size()
$29 = 13628
(gdb) 
把数组改vector之后是上述现象,改之前是solution[0]没有被乱写,solution[1:2]有被乱写,后面的没有检查
    - b BatchVertexPairs/IdeaMerge.cpp:1443 if pos==1
    - 1000点对时
        pos==1对应(24578 93371)点对
        pos==01对应(24578 93371)(21699 62280)点对,只跑这两对没有问题
    - 实在不行的话,跟踪1000点对(翻译block),可能问题暴露不是很慢(c num可以continue num次)
- 睡觉之前:跑idea_sep和idea_sep_map
  • 5
    • 解决Bug:果然是前面有数组越界,同时Get新知识:vector也不会对越界进行检查
    • 浅跑看效果
    • 三个实验都跑起来~明天上午分析结果和做ppt!

评论