intel实习第二个月总结

在Intel的第二个月,我专注于Trumpet项目的Bicluster、SVD和LinearRegression性能优化。通过深入理解源码和Spark执行流程,我成功提升了SVD性能一倍。在Bicluster的优化过程中,发现并解决了由于SVD近似估计导致的不稳定性问题。最后,我对读入数据和算法执行的partition进行了策略调整,以提高程序健壮性。这次经历让我深刻体会到精准思考在问题解决中的重要性。
摘要由CSDN通过智能技术生成

度过了浮躁的第一个月,第二个月开始接手Trumpet的测试任务,要求在月底之前完成Trumpet中Bicluster,SVD,LinearRegression的性能优化并发布第一个release。

第一周

follow up,在学弟离职前学习如何修改scala代码,编译并在集群上运行。在集群上部署spark的分析系统dew并生成分析图表,用于分析spark运行阶段的各个stage的情况,内存使用情况以及网络通信情况。

第二周

看懂bicluster, svd, linearRegression, wilcox, covariance的源码,从读取输入到调用mllib中算法运算再到最后输出。同时学习spark的逻辑执行流程,物理执行流程。spark根据action的类型划分job,每次job从最后的partition回溯到最一开始的输入partition,根据其中的shuffle类型划分出stage。最后按照partition的数目划分task并分配到各个executors上面。了解了这些原理为之后优化和测试的工作提供了理论的支持。

第三周

修改bicluster,svd代码。

svd中把对于dom的调用去掉了,降低了对于内存的要求,使得我们可以采用更小的partitions,减少了shuffle的数量。最终性能提升了一倍。

bicluster是主要修改的程序,起初的思想很简单,参照svd降低对于内存的要求,采用更小的partitions。同时重写原来的矩阵乘法和矩阵转置乘,利用rdd的窄映射把rdd直接作为矩阵乘的参数,减少一次collect的shuffle。但是在测试的时候发现有一次调用bicluster时间很短,后来每一次都达到了迭代的上限而不能收敛。后来的时间全部花在解决这个问题上面,经过一步步的排查发现在bic

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值