AWS - EC2包在Rstudio中存储巨型稀疏矩阵

时间:2018-05-25 02:06:06

标签: r amazon-ec2 rstudio-server

我在R中创建了一个名为rte的列表,其中包含350个元素,每个元素都是一个大规模的稀疏矩阵(条目只有01 )行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} 
  }
}

Link to data frame d_zone_ON

0 个答案:

没有答案