I guess I'm just too dense to figure this out on my own, after all it took me a month or two after being spoon fed the following app_config.xml file to finally realize I had to put it in /projects/einstein.phys.uwm.edu if I ever wanted Einstein@Hm to start using 1 CPU instead of 0.5 CPU (the first program I've seen use 0.5 CPU since starting on with DOS 5 on a 386/40) BTW I didn't even figure out where to put it, that was also spoon fed to me. There was no app_config.xml file before I created this one, which apparently was a waste of time. Here's what I entered:
einsteinbinary_BRP4
Binary Radio Pulsar Search (Arecibo)
0.5
0.5
einsteinbinary_BRP4G
Binary Radio Pulsar Search (Arecibo, GPU) 1.39 (BRP4G-opencl-ati)
0.5
0.5
einsteinbinary_BRP5
Binary Radio Pulsar Search (Perseus Arm Survey)
0.5
0.5
And hear's my response after telling BOINC to "read config file"
10/26/2013 5:16:47 PM | Einstein@Home | app einsteinbinary_BRP4 not found in app_config.xml
I'm currently "running, high priority 0.5 CPU + 1 ATI GPU" Binary Radio Pulsar Search (Arecibo, GPU) 1.39 (BRP4G-opencl-ati) p.2030.201306.G46.70-oa.92.s.bogo.ooooo_1360_0 and I just noticed I'm also running 3 other Einstein projects and the 4 tasks are using 1 slot each (0-3), so I guess they're all using 3.5 CPU out of 4 available.
I have an AMD-FX 4300 Quad core CPU (3.8 Ghz) with 8 GB RAM running under W7 Ultimate 64-bit OS. Here's my BOINC preferences:
Computing allowed while CPU in use YES
Computing allowed while GPU in use YES
Computing allowed while CPU usage is less than 0% (= no restriction)
Restrictions on hours or days of usage NONE
Switch between applications every 60 minutes
Use at most 75% of CPUs*
Use at most 50% of CPU Time
Max Download rate ---
Max Upload rate ---
Transfer at most 0.00 Mbs every 0 days
Min work buffer 1 day
Max additional work buffer 1 day
Skip Image File Verification NO
Confirm before connecting NO
Disconnect when done NO
Network usage allowed 24/7 - no restrictions
Use at most 10 GB disk space
Leave at most 90 GB disk space free
Use at most 5% of total disk space
Tasks checkpoints at most every 900 seconds
Use at most 50% of page file
Use at most 50% of memory when PC in use
Use at most 75% of memory when PC is idle
Leave apps in memory while suspended YES
*This setting was totally ignored by MilkyWay@Hm, which used 4 CPUs everytime it ran, until I reset the project and haven't gotten anymore tasks for it.
Oh well at least I can't blame Microsoft or Windows this time (can I?)
CIAO - Auf Wiedersehen - ALOHA - Saludos - SHALOM - Sayonara - ADIEU - 明朝会ADIOS - להתראות - G'DAY!
Copyright © 2024 Einstein@Home. All rights reserved.
app_config.xml
)
Well, a) you had spaces in your file. Best not do so.
b) all the tags are lowercase. You had , those need to be
c) if you want to know more about the application configuration file, see http://boinc.berkeley.edu/wiki/Client_configuration#Application_configuration.
d) your client_state.xml file contains a reference to einsteinbinary_BRP4?
e) I know that einsteinbinary_BRP4G is for the GPU, so it'll need the tags, but surely the CPU only app einsteinbinary_BRP4 doesn't need them as well?
So splitting these up:
0.5
0.5
and
0.5
0.5
einsteinbinary_BRP5
Binary Radio Pulsar Search (Perseus Arm Survey)
0.5
0.5
RE: e) I know that
)
"einsteinbinary_BRP4" has apps for both CPU and Intel GPU so depending on hardware and if one wants to it might need the -tag, though not in this case as the OP haven't got any Intel GPUs.
Hi Roy, Jord has given you
)
Hi Roy,
Jord has given you some pointers as to why your app_config.xml file may not be working but I thought I'd give you some extra things to think about. First a couple of questions:-
Why do you think you need to worry about this? Each task to be processed on a GPU contains information (for the benefit of BOINC mainly) about how much CPU support is likely to be required in processing the task. This is NOT any sort of restriction on the CPU and is NOT something that the average user even needs to consider or attempt to modify. The Devs have set particular values because they are the most appropriate ones for most situations and unless you really understand exactly what you are doing, you'd be crazy to fiddle with them blindly.
Well of course there wasn't - because in 99.9% of cases it's not needed. It's much the same story as for the cc_config.xml file that you were upset about in a previous post - it's not provided in a normal installation because it's not normally needed. If you really do need one, you will have to create your own or have somebody else with sufficient skills who really understands what you are trying to do prepare it for you. Even if someone else prepares it, you should also find and read the relevant documentation, multiple times if necessary, until you fully understand what's going on. It's easy to find with google. That way you can at least look through what has been put in the file and have some chance of working out for yourself if it will work correctly.
Let's take the above statement and explain things a bit so that you can perhaps appreciate more fully what is going on. The comment about 'high priority' mode is showing because BOINC must think there is a risk of the task failing the deadline. This may or may not be true, depending on circumstances, but all you can do is either let BOINC sort it out or (if you feel lots of tasks will fail the deadline) lower your cache settings and abort the excess tasks. Do you think there is a real problem of finishing before the deadline?
The numbers show the standard project settings for tasks on AMD GPUs of 0.5 CPUs + 1.0 ATI GPUs but this doesn't mean that a half a CPU is being wasted. It simply means that the GPU (which is doing the bulk of the processing anyway) is going to need a fair bit of CPU support from time to time in order to do its job. That CPU core will be available for other things as well but it wont be able to give full attention to other things without impacting on GPU performance.
If you didn't have your BOINC setting of "Use at most 75% of CPUs", but rather had it at 100%, you would actually see 4 CPU tasks running as well as the GPU task so there would be 5 slot directories in use rather than 4. It would be quite undesirable to do this with an AMD GPU because you would tend to starve the GPU of CPU support when it needed it and the GPU tasks would run a lot more slowly. The CPU tasks would also slow down too. So, in short, you are probably pretty close to optimal conditions with that setting at 75%.
The alternative you could try would be to set your E@H project setting of "GPU utilization factor of BRP apps" to 0.5. This would have the effect of running two GPU tasks simultaneously, each showing 0.5 CPUs + 0.5 GPUs. When you add these numbers together you need one full CPU to support the GPU so BOINC will automatically prevent a CPU task from running without you having to set the CPU preference to 75% as you have done above. In fact, if you left that at 75% with the GPU utilization set at 0.5, you would get 2 GPU tasks and only 2 CPU tasks running simultaneously since the other two would be 'reserved', one by BOINC and 1 by the 75% setting. Each GPU task would take a lot longer than when run singly but maybe rather less than twice as long so that you could actually be gaining some throughput. A lot depends on how good your GPU is and I'm not familiar with the model you have so I can't really even make a guess.
I notice that you have a setting of "Use at most 50% of CPU Time". I presume you understand that this will double the run time of your tasks. I presume you are using that to prevent overheating? If you are not worried about overheating, you would get double the throughput and less chance of 'high priority' mode if you left it at 100%.
As a final thought, please don't take any of the above as any form of criticism. I'm just interested in helping you to get your machine crunching optimally. I really would like to understand why you feel you need to use an app_config.xml file?
Cheers,
Gary.
Roy has sent me more
)
Roy has sent me more information in a PM. His GPU is a Radeon 6570 and he was trying to set up an app_config.xml because he thought he needed that to run two GPU tasks simultaneously - what I call run 2x. I've decided to put my response to him back in this thread (rather than in a PM) so that everyone interested can read and participate if they wish.
I don't know the 6570 or how it performs but I had a look in this particular table which at least allows me to compare it to some others that I do have some experience with - like the 4850 that I still use at Milkyway or the 7770 and 7850 that I currently use here.
Let me point out that the average punter is quite likely to react with horror if forced to look at the above complicated looking table - that was indeed my first reaction when I decided to try GPU crunching at Milkyway a few years ago - but at least it did allow me to choose what turned out to be a very suitable GPU at the time from the big range available.
Let's explain some of the headings in the table. Core clock and memory clock should be fairly self evident - the speeds at which the 'core' and the GPU memory run, respectively. The bigger the better is probably a rough rule-of-thumb but other parameters are probably more important such as the memory interface width and the transfer rate. There have been many postings about Einstein having "high memory bandwidth requirements". In simple terms, the 'wider' the interface (number of bits) to memory the better and you should also look for higher transfer rates.
There is also a 'Pixels per clock' column. At the time I researched the 4850 for Milkyway, I seem to remember this being referred to as the number of "stream processors" and once again, the more the better.
When you look at more modern GPUs, you can see some have DDR3 memory and some have GDDR5. For the 6570, notice the big difference in memory clock and transfer rate depending on which type of memory the card has. If it's a cheap version of the card it probably has DDR3 but you need to check the specs on the box or go to the card manufacturer's web site to find out. It looks like the DDR3 version of that card might be a relatively low performer.
Low end cards tend not to perform well when you try to ramp up the number of simultaneous tasks so don't be surprised to find no improvement when running 2x. But it's probably worth a try. To do so, you should scrap the app_config.xml file as you don't need it. After doing so, stop and restart BOINC to make sure it's gone. Just before you stop and restart, make sure the following prefs are in place:-
* Use at most 100% of CPU Time
* GPU utilization factor of BRP apps 0.5
When things are fully working, the above settings will allow 2 CPU cores to remain available for GPU support duties. Your GPU may need that when running 2x. You are going to need to experiment with these to find the best conditions.
When you restart BOINC, you should update the project so that BOINC will become aware of any change in the first two settings. It won't immediately implement the third until new work is actually downloaded but that's fine. At this stage you should have 3 CPU tasks and 1 GPU task crunching. To speed up the transition to running 2x, you could slightly increase your work cache settings to trigger the fetching of new work immediately. As soon as a new GPU task is downloaded, BOINC should start the crunching of a second GPU task and you can revert your work cache settings. BOINC may tend to over-estimate your GPUs capabilities when running 2x, so watch out for initial over-fetching tendencies. You may need to reduce your work cache settings to stop this initially. All this is easier if you temporarily use local settings through BOINC Manager and then cancel the local settings when you want to go back to web site settings. I'm just assuming that you use web site settings normally, rather than local ones.
I lifted this quote from the PM because it's a common misconception. You don't need to spend anything like that to get a card very suitable for crunching. Take a 7770 for example. It's getting a bit 'old' now but can be had for less than $100. I have one in a very basic pentium dual core with a RAC >36K. It's happily crunching tasks 3x. Or perhaps a 7850. I have two and I've just seen them advertised at $159. At that price I might buy a couple more. I'm running mine 4x and they each have a RAC around 66K. Those two should be cheap at the moment because of the newer models out now. They are both quite miserly with power - particularly the 7770. There is also a 7790 which looks good on specs but is a bit too dear here at the moment.
I guess the newer replacements will be even better power-wise but will cost a lot more until somewhat later in the cycle. If the 7790 (which has been around for a while) comes down a bit in price, it should make a very good budget crunching card.
Let us all know how you get on with your own card.
Cheers,
Gary.
Gary thanks for your detailed
)
Gary thanks for your detailed messages! I deleted the app_config.xml file and changed the settings per your instructions, inc. GPU utilization factor of BRP apps 0.5 My Event Log shows
"config file not found - using default settings"
"number of usable CPUs has changed from 4 to 3"
"suspend work if non-Boinc load exceeds 75%"
"max CPUs used 3"
BTW I change my settings (for CPU, GPU, HD & RAM) at home and online to make sure everything agrees. If not I think the BOINC MANAGER settings are used but since I'm only using one PC I find it less confusing to have everything in the BOINC manager set the same way as in the online "computing preferences."
I guess you could say I thought I needed to run 2 GPU tasks simultaneously - although that's not exactly how I would have put it. I was under the impression that it was possible and I could increase my work output by doing so, since I leave my PC on 24/7 to run BOINC. However it never occurred to me that maybe my graphics card might not be up to this task until I read (or misread) your last message. Before I answered yes to "Use ATI GPU" I read that not all ATI GPUs are eligible, so I did make sure my card could run at least some GPU projects for Einstein@Hm and when I noticed that MilkyWay@Hm has GPU projects I looked into it and discovered that they require GPUs with "double precision arithmetic" (whatever that is) and that the only Radeon 6000 series cards meeting this requirement are in the 69xx series (mine is a 6570). AMD also has a chart comparing their various GPUs and that also shows mine is only a "single precision" card. BUT, I never saw anything about GPUs that can or can't handle 2 tasks simultaneously, so that never occurred to me.
re: My comment about high-priced graphics cards, I was looking at a chart specifically intended as a reference for "heavy-duty" gaming GPUs, not for number-crunching - at the time I was trying to determine if a particular game would run well (or at all) on my PC. So I guess I was comparing apples with oranges ie gaming requirements vs number-crunching requirements and/or equating GPUs ranked for gaming with having the same ranking if they were used for BOINC projects. AND believe it or not (I swear on a stack of Bibles, even though I'm an atheist) after looking at the chart comparing my GPU with 20 others I then requested a detailed comparison of my GPU with a Radeon 7790 (mentioned by Gary in his last message) and confirmed my initial impression that the 7790 was well worth the $ (which unfortunately I aint got right now).
This link has lots of specs on my GPU, most of which are meaningless to me so I dunno if any of them might indicate if it can or can't "multi-task"http://www.amd.com/us/products/desktop/graphics/amd-radeon-hd-6000/hd-6570/Pages/amd-radeon-hd-6570-overview.aspx#2
Here's a few specs that might be relevant:
Graphics Bus Capability: PCI Express 2.0
Max Bus Setting: PCI Express 2.o x16
Memory: 1024 MB DDR3
Core Clock: 650 MHz
Memory Clock: 500 MHz
Right now (29.10.0216 PST) Einstein is running 3 tasks simultaneously, one is using 1 CPU + 1 ATI GPU
CIAO - Auf Wiedersehen - ALOHA - Saludos - SHALOM - Sayonara - ADIEU - 明朝会ADIOS - להתראות - G'DAY!
RE: "config file not found
)
This is a normal message which simply means you haven't created a cc_config.xml file. You only need one of those if you want to do something special with BOINC core client configuration. You certainly don't want this.
That's fine.
Change that setting to zero which means no restriction.
This will be fine for when your GPU starts crunching 2x
That's absolutely fine. If you use local preferences like this, they override the web site settings so don't even bother changing the web settings. There are some prefs that aren't in BOINC Manager (like GPU utilization factor for example) and you will need to change those on the web site.
If you are in any doubt, please reread everything again. I've tried very hard to make everything as clear as possible. Your CPU is an FX-4300. That means you have 4 separate processing 'cores' on which you could run 4 CPU tasks - one on each core. Your GPU is an extra processing unit. It will need some degree of CPU assistance but its big advantage is that it can do calculations in a massively parallel way which (for the right type of task) can make it considerably faster than a CPU core. So, in the simplest configuration (no special settings) you could be running a single task on each computing unit - 4 CPU tasks, each one on a single CPU core, and a GPU task on the GPU core (ie 5 tasks in total). This GPU task would need CPU assistance and because it's likely to have to wait for that (if all CPU cores are busy with their own CPU tasks), it's very likely that the GPU task will be slowed down significantly. To prevent this slowdown, you can use preference setting to limit the CPU tasks to three instead of four. This is why you are best to use "75% of the processors" as a preference setting.
Your GPU can be set up (GPU utilization factor) to process more than 1 task at a time. You have enough GPU memory to have 2 tasks loaded simultaneously (factor = 0.5) and the GPU (with CPU assistance) can switch between these two tasks in such a way that it appears that both tasks are crunching simultaneously. When only crunching 1 task, the GPU is idle for a fraction of the time. When loaded with two tasks, the fraction of idle time decreases - ie the GPU is more efficiently used. I call this running 2x. Higher end GPUs can run a lot more simultaneous tasks. I've seen reports of a 7970 running 10x.
If you decide to run 2x and your GPU is too weak to cope, the run time of each task will double and you will gain nothing. If the run time of each task is less than double that of a single task, you have gained something. You wont know unless you try. I suspect you may gain a little if you are lucky. In other words it's worth a try.
It means exactly what it says. Milkyway requires calculations to be done with double the precision of standard (or single precision) calculations. It's a bit like the difference in saying pi=3.14 or pi=3.14159. The second one has a lot more precision. Einstein only requires single precision so you don't need to concern yourself about this for crunching here.
Manufacturers target the gaming community - not DC projects like Einstein and so the marketing blurb will be directed at that market. That may change in the future. The number of simultaneous tasks is a function of the memory requirements of each task, the available memory on the card, the portion of the task that can be done on the GPU and how much CPU involvement is needed. How would the manufacturer be able to comment on that? Every project with a GPU app would have different requirements.
You'd be far better off looking at a comparison table where you can compare your GPU to others within a suitable price range. There is no reason to suppose that your GPU won't be able to run 2x. The only question is whether or not you get any advantage. It won't hurt to find out.
A better description would be to say that your machine is running 2 CPU tasks on 2 CPU cores and 1 task on the GPU with CPU support. You have 2 free CPU cores to provide that support. ie, you have a total of three running tasks showing on the tasks tab of BOINC manager. Is that correct? With the settings you have quoted, you should be seeing 3 CPU tasks if you have only 1 GPU task.
You said that you have set the GPU utilization factor to 0.5. If you only have 1 GPU task running, when your machine downloads a new GPU task that should change to 2 running GPU tasks. You have a choice here. Either you wait for a new GPU task to be downloaded or you try to force the issue by incrementing your work cache settings until you get a new GPU task. What are your current settings?
Cheers,
Gary.
RE: RE: ... BUT, I never
)
There can be hardware reasons why some cards are better at running 2x than others (although only lack of memory is a real show-stopper). In the NVidia range - which is what I'm familiar with, although it's not directly relevant here - the 'Fermi' range (GTx 4xx - released 2010) introduced specialised 'context switching' supprt in hardware, which made those - and later - cards much better for running 2x.
I'm not aware of any similar threshhold for AMD/ATI cards, so as Gary says, all you can do is try it and see. If it helps - good. If not - nothing lost, just undo the change.
Thanks again to everyone here
)
Thanks again to everyone here for your input, I'm learning a lot from it. For instance, I tried (albeit somewhat hastily) looking up single/double precision while composing my last reply to Gary (message 127686) but didn't come across anything as brief and as clear as his explanation.
Right now (30.10.1315 PST) my PC is running 1 Einstein task (1 CPUs + 1 ATI GPU) and 2 MilkyWay@Hm tasks*, which is a "change of pace" recently I only recall seeing one MilkyWay task running at a time. If running MilkyWay@Hm or any of my other projects (LHC & Rosetta) is an unnecessary complication here I can stop requesting tasks from them and finish up the ones currently running. I have 14 tasks ready to start: 6 from Milkyway and 8 from Einstein,of which 4 are "Binary Radio Pulsar Search(Perseus Arm Survey) 1.39 (BRP5-opencl-ati)tasks, just like the one currently running. However the next 2 Einstein tasks waiting to run are not GPU tasks.
My work cache settings have no restrictions on max download/upload rates or network usage. My minimum work buffer and max additional work buffer have both been set to 1 day each for awhile now and this appears to be working for me, I haven't noticed any tasks not completing on time and I definitely haven't noticed any shortage of tasks to keep my PC busy all the time. BUT if any settings need to be changed let me know and I'll change them.
* Gary wrote A better description would be to say that your machine is running 2 CPU tasks on 2 CPU cores and 1 task on the GPU with CPU support ie better than what I wrote (Einstein is running 3 tasks simultaneously, one is using 1 CPU + 1 ATI GPU) Here I was just "quoting" what I saw in my BOINC Manager tasks tab to let Gary (and anyone else following the thread) know what was going on at the time. BUT I did learn something here, since I didn't know that the CPU supports the GPU - actually I never thought about it or I might have wondered why a GPU task also used a CPU core.
I guess the following quote pretty much sums up my learning process in general: Genius is 1% inspiration and 99% perspiration THOMAS EDISON
CIAO - Auf Wiedersehen - ALOHA - Saludos - SHALOM - Sayonara - ADIEU - 明朝会ADIOS - להתראות - G'DAY!
(Original Message Deleted)
)
(Original Message Deleted)
CIAO - Auf Wiedersehen - ALOHA - Saludos - SHALOM - Sayonara - ADIEU - 明朝会ADIOS - להתראות - G'DAY!
As of 11/01/13 1730 PST my
)
As of 11/01/13 1730 PST my BOINC Manager "Tasks" display shows 4 running tasks, 2 from MilkyWay@Hm and 2 from Einstein@Hm. Both Einstein tasks show "Running (1 CPUs + 1 ATI GPU." Since I only have 1 GPU I'm unclear as to what this means, I guess I expected to see 0.5 GPU per task. Maybe this will become clearer when the next set of GPU tasks begin running, if they also indicate "(1 CPUs + I ATI GPU)" I'm going to presume the displayed info is wrong, based on the following info:
There are 4 Einstein GPU tasks waiting to run, and under "Properties" they all show "Resources: 0.5 CPU + 0.5 ATI GPU"
My overall CPU usage is about 50% and the CPU temp is about 100F; my GPU load is 98% and the GPU temp is 98F.
My general prefs are still set at "use 3 CPUs max" and my Einstein pref is set at "GPU utilization factor of BRP apps 0.5"
CIAO - Auf Wiedersehen - ALOHA - Saludos - SHALOM - Sayonara - ADIEU - 明朝会ADIOS - להתראות - G'DAY!