Azure Batch + Nextflow: Cannot exceed vCPU concurrency even with fractional cpus — is CPU oversubscription impossible?

Hi, I’m running Nextflow on Azure Batch using Standard_L8as_v3 nodes (8 vCPUs). Azure Batch allows taskSlotsPerNode to be set higher than the vCPU count (e.g., 16), but Nextflow throws this error if I try:

Azure Batch pool 'X' slots per node does not match the VM num cores (slots: 16, cores: 8)

So I’m forced to keep taskSlotsPerNode = 8.

My processes only require cpus = 0.5, so in theory Nextflow should be able to schedule 16 tasks per node. However, Azure Batch still limits me to 8 concurrent tasks, because taskSlotsPerNode is capped at 8 and Nextflow won’t allow increasing it.

This means I can’t use fractional CPUs to increase concurrency, and I end up paying for unused CPU capacity.

Is there any supported way to run more tasks per node than the vCPU count (i.e., oversubscribe CPUs), or is batching tasks the only workaround?

Hi @mantczakaus,

I’m afraid that this isn’t possible currently, though it’s the kind of thing that we might be able to support in the future. If you fancy creating an issue on the Nextflow GitHub repo with your suggestion, that would be great!

Phil