nslurm
v1.1.5
Published
A library to communicate with a slurm scheduler/engine on HPC
Downloads
28
Readme
nSlurm
node wrapper to slurm scheduler node jobManager_test.js -f ../config/arwenConf.json -e emulator
JOB OBJECT
A job is an Object. It contains variables and functions.
JOB ID
A job is defined by its input(s) and the jobID.json
file. The jobID.json
file is like :
{
'script' : '/path/to/a/777_coreScript.sh',
'exportVar' : {
'flags' : ' --option1 --option2 ',
'moduleScript' : '/path/to/this/script'
},
'modules' : ['blast'],
'tagTask' : 'blast' // 'blast' is just an example. It can be 'clustal', 'naccess', etc.
}
where :
script
is a path to the_coreScript.sh
(see the JOB CACHE CONTENT part)exportVar
is a JSONmodules
is an arraytagTask
JOB VARIABLES (into job.js)
- engineHeader = written into the
.sbatch
file, containing all the variables to parameter the scheduler - submitBin = path to the binary file of the scheduler, to run the
.sbatch
file - cmd = command to test the
.sbatch
(likeecho "toto"
for example) - script = path to the source of the
_coreScript.sh
(to be copied into the cache directory) - exportVar = JSON of variable to export. For example :
{'myVar': 'titi', 'aFile': '/path/'}
- inputs = JSON of the inputs and their name. For example :
{'nameInput1': 'contentInput1', 'nameInput2': 'contentInput2'}
- tagTask = specific to taskObject
- emulated = true if the job is emulated (on your proper computer), false if the job is run with a scheduler
- port = port to communicate via Netcat
- adress = adress of the machine that will run the job (IP adress)
- workDir = directory of the job (see the JOB CACHE CONTENT part)
- namespace = directory of the pipeline of the job
- cwd <> =
- cwdClone <> =
- ttl <> = deprecated ???
- ERR_jokers = counter for jobs emitting an error -> can be re-submitted 2 times more
- MIA_jokers = "Missing In Action" = counter for missing job in queue
- modules [] = array of the module to load into the
_coreScript.sh
- debugBool =
- inputSymbols <> =
JOB FUNCTIONS (into job.js)
- start() =
- getSerialIdentity() = to create the
jobID.json
- submit() = create a process to execute the
.sbtach
JOB CACHE CONTENT
When a job is created, the JM create a directory where all files related to this job will be written. The minimalist content (where 777 is a uuid) :
777_coreScript.sh
777.batch
jobID.json
777.err
777.out
input
, containing :myInput1.inp
myInput2.inp
Here, the job needs two input files, namedmyInput1.inp
andmyInput2.inp
.
Note These two names (without the extension) are described as variables into the
777.batch
file, to indicate their paths. Thus, the path to the input files of the job are known in777.batch
.