R-код в кластере Slurm не читается должным образом - PullRequest
1 голос
/ 27 февраля 2020

Я запускаю R-код в кластере Slurm со следующим файлом ". sh":

#!/bin/bash
#SBATCH --partition=p_parallel
#SBATCH --nodes=1
#SBATCH --cpus-per-task=16
#SBATCH --workdir=/work/uder2/ODE/lancio/
module load statistics/r-3.6.1
srun Rscript   TEST.R

R-код довольно прост. Иногда как

DIRbase     = "/work/uder2/ODE/"
DIRdata     = paste(DIRbase,"data/",sep="")
list.files(DIRdata)
load(paste(DIRdata,"Data.Rdata",sep=""))


NAME = "PriorU" 
ialg = 3

nG  = 500  
LimEta = 40  

LimMu2  = 15 
LimMin = 500

LimMu = 0.1
LimSpike = 10
LimSigma2 = (8)^2/(-2*log(LimMu))*1.2


NAME = paste(NAME,"_ng",nG, sep="")

### ### ### ### ### ### ### ### 
### MODELS
### ### ### ### ### ### ### ### 

DATA = allGenesData
nrowData = nrow(DATA$premature)


sd1 = as.numeric(apply(DATA$premature,1,var))
sd2 = as.numeric(apply(DATA$mature,1,var))
sd3 = as.numeric(apply(DATA$nascent,1,var))

epsi = 0.000001
App = c(which(sd1<=epsi),which(sd2<=epsi),which(sd3<=epsi))
App2 = c(which(sd1>50),which(sd2>100000),which(sd3>1500))

minep = 0.1
xy1 = as.numeric(apply(DATA$premature,1,min))
xy2 = as.numeric(apply(DATA$mature,1,min))
xy3 = as.numeric(apply(DATA$nascent,1,min))
App3 = c(which(xy1<=minep),which(xy2<=minep),which(xy3<=minep))

На самом деле код намного длиннее, но я не думаю, что содержимое файла важно.

Что происходит, так это то, что иногда код не написано правильно. Например, вместо

App3 = c(which(xy1<=minep),which(xy2<=minep),which(xy3<=minep))

читается

App3  which(xy1<=minep),which(xy2<=minep),which(xy3<=minep))

Затем, не касаясь кода и снова запуская файл ". sh", код читается правильно. Это происходит "случайным образом" и никогда в одном и том же разделе кода.

Кажется, это связано с длиной кода.

Любая помощь?

Спасибо

РЕДАКТИРОВАТЬ 1:

Например, вывод файла слерма

[1] "Data.Rdata"
Loading required package: MASS
##
## Markov Chain Monte Carlo Package (MCMCpack)
## Copyright (C) 2003-2020 Andrew D. Martin, Kevin M. Quinn, and Jong Hee Park
##
## Support provided by the U.S. National Science Foundation
## (Grants SES-0350646 and SES-0350613)
##
Loading required package: stats4
null device 
          1 
Error: unexpected symbol in:
"      Beta0   = rep(-4,3),
      Betagonale Psi"
Execution halted
srun: error: node02: task 0: Exited with exit code 1

и код

priors  = list(
     Beta0 = list(
         type        = "Normal",
         Par1        = rep(-4,3),
         Par2        = rep(10,3)
       ),
       Beta1 = list(
         type        = "Normal",
         Par1        = rep(1.8,3), 
         Par2        = rep(10,3)
       ),
      VarK   = list(
        type        = "TruncatedNormal",
        Par1        = rep(0,3),
        Par2        = rep(100,3),
        Par3        = rep(0.0000000,3),
        Par4        = rep(LimSigma2,3), 
        Par5        = rep(2,3)
        #Par5        = rep(2,3)
      ), 
      RegCoef = list(
          type        = "Normal",
          Par1        = c(0,0,0,0,0), ## (1 o stessa dimension)
          Par2        = rep(100,5)
      ),
      sigmaMat = list(
          type        = "InverseWishart",
          Par1        = rep(10,3), 
          Par2        = c(diag(1,5)) ## diagonale Psi
      ),

      DPpar = list(
          type        = "Gamma",
          Par1        = 1, 
          Par2        = 1 ## diagonale Psi
      )
    ) 

1 Ответ

1 голос
/ 05 марта 2020

Признак, описанный здесь, файл, сохраненный на сервере NFS, поврежден при чтении, большую часть времени связан с условиями гонки в файле. Обычно файл открыт для записи с одного клиента NFS (узел входа в систему) и открыт для чтения с другого клиента (вычислительный узел). Поскольку в NFS нет механизма глобальной блокировки, клиент, который читает файл, не знает, что файл записывается. В расширенных редакторах, которые поддерживают автосохранение, файл иногда может быть записан на диск в нестабильном состоянии, например, в середине операции копирования / вставки.

Один из вариантов в этом сценарии состоит в том, чтобы вообще не изменять файл во время отправки заданий или, по крайней мере, отключить автосохранение.

Другой вариант - сделать копию файла перед отправкой задания, чтобы потом не обновлять его.

...