无法使用 parLapply 打开连接错误

2023-11-30

我使用 parLapply 在 4 核计算机上成功处理了一些数据,使用如下代码:

require("parallel")
setwd("C:/...")

file_summary<-read.table("file_summary",header=T,sep=" ",stringsAsFactors=F)
new_filename<-sub(".asc",".dat",file_summary$filename)

file_list<-list.files()

myfunction <- function(k) {

x<-M$x[k]
y<-M$y[k]

for (i in 1:length(file_summary[,1])) {
    if ( # logical condition on x and y ) {
    new_file<-new_filename[i]
    new_data<-read.table(new_file,header=T,sep=" ")
    eval<-matrix(,nrow=length(new_data$x),ncol=1)

      for (j in 1:length(new_data$x)) {
      eval[j]<-(new_data$x[j]-x)^2+(new_data$y[j]-y)^2
    }
    index<-which(eval == max(eval))
    out<-c(new_data$x[index],new_data$y[index],new_data$mean[index],new_data$S[index])
}
rm(eval)
gc()
}
return(out)
}

n_tasks <- length(M$x) 
n_cores <- 8

Cl = makeCluster(n_cores, type = "PSOCK") 
clusterExport(Cl, "M")
clusterExport(Cl, "file_summary")
clusterExport(Cl, "new_filename")
clusterExport(Cl, "file_list")

Results <- parLapply(Cl, c(1:n_tasks), myfunction)

stopCluster(Cl)

现在使用完全相同的代码以及相同的数据和目录结构(即路径),我尝试在 8 核机器上运行分析以进一步加快速度。然而,在我第一次尝试时,我收到以下错误:

8 nodes produced errors; first error: cannot open the connection

我尝试稍微清理一下 RAM(对于非 R 进程)以查看是否有帮助,但没有效果。有什么建议么?


我在“myfunction”中看到的唯一可以生成“无法打开连接”错误的操作是“read.table”。您可能需要在调用 read.table 之前添加以下内容:

if (! file.exists(new_file))
  stop(paste(new_file, "does not exist"))

检查工作人员是否有权读取该文件也可能很有用:

if (file.access(new_file, mode=4) == -1)
  stop(paste("no read permission on", new_file))

