Hardware and Project Selection Part 3 - CPU Projects

in #gridcoin8 years ago (edited)

To wrap up this GRC mining miniseries we are going to have a look at CPU mining, with emphasis on how to optimise the BOINC performance of your CPU in order to maximise your daily GRC earnings. As with GPUs, for most other cryptocurrencies this takes the form of downloading the most recent miner (usually as suggested by the coin's wiki) and running the program. For Gridcoin, optimising yield is a little more complicated.

As a reminder, we will only be addressing optimal GRC earning rate, not the philanthropic value of the projects being considered. As advancing science is a fundamental goal of the Gridcoin network, I urge you to not blindly chase profits, and dedicate some compute to projects that speak to you the most on a personal level. Further, if you have already read my post on GPU project selection you may have already covered some of the content we are about to go over.


Understanding Your CPU

There are two significant hardware specifications regarding your CPU that will govern the performance of the chip. These are the number of cores (and by extension threads), and the clock speed. To find out the specs of your machine's CPU, we can request Windows to run the DirectX Diagnostics Tool. The easiest way to do this is hitting start, typing 'run', and entering 'dxdiag', just like we did in the previous article on GPU projects.


If you are asked whether or not you would like to check if your drivers are digitally signed, choose 'no'. You will now be presented with a screen like this:


The fields highlighted in yellow tell us that in my machine I have a total of 4 CPUs available, running at a clock speed of 3.20GHz. Note that the DirectX Diagnostics Tool makes no distinction between cores and threads, labeling them all as cores. For example, if you had an i7 6700 in your machine, the DirectX Diagnostics Tool will label that CPU as possessing 8 cores. In reality, you are fielding 4 cores which are able to function as 8 virtual processors through hyper-threading.

Picking The Project

While the clock speed we looked up in the previous step will determine our BOINC compute rate, and thus our GRC mining rate, there is nothing we can do in terms of optimisation at this stage unless you are looking to buy new hardware. We are going to focus on getting the most use out of the threads you have available to your machine. Your first step will be to go to the Gridcoin Whitelist and look what CPU projects are available. Then, go to the Gridcoinstats Website and sort all the whitelisted projects by number of hosts:


All Gridcoins mined each day are split evenly between the projects, and then split between each project's contributors based on their contribution relative to the other contributors. As such, we want to contribute the largest fraction of the overall compute to a project. Pick one of the projects with the fewest hosts, and assign your CPU to that. Make sure this is a CPU project! If you assign your CPU to a GPU-focused project with CPU jobs, the GPUs will outperform your CPU by such a wide margin you will earn practically nothing.

At the time of writing, Tn-grid is a solid choice.

Depending on what project you picked, you may be finished at this stage. However, some projects have a lot of different applications (the jobs you crunch) that run on varying numbers of threads. These are listed on the homepage of the project. Sometimes, specific job configurations may leave some threads idle. For example, YAFU occasionally sends out lots of applications that require 8 threads. If you have a 12 thread machine (I have one right next to me) and you are only queuing 8 thread jobs, 33% of your CPU time is going to waste. If this is the case, make sure you add another project to make use of any idle CPU time.

An exception to the above rule will be if you are also trying to optimise the performance of your GPU. In this case, you want to leave some CPU time idle to do the co-processing of the job your GPU is crunching, lest it be throttled. Remember, GPUs crunch far faster than CPUs, so you don't want to throttle yours. To control how much of your CPU time is assigned to CPU jobs, in your BOINC manager click 'options' --> 'computing preferences', and modify the highlighted field:


Make sure you modify the '% of the CPUs' field, and not the '% of CPU time' field. The latter is useful primarily if your machine is overheating, and can else be left at 100%. If you are not running any GPU jobs, then you can leave both fields at 100%.

Further CPU Optimisation

Having followed the above steps you can further optimise your CPU's BOINC performance by doing one or more of the following:

  • Overclocking and overvolting your CPU (advanced users only - you can brick your device)
  • Configure BOINC to run as a service install (can yield a marginal performance boost)

These options are both outside the scope of what I would like to discuss in this article. If you have any questions about this, feel free to leave a comment below and I would be happy to help.

Good luck, and don't be afraid to ask for help if you need it!


Sort:  

Thanks for putting all this info together and sharing! I've got em bookmarked for when I start shopping around for a new computer. (Right now I have two ailing laptops so might be soon!)

You're very welcome! I hoped to answer all the most common questions on project selection and hardware that we see in the subreddit in a concise manner, and hope I achieved that.

Remember that I was mainly concerned with project selection for existing hardware. There are a lot more factors to consider when buying components. =)

Running BOINC as a service can cause problems on Win10 and I think it is no longer possible with the newest versions because of this.

I'll have to look into that. I have installed BOINC as a service on Windows 10 before, but that was a while ago now.

The main limiting factor I experienced on every Windows OS after Windows XP is that a service install locks BOINC out of using the GPU. This is due to Windows, so nothing the BOINC team can fix or change...

hm.. maybe it was on more Wins, I don't know. Could well be an update that was also for the older OSes. It worked 2 years ago, I know that :D

Excellent resource for beginners questions! Will share the series regularly.

Thanks!

New superblock has been issued and all usual BOINC projects are back on the list now. @dutch, do you think it would be possible to update the included projects pic? Noobies will be confused with this incomplete one.

Thank you for the heads up! Updated.

Thanks for the great articles! I am a beginner and I would like to start working. What can you say about cloud folding?

I assume you are referring to Folding@Home, which is a very similar project to the BOINC/Gridcoin system but is rewarded with Curecoin instead. Unlike BOINC, which spreads research compute across many different projects, Folding@Home focuses all its compute on folding protein structures.

Both projects are dear to me, as they allow the crypto-sphere to benefit computational science.

Be careful with Google Searching 'Cloud Folding' as you will be presented with several middle men that offer to fold proteins for you (yielding you Curecoin) in exchange for payment. They do this to skim profits. If you want to start with Curecoin, go to the official website and start folding in your browser (CPU only - slow) or download the full client (CPU and GPU - fast).

Thank you for this article, very newbie-friendly :)
I still have one question left: You said that one should order the projects by number of hosts. Does this mean I should order by users, or by RAC?
I found another article a while ago where one was encouraged to sort by RAC.

To make things clear, which of these options would be more profitable:

  1. Srbase with 2,840,000 RAC and 264 Users
  2. tn-grid with 1,535,714 RAC and 301 Users

I interpreted that to mean "users", so in your case sr would be better based on fewer hosts. But there is more to consider than simply number of hosts, that's just a good rule of thumb.

Thank you for your help. I was helped to understand

No worries. Let me know if you have any questions or need a hand getting started.

@dutch, I was wondering if there was an easy way to observe high-thread count projects by any easily accessable page? I have an idle 64-core sitting in the basement, looking for work...

Wonderful Post. Thank You :)