vSwarm priority

vSwarm calculates a priority score for every vSwarm Member, which comes into play when you submit jobs to the community.

What is the priority for?

To motivate you to participate in the vSwarm Community, we reward users for their on-line time. If someone is on-line and waits for a job, this is a good thing for the vSwarm Community. If this person processes a big number of jobs, this is even better and that is why we add even more to his priority score. On the other hand, you can't always give to the community without receiving something for your work. So as soon as you start a job, the priority comes into play. The higher your priority the more clients will receive your task to process it. But as you use the other clients, we subtract the hours consumed from your priority score.

How is the priority calculated

Every user starts with a priority of 1000. The priority can be used to process jobs and gives new members a good start for submitting jobs with a not too low priority.

Gaining priority

To boost your priority you have to spend time on-line running the vSwarm Client. While you are connected to the vSwarm Server via your client, we will add points to your priority score. Even more points are added for completing vSwarm work units of other users.

The formula

This is how we calculate the priority:

We count the hours a user (with all his clients) worked on a job. We add the on-line hours weighted by a factor (at the moment it is just 1). Then we subtract the CPU hours consumed by the user. As we want to reward users who are on-line regularly, we add a factor for each week.

The first week adds without any reduction to the priority. Hours shared or consumed 7 days ago or later, add with 75%, after 14 days or later the hours are taken into calculation with 50%. Starting with day 21 the factor is only 25%. Finally, hours consumed or shared after a period of 28 days are no longer relevant for the calculation of the priority.

The math behind it is as follows:

((CPU hours shared + CPU hours online*onlineFactor – CPU hours consumed) * 1 +
(CPU hours shared + CPU hours online*onlineFactor – CPU hours consumed) * 0,75 +
(CPU hours shared + CPU hours online*onlineFactor – CPU hours consumed) * 0,5 +
(CPU hours shared + CPU hours online*onlineFactor – CPU hours consumed) * 0,25) * AccountingFactor?

If you first create an vSwarm account or do nothing (you are not on-line at all) during the one month accounting period your priority will be 1000. The maximum priority you can achieve with our standardized PC is: 3500.
This priority is reached if you work with our standardized PC for exactly one month and without anything else consuming time on your CPU. Furthermore in this perfect world you do not lose time due to transferring files over the network / Internet. So this value is more of a theoretical nature, and we use as a reference point. The maximum priority is not limited. That means if you use more PCs or more powerful CPUs you might score higher in one month than the above mentioned 3500.

Using two standard PCs would double the priority score after one month. Minimum Priority is 1 as lower priorities are not reasonable for our probability calculation.

Using your priority points

As soon as your submitted tasks are processed on clients within the vSwarm Community we start subtracting points from your priority. So as you submit a job you will loose 1 priority point for every consumed hour. But if your priority reaches the lower limit. you will get CPU hours without loosing priority. But in case there are many jobs in the queue (many jobs competing for only a small number of clients) your job will only hardly get a free client as the probability for this event is almost zero.

How does your priority affect the distribution of your job?

To make the distribution of the jobs as fair as possible, we use your priority weighted with a random number to calculate the probability of each work unit to be submitted to a client ready for a new job. The higher your priority is, the higher is the probability, that your job will get assigned to the next free client. The lower your priority is, the less probable this event gets.

What happens if there are many jobs waiting for a client

Jobs will be a queue and processed according to their probability / priority. The higher your priority score the more probable is the event that the next free client will process your work unit.

Changes to the probability and priority over time

As more of your jobs are distributed to the clients your priority will get lower. Consequently the probability that your job will be assigned to a client decreases during the processing of your job. But keep in mind this is only important if there are fewer clients than jobs in the system. Because if there are no rivals for the next client, you will get the next client anyway.