R中三角形图距离矩阵的并行生成

时间:2015-04-17 17:23:52

标签: r matrix parallel-foreach

我有一组n个图形,我必须生成一个三角形n x n矩阵,其中图形之间的距离。 我做了非并行程序,这意味着我有计算no的函数。每对2个大小为n1和n2的图形的顶点,No_MaxCommonSubgraph(graph1,graph2,n1,n2) 我有2个嵌套,并构造矩阵。它工作正常。 我把第一个变成了foreach,我有

foreach(i <- 1:n-1)
    for(j in i:n){
       nn <- No_MaxCommonSubgraph(graph1,graph2,n1,n2)
       mat[i,j] <- max(n1,n2)-nn ##this should construct the matrix
}

问题在于,当我离开foreach时,矩阵垫的所有值都为NA。 我尝试将矩阵文件写入foreach,逐行写入for j,但它以不同的顺序写入行,因为行是由核心计算的。有时在另一行内写一行。

我使用Linux comp。有12个核心,我可以使用另一个comp。有8个核心。 对于图表大小8,我有11117个图表,我必须直到9或10。 我是R的新人。

1 个答案:

答案 0 :(得分:0)

使用foreach

 m2 <-foreach(i=1:(len-1), .combine='rbind', .multicombine=TRUE) %dopar% {     
        f_foreach(erg, i, len)} 

所以

  1. %dopar%

  2. 中使用foreach
  3. 函数“f_foreach()”返回一个向量,并在.combine='rbind'中使用“foreach”,它组合了向量以形成矩阵m2作为foreach的结果

  4. f_foreach()内是

  5. 的第二个