zoukankan      html  css  js  c++  java
  • R语言中的并行处理

    网上有人说foreach包可以并行,我就去弄了,结果发现一个普通的二重循环什么事都不错都很卡!捣鼓了半天才发现是foreach的问题

    为了提速,做了如下事宜:

    • 直接利用矩阵列加减,不是一个个遍历加
    • 把loop里面的函数调用去掉(开销很大)
    • 不使用foreach,使用原始的for
    #计算trustl
    R.trust_matrix <- matrix(rep(0,R.item_count*R.user_count),nrow=R.user_count, ncol=R.item_count);
    
    to_add = matrix(rep(1,R.user_count),nrow=R.user_count,ncol=1)
    for(i in 1:R.user_count) {
      for(j in 1:R.item_count) {
        if(abs( R.init_matrix[i,j] - R.init_predict_matrix[i,j] < error_threshold)){
          R.trust_matrix[,j] <- R.trust_matrix[,j] + to_add
          R.trust_matrix[i,j] <- R.trust_matrix[i,j] - 1
        }
      }
      print(i)
    }
    

      这里记录了利用多核计算的一些包,有时间再琢磨:

    http://cran.r-project.org/web/views/HighPerformanceComputing.html

    这里有一个foreach的用法

    http://cran.r-project.org/web/packages/foreach/vignettes/foreach.pdf

  • 相关阅读:
    KMP算法
    找出第二大的数
    webpack 3 优化
    CocoaPods安装
    自适应水平垂直居中
    找出两个数组中都有,并且重复次数最多的元素
    swift 笔记
    Promise 用es5的基础实现
    $.ajax仿axios封装
    js基础拖拽效果
  • 原文地址:https://www.cnblogs.com/Sorean/p/3181015.html
Copyright © 2011-2022 走看看