As some of you know I'm currently experimenting to predict BOINC RAC for certain projects. Here are my first observations. Note that I'm still tinkering and this is by no means a conclusion yet.
The math used to calculate RAC can be found in the BOINC sourcecode. It is not that hard and I'll explain it in another story once I get further with my tinkering. My current experiment uses data of a machine that is running VGTU with 3 cores 24/7.
Observation 1
Depending on the task at hand RAC can take quite some time to build up. This is a graph of one of the predictions. The value is not accurate yet. But the slope and timeframe are. In this case RAC will be rising for about a half year.
Observation 2
RAC seems to be based on reporting time and points earned. Points earned might differ from project to project and from application to application (more on that later, I first need to get this right). The important part here seems to be that this is not the amount of time the host needs to complete the task, but the timestamps of when the host reports the results. Using the CPU time I get quite close but not exactly the same. I didn't expect this.
First column is reporting time, second but last column is CPU time. As you can see two tasks are reported with no time difference. Because part of the RAC calculation is exponential and there are exceptions for 0 difference time this has influence.
Observation 3
Sometimes the reporting time is not sequential. Entry two and three should be swapped. This also has influence on the RAC.
Intermediate conlusion
My first idea was to take the calculation time as a base. After all, average reporting time and average calculation time should be the same. On average this should probably work. Because of the exceptions shown however I think this won't work. The difficulty I'm facing now is to simulate I need enough data at the right moment. RAC on the project website is calculated when the page is loaded and can't be viewed over time. There is no coupling of the RAC to the results. I currently keep a close eye on the page and try to write down the RAC as much as possible to get a good simulation base. I'll keep you all updated.