There are several ways to handle threading in Rush;
which you choose depends on your rendering needs.
Any one of the following techniques can be used:
1) Submit jobs with the 'Ram:' value set to secure memory
and processors. (Use this if you plan to have a mix
of threaded and non-threaded rendering)
2) Set processors in the rush/etc/hosts file to 1.
(Use this if ALL your renders will be threaded)
3) Use 'rush -reserve' to reserve some of the processors
on the machines you need, so you can thread your renders
on these machines to use several processors.
1) Securing Ram To Secure Processors
If you have a farm of dual proc machines that all have a gig of ram
configured in rush (eg. 'rush -lah' shows 1024 in the Ram column),
and you submit a job with the 'ram' value set to '1024', then you
will effectively secure both processors from rush. This is because
when rush starts your render on a machine, it will subtract the ram
value your job requests from the configured ram value for that machine,
leaving zero available for other jobs to use.
Also, you will only be able to start rendering on machines that
have 1024 available, which means both processors must be unused
by rush, otherwise rush will think less than 1024 is available,
preventing your job from running on those machines.
If you want to allow other renders to still be able to use
the other processors, then submit with your Ram value set
just a little bit lower, eg. 1023. You can then submit other
renders to these machines using a Ram value of 1, and they'll
be able to get on because of the 1MB your job leaves behind;
1024-1023=1MB available.
2) Disabling Processors in the Rush Hosts List
You can tell Rush each machine only has one processor instead
of two. Just change the number of cpus in the rush hosts file
to 1 for the dual proc machines. Then rush will only assign
one render per machine.
Such a change is only recommended if you want to affect all
jobs the same way, e.g. if all rendering you run through Rush
is multithreaded, and you would never want more than one frame
rendering on the dual proc machines you have modified.
3) Reserving Processors
This technique is pretty intuitive; simply use 'rush -reserve'
to reserve processors on the machines you want to use,
and then submit your job to use those machines.
Setup your render script to first check how many cpus
are reserved by your reserve job on the local machine
before starting the renderer. If no cpus got reserved
(they're busy doing someone else's job) then just render
on with one thread. But your reserve job has reserved
the other cpu, then tell the renderer to use two threads.
|