我在R中创建了一个名为rte
的列表,其中包含350
个元素,每个元素都是一个大规模的稀疏矩阵(条目只有0
或1
)行x列= 300+ x 320,000+
。放在Amazon Web Server - EC2
上且实例类型为m5.24xlarge
的代码可以正常运行,但Rstudio Server
会在8th iteration
后自动中止。
问题:对我来说,唯一的选择是通过所有350
次迭代,成功创建并保存每个矩阵,就是利用最强大的实例({{1}在AWS上 - EC2? (https://aws.amazon.com/about-aws/whats-new/2016/05/now-available-x1-instances-the-largest-amazon-ec2-memory-optimized-instance-with-2-tb-of-memory/)
鉴于我仍然需要将x1.32xlarge
workspace
中的列表保存到每个Rstudio
,因为我将对每个matrix element
执行一些代数操作。
rte_m <- vector("list", length(unique(d_zone_ON$Date)))
inx_big = 0
for(j in unique(d_zone_ON$Date)){
inx_row <- sum(d_zone_ON$Date== j)
inx_big <- inx_big+1
rte_m[[inx_big]] <- data.frame(matrix(0, nrow = inx_row, ncol = inx_row*(inx_row+1)/2))
lb <- min(which(d_zone_ON$Date == j))
ub <- max(which(d_zone_ON$Date == j))
for(i in lb:ub){
if(i==lb){
rte_m[[inx_big]][1,1:(ub-lb)] = 1;
}
else if(i<ub && i> lb){
rte_m[[inx_big]][i-lb+1, ((i-lb)*(ub-lb)-(i-lb+1)*(i-lb-2)/2):((i-lb+1)*(ub-lb)-(i-lb+1)*(i-lb)/2)] = 1;
} else {rte_m[[inx_big]][ub-lb+1, ] = 0}
}
}