Updating our CPU and GPU counts

It’s always fun to watch the number of CPUs and GPUs running Folding@home! Earlier this year was particularly exciting as we saw explosive growth in Folding@home in response to our work on SARS-CoV-2/COVID-19, reaching the exascale even with a conservative estimate of the performance of each machine. As participation grew, so did the number of simulations pouring into our servers.

In the past few weeks, we’ve seen another growth spurt, particularly in our GPU counts, but something looked odd. The number of simulations coming in also grew, but this time not to the same extent as one might expect in terms of the number of devices being reported. After some digging, we discovered a mismatch between the way we count unique devices and some of the new ways that people are running the Folding@home software.

The upshot is that  some devices were getting counted repeatedly, and we’re going to change our algorithm to more accurately reflect the number of devices that are active.

For those interested in the technical details, we suspect that the issue stems from use of containers that are not using persistent storage. Each time one of these containers starts up, it gets a new ID and appears to our servers as a new device. Because the Folding@home software is not in constant communication with our servers, we have to count the number of devices that contact our servers in a fixed window of time. The bigger the window of time, the more room for a device to get counted multiple times. As a quick fix, we’ll be shrinking this window to minimize over-counting. Looking ahead, we plan to assess the performance of Folding@home in terms of the amount of simulation data coming into our servers rather than relying on IDs generated by the Folding@home software.

If you’re interested in using containers, we highly recommend the containers we created in collaboration with NVIDIA. They use persistent storage, which will help you avoid discarding partially completed work units and help us accurately keep track of how many devices are participating in Folding@home.