What is PS?

In a Nutshell:

PS (ProcessorSpeed) is an identifer, how fast a machine is compared to other machines.

At first installation, each rrClient executes a CPU benchmark.




PS used for render cost

RR uses the PS of a clients to sum the costs of each rrJob.
Please see next section "Render Costs"



PS used for render time display

RR displays the render time per frame as "real" time hour:min.sec.
In addition it displayse the render time as PS*h.

Please see next section "Render times per frame".





PS uses for Client Averaging for different projects


The Client Averaging is based on the PS of the clients, not on the number of clients.


PS used for Remaining Time Calculation


The server checks each job in intervals depending on the remaining time to render.The higher the time, the higher the intervals. Then the server re-calculates the remaining time depending on the clients, which are actual rendering this job.

For the calculation the server uses PM (ProcessorMinutes = PS x minutes). E.g. if one computer with 0.5 PS is rendering 1 minute on an job, the job takes 0.5 PM (0.5 PS x 1 Minute).

If the remaining PM's are 100 and only this 0.5 PS client is rendering this job, the remaining time will be 200 minutes. If you start 3 more clients with each 0.5 PS the remaining time will be 50 min.


The server uses PM/PS because all other remaining time calculations I know are only like this:

time till now: 10 min.

frames done: 10

frames missing: 90

time remaining= 10/10*90 = 90 minutes


It's ok if you are using the same number of clients, but not if you add some clients, or in the worst case if you almost all clients are moving to a different job.

I know programs that calculate huge remaining times, if you have disabled the rendering for a while. For example you render one hour and then you disable the job for 5 hours, the remaining time can rise up to days with this old calculation. 


PS used for Sequence Divide min max


When the server sends a job with Sequence Divide to the client, then the PS has an effect on the number of frames that are send to the client.

The higher the PS of a client compared to other clients, the more frames it gets.





Render times per frame


What is render time as PS*h?


I a nutshell, it is a normalized render time.


No matter which CPU you use, the PS*h should be the same for the same frame.


A frame with 1 PS*h means that a machine with 1 PS would have taken 1 hour to render the frame.

If your machine has 6 PS, then it takes 10 minutes (1/6 hour) to render the frame.





History of [Ghz* hour] and [PS* h]


[Ghz* hour] 
Companies required a way to measure the time a frame took.

But since the 1970 the GHz (MHz) of a new CPU doubled every 2 years.
And twice the GHz was twice the computation speed.
If a frame rendered 2 hours on a machine with 200 Mhz (0.2 Ghz), it rendered 1 hour on a machine with 400 Mhz (0.4 Ghz).

And if you have a mixed render farm of old and new machines, you cannot simply tell your supervisor "the frame takes 1 hour".

Therefore [Ghz* hour] was used as a unit for the render time.
Which means 
2 hours on a machine with 200 Mhz (0.2 Ghz)"  is  2 hours * 0.2Ghz = 0,4 Ghz * hours.
"1 hours on a machine with 400 Mhz (0.4 Ghz)"  is  1 hours * 0.4Ghz = 0,4 Ghz * hours.
As you can see the "render time" is the same.



But since the year 2000 these two laws do not apply any more:

a) Every 2 years the Ghz of a CPU doubles.

b) Twice the GHz is twice the speed.


And in addition there are speed differences between Intel and AMD with the same GHz.

And CPUs have a variable GHz which depends on how many cores you use and the render time (and the CPU cooling).


[PS* h]


Nowadays GHz does not really increase any more.
CPUs include more and more routines to calculate some formula in a fraction of a time.
And the computation speed of the CPU still increases.

There is no technical specification which can be used to get the speed of a CPU.

It has to be tested with a benchmark.
RR has implemented the PS (Processor speed) benchmark.


Twice the PS means twice the render power.


Therefore all render times in RR are stated as [PS* h] as well.








Render Costs


How much does a render cost?



First of all: 

This is a difficult question.

And you can make it really complicated.



You have two options:

