The SchedulerSGE can only handle tpn=16.
If tpn is not 16, the formula in pe-number needs to be changed, which is
error prone.
Besides, if job.nodes is not a multiple of 16, one needs to set a
special environment variable "MY_NSLOTS".
All of these seem to be Ranger-specific. So I created a scheduler for
Ranger.
Excerpt form Ranger's User Guide:
Using fewer than 16 cores per node
When you want to use less that 16 MPI tasks per node, the choice of
tasks per node is limited to the set of numbers {1, 2, 4, 8, 12, and
15}. When the number of tasks you need is equal to "Number of Tasks per
Node x Number of Nodes", then use the following prescription:
$# -pe <TpN>way <NoN x 16>
where TpN is a number in the set {1, 2, 4, 8, 12, 15}
If the total number of tasks that you need is less than "Number of Tasks
per Node x Number of Nodes", then set the MY_NSLOTS environment variable
to the total number of tasks. In a job script, use the following -pe
option and environment variable statement:
$# -pe <TpN>way <NoN x 16>
export MY_NSLOTS=<Total Number of Tasks>
For example, using 31 cores with 8 Tasks per Node:
$# -pe & 8way 64 {use 8 Tasks per Node, 4 Nodes requested}
export MY_NSLOTS=31
Leif Strand wrote:
> Eh Tan "Roundup Issue Tracker" wrote:
>> [CitcomS.tacc-ranger]
>> tpn = 16
>> # tpn is the number of tasks per node, must be one of {1, 2, 4, 8,
>> 15, 16}.
>
> The following didn't work?
>
> [CitcomS.sge]
> pe-name = 16way
> pe-number = ((n + 15) / 16) * 16
>
>
> I tried to make "sge" general enough to handle Ranger :-)
>
> --Leif
|