2

我有一个 n 图数组,我必须生成一个三角形 nxn 矩阵,其中包含图之间的距离。我制作了非并行程序,这意味着我有计算编号的函数。每对 2 个大小为 n1 和 n2 的图的顶点数,No_MaxCommonSubgraph(graph1,graph2,n1,n2) 和我有 2 个嵌套,用于构造矩阵。它工作正常。我将第一个 for 转换为 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 时,矩阵 mat 的所有值都是 NA。我尝试将矩阵文件写入foreach,在for j之后,逐行写入,但它以不同的顺序写入行,因为这些行是由核心计算的。有时在另一行内写一行。

我使用Linux comp。有 12 个核心,我可能会使用另一个 comp。8核。对于 8 号图,我有 11117 个图,我必须达到 9 号或 10 号。我是 R 新手。

4

1 回答 1

0

用途foreach

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

所以

  1. 用于%dopar%_foreach

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

  3. 里面f_foreach()是第二个

于 2016-06-24T10:32:29.167 回答