A) Simple price based on acquisition costs:

Many rental companies use 1% of the acquisition costs as a rent per day. 

But most rental companies do not lend their hardware 365 days a year. 
So perhaps 0.5% might be a better percentage.

The percentage might vary a lot depending on the degree of capacity utilization and additional non-hardware costs like power, IT staff, render wranglers, network infrastructure, fileserver, cooling.



B) Real costs:

On the other side you can try to calculate the real costs.

Let's try some calculation for a small farm with 20 machines. 

Note that these prices are not taken from any existing farm.




Cost 

Actual cost per year

Network Switch 24x10GBit  1x25GBit

2000 for 5 years

400

Fileserver 100TB Raid10  (=200TB HDDs)

20 000 for 7 years

2860

20x Render Computer (CPU only, 32 cores (=64 HT cores), 64GB RAM, 500GB SSD)

6000 x 20 for 3 years

40000

Power infrastructure (Fileserver, Network, ... = 1500W)

1000W * 7200h= 10800 kWh * 0,35 

3780

Software 4 x Autodesk M&E Collection (Includes Maya + 5 Arnold Batch)

3000 x 4 = 12000 

12000

IT + Render Wrangler

50h each month= 1 week each month.

Eage 5000/month=> 1250 per week

15000

A/C room cooling 

Sorry, I do not have any information

?

Room rent

Sorry, I do not have any information

?

Other stuff (cables, )

1000 for 5 years

200




Sum per year


74240

Sum per year per render computer


3712




Results: Cost per machine per hour


A) Based on acquisition costs
A render computer has cost 6000. 
0.5% of the acquisition costs as rent per day.
Rent per day: 6000 /100 * 0.5 = 30

Rent per hour: 30 /24 = 1,25 / hour




B) Based on real costs
Lets say the farm is used 300 days x 24h each year.

Note that the sum 0,625 / hour is the break-even point. 
So you do not earn anything with your farm at this cost level.

And if you do not earn anything, you actually loose money as you do not got the money you spend into the hardware "for free".
And we are missing some costs like rent, taxes, ...

So we add for example 100% (=> less than 50% profit margin).


Base cost

3712 /300d /24h = 0,52

0,52 / hour

Power (300W real consumption, not what the power supply is labelled)

300W x 1h = 0.3 kWh  x 0.35

0,105 / hour




Sum per hour


0,625 / hour

Sum per hour +100% 


1,25 / hour




rrConfig setting



Now that we have the price for a machine per hour, you have to enter the costs into RR.

RR has a global setting "Cost per PS per hour" (rrConfig, menu Server, tab Misc).

In addition you can explicitely set the cost of a rrClient in its configuration.



First of all you have to check the PS of your rrClient in rrControl, client table.


Example:

RR states that your new 32 cores machine (+ Hyperthreading 64 cores) has about 145 Ghz and 300PS.
The costs are 1,25 / hour for these 300PS.

The rrConfig setting is per kiloPS (=1000 PS) per hour.


Now we convert 1,25 for 300PS into 1000 PS.
1,25/ 300 *1000 = 4,17.


We enter 4,17 into rrConfig.




rrConfig setting - Render App costs


In this example we have added the costs for the render application to the costs of all machines.
If you want to calculate different costs for different render applications and/or different renderer, 

then you can set separate costs for each render application in RR.

(rrConfig, menu RenderApps, tab Render Licenses).





Price reduction per year

You could make it even more complicated. 
If you want to. 
I just mention this to complete this information about costs. 


The calculation does not take into account that the value of a machine decreases over time.

Example: 
Your machine costs 6000. 
The CPU speed doubles every 2-3 years.
Which means in 2-3 years you get a machine which is twice as fast for 6000.

And that means your machine is worth 3000 (50%) after 2-3 years.


To compensate it, you can use different percentages of the costs per year.


Examples:

Evenly priced

Reach 50% in the 3rd year

Reach 50% after the 3rd year

100%

150%

130%

100%

100%

100%

100%

50%

70%