关于我之前的类似 SO 问题,我尝试在 AWS 上使用雪/降雪进行并行计算。
我所做的是:
- 在
sfInit()
函数中,我将公共 DNS 提供给socketHosts
参数,如下所示sfInit(parallel=TRUE,socketHosts =list("ec2-00-00-00-000.compute-1.amazonaws.com"))
- 返回的错误是
Permission denied (publickey)
- 然后我按照http://www.imbi.uni-freiburg.de/parallel/的“无密码安全外壳 (SSH) 登录”部分中的说明(我认为是正确的!)
- 我只是将我在 AWS 上创建的 .pem 文件的内容放入我想从我的主 AWS 实例和主 AWS 实例连接的 AWS 实例的 ~/.ssh/authorized_keys 中
有什么我错过的吗?如果用户可以分享他们在 AWS 上使用雪的经验,我将非常感激。
非常感谢您的建议。
更新:我只是想更新我发现的针对我的具体问题的解决方案:
- 我使用 StarCluster 设置我的 AWS 集群:StarCluster
snowfall
在集群的所有节点上安装包- 从主节点发出以下命令
hostslist <- list("ec2-xxx-xx-xxx-xxx.compute-1.amazonaws.com","ec2-xx-xx-xxx-xxx.compute-1.amazonaws.com")
sfInit(parallel=TRUE, cpus=2, type="SOCK",socketHosts=hostslist)
l <- sfLapply(1:2,function(x)system("ifconfig",intern=T))
lapply(l,function(x)x[2])
sfStop()
- ip 信息确认 AWS 节点正在被使用