Question

  1. How to request the number of nodes (not procs), while job submission in SGE?

    for e.g. In TORQUE, we can specify qsub -l nodes=3

  2. How to request the nodes by their names in SGE?

    for e.g. In TORQUE, we can do this by qsub -l nodes=abc+xyz+pqr, where abc, xyz and pqr are hostnames

    For single hostname, qsub -l hostname=abc it works. But how do I delimit multiple hostnames in SGE?

Was it helpful?

Solution

Requesting the number of nodes with Grid Engine is done indirectly. When you want to submit a parallel job then you have to request a parallel environment (man sge_pe) together with the amount of slots (processors etc) like qsub -pe mytestpe 12...

Depending on the allocation_rule defined in the parallel environment (qconf -sp mytestpe) the slots are distributed over one or more nodes. If you have a so called fixed allocation rule where you just add a certain number as allocation rule like 4 (4 slots per host) it is easy. If you like one host just submit with -pe mytestpe 4 if you want 10 nodes just submit with -pe mytestpe 40.

Node name can be requested by the -l h=abc. Since node names are RESTRINGS (regular expression strings) in Grid Engine you can create a regular expression for host filtering: qsub -l h="abc|xyz". You can also create host groups (qconf -ahgrp) and request so called queue domains (qsub -q all.q@@mygroup).

Daniel

http://www.gridengine.eu

OTHER TIPS

  1. you can use -tc to limit the number of concurrent tasks (i.e., number of slots that will be used for an array job). I use this when I submit array jobs with 100 sub-jobs to limit the impact on our queue, defaulting to 10 simultaneous jobs with -tc 10. As each job finishes, another array job from the pending pool will be submitted.

  2. the only way I've been able to figure out to do this would be to set up specific resource quota sets (using qconf -mrqs) specifying the particular host groups you want to use. You would have to set up all of the combinations that you want, first. I don't see a real reason to specify specific hosts, though, unless these hosts have specific resources that you want to use (in which case, I'd set up consumable resources for those and apply the appropriate number of resources to each host that can supply them, then use that instead of specifying the specific hosts for a particular job).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top