LDA并行化实验(待完善)

    实验数据

    语料大概有1740篇文档,19889的词,机器为16核,48G内存,因为机器上有其它程序运行,实际可用内存不足6G。

    实验方案

    主要包含LDA的三种实现:第一种是LDA的单机版本,第二种是LDA的mpi版本,第三种是LDA的mpi和openmpi混合版本,不过实验条件所限,没有搭建基于MPI的集群,这里只是初步看下效果。迭代次数为1500,主题数目为50,假设n为内核数。

    实验结果

    这里先记录大概的结果,以后有时间再进行完善和补充。

    第二种方法中,实验跑了n分别等于16、8、4的时候。n=16的时候时间为6m46s,n=8的时候时间为4m29s,n=4的时候时间为 8m35s。

    第三种方法,n分别取16,8,4,运行时间都比较慢,时间至少为30分钟,而且不同cpu的负载很不均衡,有时候高的是低的2倍,这个感觉比较困惑,需要进一步分析。

    第一种算法,时间在22m26s,占用内存98M。

    实验分析

    第一:都说MPI是进程级别的并发,而openmpi是线程级别的,至于为什么第三种算法会有这样的结果暂时还不太清楚,会继续实验或者利用工具进行分析。

    第二:cpu负载的不均衡性。也就是说有些cpu的计算负载会比较大,想想会不会是文档中词有一定的聚集现象,分发的时候,有些文档集合的词集合较小,有些会比较大?

    第三从实验结果看,lda的单机版本占用内存是最小的,其它情况虽n增加会有一定的增加。

   接下来

    虽然之前玩过MPI集群,不过现在工作环境不允许,所以只好试试单机的基于openmp进行并行化。接下来,继续分析问题一和二,然后只利用openmp进行并行化试试效果,最后看能不能进行代码改进,主要包括利用指令集的方式加速浮点运算、算法的改进包括利用稀疏存储,共享内存等方式进行改进。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值