Hello, I have an OpenMPI job that I would like to submit to a partition with 10 nodes, each node has 32 CPUs. Obviously, at any given time, some of the CPUs/processors might be allocated to other jobs. However, there might be room in the partition (subset of the CPUs/processors available) that would be sufficient for my job. If I specify the number of tasks for my job based on the total number of CPUs/processors in the partition, like this:
salloc -n320 mpirun mpiApp ...the job remains queued until all 320 CPUs are available (as expected). This establishes context for the question. I would like to run the MPI job given a range of tasks/CPUs/processors - i.e., I don't want the job to be blocked if there are, say 100 CPUs available, I just want to run the job using 100 CPUs rather than waiting for all 320 CPUs to become available. Similar to the range capability on the "nodes" option (i.e., -N<minnodes[-maxnodes]>), is there a method to submit a job by specifying a task range (or another option / combination of options to achieve the same outcome), for example: salloc -n100-320 mpirun mpiApp Taking this a step further and being greedy, it would be convenient to have the ability to specify a wildcard in the task range, as to remove the need to know the number of CPUs in the partition: salloc -n100-* mpirun mpiApp I realize I could query the partition state to determine the number of CPUs idle (i.e., sinfo -o %C), and submit my job accordingly. However, this seems sub-optimal, bypassing the slurm scheduler and opening up the possibility of a race condition blocking the job. It seems that slurm should be responsible for scheduling based on job characteristics and resource availability. That is, it seems like there should be a way to express the job resource requirements with a range of tasks. Thanks for your help! I have found this newsgroup invaluable throughout the installation, administration, and usage of slurm. -adam
