今日目标:找到多线程没有scaleup的原因;scaleup之后跑十亿;做ppt(算法和时间内存性能);有时间的话,写idea的code
上午
- 1,2
- 优化board safety的锁(两种)run+operf
- 3,4,5
- 数据生成脚本修改(去除不用的属性)
- 测试新生成数据是否可以
- 分析不scaleup的原因,测试任务划分粒度
- 数据生成脚本修改(去除不用的属性)
下午
1000上跑,
operf safty_no_lock&&thread32factor1
对比safty_lock&&thread32factor15和safty_no_lock&&thread32factor1,最快的跑十亿
晚上
- hw
做ppt(fast)
没有scaleup的原因分析
明明task函数中锁相关的时间仅占10%,但是32线程只是加快到原先的13倍(若去除锁相关时间,也只是加快14倍)
计算时间主要是从spine reach leaf的过程的时间
而且奇怪的是,8线程几乎只加倍了2倍,所以看起来也不是竞争的原因
不是线性scaleup说明有串行依赖,哪里有呢?
新算法更慢(由于每个tsk1要一个board_safty副本,因此tsk1划分为每个线程一个):无锁,但是tsk1结束之后再来合并各个线程的风险信息,然后再tsk2? - idea
code
写在线文档
实际上晚上是开发到了12:30把内存优化到了比原来一半还少~