BOINC Hardware SurveysteemCreated with Sketch.

in #boinc2 years ago (edited)

Introduction

BOINC is an open-source program that allows for volunteers to participate in grid computing. It is a platform that allows researchers to run projects that they would otherwise not have the resources to complete by tapping into the otherwise unused computing resources of personal computers around the globe. This however leaves open some questions about the computers participating in these volunteer projects.

This survey of participating hosts is an attempt to find out what are the most common types of hardware being used for the projects. This information is important for several reasons, including:

  • How wide spread is AVX support, what about AVX 512?
  • Does it make sense to create GPU tasks using OpenCL?
  • Since there is a diverse range of hardware, what is the average performance per watt like?

Outline

  • Table of most common CPUs
  • Table of most common GPUs
  • Chart of BOINC version

Method

The data presented here is based on a snapshot of all host configurations from BOINC projects on the Gridcoin whitelist taken on 29/4/2018. The full dataset includes hardware information, recent average credit (RAC), BOINC version, and virtual box version (more than 90% using version 5.0 or newer).

Project data was separated based on whether the project is CPU or GPU focused to try to reduce the amount of double counting (for example running one CPU project and one GPU project on the same machine). The number of times each component turned up in the database was counted.

Tools

Two Bash scripts where used to generate this data. The first script UpdateDatabaseFiles.sh downloads the host data needed from all of the Gridcoin whitelisted projects and decompresses the data. This script was originally written for QuickMag.

The second script is HWsurvey.sh. This script takes the downloaded data files and extracts all the CPU and GPU data. Hosts with less than 25 RAC are ignored, as there is a good chance that they are not actively working on the project. The data is then sorted and the number of times each piece of hardware (or version of software) comes up is recorded. The model of CPU, GPU, VirtualBox, and BOINC and the number of people using them are recorded to a file.

These scripts can be found here: https://github.com/nexus-prime/BOINCsurvey

Results

Table of most common CPUs

CPUmodel.png

This table lists the 35 most common CPU models actively working on CPU focused BOINC projects. The full table can be found HERE. This table demonstrates Intel’s dominance over AMD in market share. The only non-Intel CPUs in this list are the Opteron 6282 SE and two models using ARMv7. Intel CPUs make up 94% of CPUs, AMD 4.5%, and ARM 1.3%.

Additionally we can use this table to see that the top 14 CPU models all support AVX. In total this works out to more than 78% of CPUs. However, only around 373 hosts currently participating in BOINC support AVX512.

We can also use this information to estimate the average efficiency of the CPUs running BOINC calculations if we make some assumptions. Assuming that every CPU is fully utilized, running at stock settings, and that power usage is equal to the TDP of the part, we can estimate that the efficiency of the “average” CPU running BOINC tasks is slightly above that of an i5/i7 SandyBridge part and around the same as a i5 IvyBridge part.

Table of most common GPUs

GPUmodel.png

This table lists the 35 most common GPUs (excluding integrated GPUs) being used on GPU focused BOINC projects. The full table can be found HERE. This table shows one of the reasons that projects tend to favor CUDA over OpenCL, market share. The top 11 GPUs all support some version of CUDA. Going further into market share for discrete GPUs we see that Nvidia GPUs make up 68% of all GPUs actively participating in GPU focused BOINC projects, leaving AMD with 32%.

The approximate performance per watt of the “average” GPU participating in a GPU focused BOINC project is close to that of the GTX TITAN X (Maxwell) or a Radeon R9 M395.

Chart of BOINC version

BOINCversion.png

The most common version of BOINC running on hosts is version 6.10 (32%) which was released in 2009. Tasks using VirtualBox where added in 6.12. OpenCL was not supported by BOINC until version 7.0.25. This means that 32% of hosts cannot run tasks that use VirtualBox or OpenCL. VirtualBox began being bundled with the default BOINC installer at version 7.02.

The question is whether there is a compatibility issue somewhere that prevents people from upgrading past 6.10 or if the users don’t see a reason to upgrade?

Sort:  

How hard would it be to use the hardware statistics to get upper and lower bounds on the total processing power of the network? We could then compare these figures to estimated GFLOPS from the projects themselves, as reported in the monthly 'State of the Network' posts. I have been skeptical of the reliability of the latter values for some projects.

Well, I suppose I could get the estimates myself, but maybe it'd be faster for you since you already are familiar with the scripts.

There are some bits that can make that a bit tricky.

  • Are the CPUs/GPUs under full load?
  • How efficient is the code being run?
  • How many CPUs are in a given server?

I can definitely come up with an upper bound. Finding an automatic way to lookup the FLOPS for the different components might take some time, but even if I have to to the top 30 or so by hand it is still possible.

It can be my next project.

There are some bits that can make that a bit tricky.

Sure. The upper and lower bounds probably wouldn't be very tight, but I think they still could be useful. And yeah, looking up FLOPS for each device would be a pain. On the other hand, perhaps you could work with averages rather than individual components (or, like you are saying, do the most common components by hand, and ballpark the rest.)

Hi @nexusprime and @h202:

I have been skeptical of the reliability of the latter values for some projects.

I have the same concerns.

Finding an automatic way to lookup the FLOPS for the different components might take some time

Fore Nvidia GPUs the numbers can be pulled from here, and for AMD GPUS here.

Regarding CPUs, it's a bit more of a pain, I've found info on ark.intel.com for individual products before, but I had to get a particularly hard-to-find pdf from there and I can't find right now, so I don't have a link.

I've been working on a similar proposal for a hardware profiling database built by GridCoin users, one of the purposes of which would be to provide a large amount of data that potential projects could use to optimize future decisions. I think we have overlapping goals and if you're interested in working together I'm on Discord and usually available during/after the Fireside chats.

Congratulations @nexusprime! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of upvotes

Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Upvote this notification to help all Steemit users. Learn why here!