Closed bguo068 closed 3 months ago
Workaround for now:
process A {
executor 'hq'
cpus 1
memory 2048 // <---------- Change 2.GB to 2048, to allow hq interpret it as 2048MB
input: val(x) // Caveats: if changing executor to sge/slurm,
output: path("*.txt") // nextflow will interpret it as 2048bytes
script:
"""
echo ${x} > ${x}.txt
"""
}
workflow{
channel.fromList([1,2]) | A
}
Think it's related to this PR https://github.com/nextflow-io/nextflow/pull/4884
I suggest we merge that PR and update the docs to say that Hyperqueue >=0.17.0 is required in the next edge release
I suggest we merge that PR and update the docs to say that Hyperqueue >=0.17.0 is required in the next edge release
That would be great!
Solved via b45f7c48
Bug report
Expected behavior and actual behavior
Expected behavior: hyperqueue and nextflow should have same interpretation of memory resources.
Actual behavior: When set
memory 2.GB
in Nextflow, the.command.run
a work directory uses this:This is problematic as newer versions of hyperqueue interpret 2147483648 as 2147483648
Mb
(2 PB) instead of 2147483648Bytes
(2GB). This results in thehyperqueue
job waiting for the a big memory resource that would never be possible for most HPCs.Steps to reproduce the problem
main.nf:
Run the pipeline:
Program output
Nextflow output:
And it will stuck forever.
Example
.command.run
file:Environment
Additional context
break change in hyperqueue about
mem
resource