排除这些问题似乎是值得的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 parLapply 打开连接错误 的相关文章

  • 有没有办法一次重新编码多个变量?

    我有一个学生成绩单分数的数据集 范围从 D 到 A 我想将它们重新编码为 1 12 的范围 即 D 1 D 2 A 11 A 12 现在我正在起诉revalue函数于plyr 我有几列想要重新编码 有没有比运行更短的方法来做到这一点reva
  • 生成所有可能的排列(或 n 元组)

    我想创建一个包含 10 个变量 可以是 1 或 2 的所有可能排列的 data frame 2 2 2 2 2 2 2 2 2 2 1024 possible 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
  • 在 unnest_wider 之后命名提升向量中的列

    在使用 tidyr 1 0 的一些新功能时 我遇到了一些令人头疼的问题 我用过boxplot stats获取我想用来绘制的箱线图值向量 我已经成功地完成了此操作 但我相信有更好的方法来命名新的未嵌套向量的列 这是当前设置 library t
  • 在 grid.text 中使用 pch 字符

    我使用 ggplot2 创建了一个图表 现在我想让图例不在图表上 而是在图表外的网格中 我现在的问题是 是否有人知道是否有可能在 grid text 中使用 pch 符号 Here is an image to show what I wa
  • 在单个图中获取 geom_hex 中的观测值 (Shiny)

    我正在尝试创建一个十六进制的交互式图 用户可以单击给定的十六进制 并接收分组在该单击的十六进制中的原始数据帧的所有观察结果的列表 下面是一个 MWE 看起来非常接近我的目标 我正在使用 Shiny hexbin 和 ggplotly app
  • 匹配较大向量中的序列

    我想要一个函数 它返回向量的匹配子序列的初始索引 例如 y lt c a a a b c multi match c a a y 1 1 2 multi match c a b y 1 3 我有一个粗略的实现 但我觉得我必须重新发明轮子 而
  • 在汇总表中添加一列,其中包含每个变量的分布图

    有没有一种好方法来添加包含每个变量的分布图的列 例如这里 library vtable st iris 没有必要使用这个包 接受建议 尽管我知道这可能更容易做到ggplot 我总是渴望看看我是否可以达到类似的结果base R绘图工具 我将利
  • 从 Vowpal Wabbit 的内存中读取数据?

    有没有办法发送数据来训练 Vowpal Wabbit 中的模型而不将其写入磁盘 这就是我正在尝试做的事情 我有一个相对较大的 csv 数据集 大约 2gb 可以毫无问题地容纳在内存中 我将它在 R 中加载到数据框中 并且有一个函数将该数据框
  • 修改多面图中的图例,ggplot2

    对于此图 我想将图例分成 2 个单独的图例 一种将脉冲湿地显示为圆形 其阴影对应于湿地编号 另一种将静态湿地显示为三角形 其灰色阴影对应于湿地编号 那么水文学传说就不再必要了 我想摆脱它 这就是我想要的图例的样子 当然要小一些 这是在 Po
  • 添加一个新列,其中标签附加到新月形数字

    我想添加一个新列 给出一个常量标签 并逐行附加新月数字逻辑 我的输入 position work chr1 jil2001 chr4 jil2001 chr3 kou2009 chr9 nai2012 chr7 fandis2005 我的预
  • 使用绘图数学保留尾随零

    我在用着annotate 将文本覆盖在我的其中一个上ggplot2地块 我正在使用该选项parse T因为我需要使用希腊字母 rho 我想要文字说 0 50 但是尾随零被剪掉 我得到 0 5反而 这是一个例子 library ggplot2
  • 部署使用 fileInput 上传数据的闪亮应用程序时出错

    部署我的第一个闪亮应用程序 简单的 html 解析器 让用户上传 html 文件 然后解析它以获取 LinkedIn 上的分享 提及 喜欢的信息 该应用程序在本地运行良好 在部署之前进行了测试 并且 Rstudio 没有显示任何部署错误 但
  • fread、data.table中的小数点设置

    我想使用 data table 中的 fread 但收到与小数点相关的警告 此处为 而不是 通常我使用 但在某些情况下我必须导入以 作为小数点的文件 在 read csv 中我可以设置小数点分隔符 df lt read csv mydata
  • 如何从 coxme 包中的 lmekin 对象中提取 p 值

    我希望能够查看 coxme 包生成的 lmekin 对象的 p 值 eg model lmekin formula height score sex age 1 IID data phenotype df varlist kinship m
  • unnest_longer 给出美元符号而不是正常的小标题

    任何人都可以解释以下差异 library tidyverse tribble id c 1 10 gt unnest longer id gt mutate data map x id mtcars gt unnest longer dat
  • 从光栅计算器传输到 R 的条件命令

    到目前为止 我在ArcGIS的栅格计算器中使用了以下语句 Con Land use rst 20 Export rst 这会计算一个新栅格 其中仅包含来自导出的数据 其中 Land use 等于 20 这正是我想要的 但我想自动化这个R 因
  • 提取行 r 之间的数据

    我有以下行 rep c foo rep c A B 2 bar rep c C D 2 2 1 foo A B A B bar C D C D foo A 13 B A B bar C D C D 我想提取 foo 和 bar 之间的数据以
  • 在R包/.Rd文件中搜索unicode字符

    如何在 R 包或特定文件中搜索特定的 unicode 字符 我使用的是 RStudio IDE 我正在尝试向 CRAN 提交包裹 所有检查均通过 但以下情况除外 W checking PDF version of manual 49 5s
  • 第一个字母改为大写

    是否有其他版本可以使每个字符串的第一个字母大写 并且对于 flac perl 也使用 FALSE name lt hallo gsub alpha U 1 name perl TRUE 你可以尝试这样的事情 name lt hallo pa
  • 使用列表列对 data.table 进行分组

    我有一个非常大的问题 循环遍历 data table 来做我想做的事情太慢了 所以我试图绕过循环 假设我有一个 data table 如下 a lt data table i c 1 2 3 j c 2 2 6 k list c a b c

随机推荐