代码之家  ›  专栏  ›  技术社区  ›  rimorob

makeForkCluster在Unix上创建一个套接字集群

  •  0
  • rimorob  · 技术社区  · 3 年前
    > library(parallel)
    > cluster = makeForkCluster(2)
    > cluster
    socket cluster with 2 nodes on host ‘localhost’
    > rm(cluster)
    > .Platform$OS.type
    [1] "unix"
    

    这种行为在Ubuntu22盒子和Mac上是相同的。为什么我不能创建一个分叉集群?

    1 回复  |  直到 3 年前
        1
  •  0
  •   HenrikB    3 年前

    parallel::makeForkCluster() 做 设置分叉并行进程:

    > cluster <- parallel::makeForkCluster(2L)
    > cluster
    socket cluster with 2 nodes on host 'localhost'
    > str(cluster)
    List of 2
     $ :List of 3
      ..$ con : 'sockconn' int 4
      .. ..- attr(*, "conn_id")=<externalptr> 
      ..$ host: chr "localhost"
      ..$ rank: int 1
      ..- attr(*, "class")= chr [1:2] "forknode" "SOCK0node"
     $ :List of 3
      ..$ con : 'sockconn' int 5
      .. ..- attr(*, "conn_id")=<externalptr> 
      ..$ host: chr "localhost"
      ..$ rank: int 2
      ..- attr(*, "class")= chr [1:2] "forknode" "SOCK0node"
     - attr(*, "class")= chr [1:2] "SOCKcluster" "cluster"
    

    和

    > parallel::clusterEvalQ(cluster, { parallelly::isForkedChild() })
    [[1]]
    [1] TRUE
    
    [[2]]
    [1] TRUE