AWS - пакет EC2 для хранения гигантской разреженной матрицы в Rstudio - PullRequest
0 голосов
/ 25 мая 2018

Я создаю список с именем rte в R с 350 элементами, каждый из которых представляет собой крупномасштабную разреженную матрицу (записи только 0 или 1) со строкой x column = 300+ x 320,000+.Код, который помещается на Amazon Web Server - EC2 с типом экземпляра m5.24xlarge для запуска, работает отлично, но Rstudio Server автоматически прерывается после 8th iteration.

Вопрос: Это единственный вариант для меня, чтобы пройти все 350 итерации, успешно создать и сохранить каждую из этих матриц, это использовать самый мощный экземпляр (x1.32xlarge)на 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/) Учитывая, что мне все еще нужно сохранить список в 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} 
  }
}

Ссылка на фрейм данных d_zone_ON

...