Got 4 CPU tasks.
Running, 24/7.
Seems they will take a long time (about 25 hours each)!!!
Preferences:-
"On multiprocessor systems, use at most" 100% "% of the processors"
"Use at most" 50% "%CPU time"
After 2 days only 45% completed and still +/- 22H 30M "Remaining" for each task.
I changed Preferences to:-
"On multiprocesor systems, use at most" 25% "% of the processors"
"Use at most" 100% "%CPU time"
So 1 task was running and 3 waiting, as expected.
After approx 2.5 hours elapsed that task now has only 15H 30M Remaining???
Put another way, 45% complete after 2 days running 4 tasks versus 14% extra complete in 2.5 hours running just 1 task.
Something's wrong here.
XP Pro 32-bit SP3 / Q6600/ 3gb RAM / plenty of free disk space / cooling is Extreme
FWIW with just 1 task running, in Task Manager all 4 cores are "busy" but no single core is at 100% - Windows spreading the load? Speculation:- maybe hopeless if 4 E@H tasks are running???
FWIW2 Went to 2 tasks running, via 50% CPU @ 100% each. Similar excellent progress.
Copyright © 2024 Einstein@Home. All rights reserved.
Weird behaviour on quad core PC (slow!)
)
You haven't run one task to completion yet, which is why BOINC is estimating the Remaining (estimate) so high. This is since the project gives out these tasks with a pretty high amount of flops, so slow as well as fast computers can run them in the time-to-deadline.
Only after you have returned tasks that were fully completed (uploaded result + reported), will BOINC start to learn about their real run time length. It won't learn it when the tasks time out or you abort them.
Problem factored in is that you've got the Binary Radio Pulsar Search (Arecibo) tasks (BRP4s), which are automatically longer and heavier (denser) than the default Gravitational Wave S6 LineVeto (GL6) search tasks.
About telling your CPU to use only 1 core or all 4, even when you run 4 tasks after each other on the 1 core, they will take longer than running all 4 at the same time. Even within the same sort of tasks there are variations in run time length.
So the only thing wrong here is your estimation that something must be wrong. There isn't. Just let BOINC do its work, finish those tasks. Eventually, after a couple of of weeks, will BOINC show you correct run time estimates.
Apropos, before you ask, no the AMD 38x0 that you have cannot be used at this project. OpenCL 1.1 compliant cards are needed, which means the HD4xxx range and better.
RE: Got 4 CPU
)
In the first configuration, you explicitly asked BOINC to "throttle" the app down to using only half of the CPU cycles, which explains why you did not see 100% load on any of the CPUs. So it's really not surprising that this configuration had a longer task completion time compared to your second configuration when you allowed BOINC to use 100% of the CPU cycles on the active cores.
Note that the apps are "single threaded", that is each instance of a task can at most use one core. UNless we are dealing with complications like hyperthreaded CPUs or situations where memory access becomes a limiting factor, the individual CPU time needed to complete a task should roughly be the same whether you run one one or many of them in parallel, up to the number of physical cores in your CPU(s), if you use otherwise identical settings (which you didn't, see above).
Cheers
HB
I'm not that bothered about
)
I'm not that bothered about estimated to complete. I am worried about how long it takes in real time to complete tasks.
I disagree, gently.
Fact: after 2 x 24 hours and only approx 45% complete. Extrapolation: with 55% remaining that will take +/- 2.5 days. Total roughly 4.5 days, real time. Conjecture: 1 task running alone should not take 24 hours real time ...
I didn't mention 100% load and it's as expected, so not a problem.
THIS is the main issue and if you see the original figures again you will understand.
I played around with this a bit and even with 50% cores at 100% leaving two spare cores the work progress for each task was far lower than with just 1 task running alone.
Perhaps when running >1 task the O/S is trying to load balance across cores, getting in the way of things? Maybe memory management is an issue?
Anyway, I know what I see and the passing of real time is a fact, and something weird is happening. I'll stick to running a single task at a time for now, keep checking, then provide actual data ...
FWIW when running 1 task, the only way I could get it to use 1 core is when I Set Affinity in Task Manager for that one task to run exclusively on one core - then that 1 core runs at 100%. When Set Affinity is reset to use all cores for that task, then that 1 task uses all the cores and no one core is at 100%. Check it, it only takes 5 seconds. So 4 tasks on 4 cores ... then the weirdness begins.
Hi! I think you should
)
Hi!
I think you should really follow the advice that Ageless gave you: have jobs run to completion and check the times then.
In your first message you write:
and in your previous message you wrote:
Which one is correct??
So I suggest to make some consistent measurements (with nothing else stressing the PC as the BOINC jobs have low priority, of course).
Cheers
HB
As promised, some data, real
)
As promised, some data, real elapsed times, no estimates, no theory.
As before, 4 cores @ 50% & 4 tasks it took 2 days to get to 45% running concurrently.
Now 3 of those tasks @ 100% on one core completed the remaining 55% within 1 day running consecutively.
Actual, real, elapsed times.
Summary.
Processing power.
1 x 100% > 4 x 50% ... it makes no sense, but it just works that way, for Einstein, for the same PC.
Also ...
Electricity consumption.
4 x 50% > 1 x 100% ... it will always be that way for the same PC assuming no runaway thermal issues.
So I and maybe many others seem to be wasting electricity - an explanation is respectfully requested.
I humbly subit that all of the above actual, observed data could have already been extrapolated from my original post. But I'm always happy to double check by providing real evidence.
The way in wich BOINC handles
)
The way in wich BOINC handles the "use at most xx% of CPU time" is by stopping and resuming crunching on a (IIRC) 10 minute basis. so 50% means that your computer will be crunching for 5 minutes at full steam and completely stopped for the other 5 mins.
This option is there to help in some cases where temperatures rises too much, but is really bad for performance and for energy efficiency, and it adds a lot of overhead to the apps due to the constant stop and restart thing...
Your meassure saying that 4 cores at 50% time is slower than 2 cores at 100% time is correct and expected but it seems that in your system the difference is very extreme...
If you need to throttle BOINC due to heat issues it will be prefferable to use the TThrottle add-on which will let you set a target temp and the system will be throttled dinamically to keep that temp and the way in which this tool works is way better for performance and energy efficiency.
Now, the second set of comparissons you should do is using different number of cores but allways at 100% time. If your system is not very bussy doing other things it should be that as you use more cores the times will be slightly longer but not longer enough to decrease the overall throughput due to the extra cores...
What I mean is that the expected thing is if 1 tasks takes 10 mins. using only one core 2 tasks should take less than 20 mins. each using 2 cores and so on. If this doesnt apply to your system, may be there is something else going on.
In my system, I cant see any difference at all using between 1 and 6 of the 8 (virtual Hyperthreaded) cores, the CPU crunching times go slighltly longer only when I use 7 or 8 cores, most probably due to the overhead of sharing the cores with other tasks I do in the computer...
RE: If you need to throttle
)
I do not, as previously stated (Extreme cooling).
I did that - see my last post.
I agree.
THAT JUST DOES NOT HAPPEN WITH THIS PROJECT ON MY PC. There - I shouted it. (Sorry - forced to do so as no-one appears to take this seriously. I'm sorry.)
Running 4 tasks on a quad core non-hyperthreaded PC concurrently - even at 50% CPU load - there is weirdness.
Before replying please, please read my original post. Then my correlate with my last post and try to understand that there is a real and serious issue here.
See topic title.
AAAAAAARRRRRGGGGGHHH!
So, at what point do I start
)
So, at what point do I start throwing rocks?
RE: The way in wich BOINC
)
It's 10 seconds, not minutes. The end result may be the same, but it's not running 5 minutes continuously, then 5 minutes suspended at 50%. Instead it runs a second, pauses a second, runs a second, pauses a second, etc. Just making that clear.
If 1 task takes 10 minutes, two tasks running on the same CPU core take 20 minutes or more, not less. It depends on how they run, after each other, or at the same time.
If each task takes 2 cores, this would imply a form of multi-threaded application, which Einstein doesn't have.
But here's a very easy way to see what times your tasks should take, when you run 100% CPU time. Each task is set to take 140000000000000 flops. Your CPU's benchmarks state that your CPU can do 2362.5 million ops/sec.
So we do (140000000000000 / (2362.5 * 1000000)) = 59259,26 seconds or 16 hours. That's the estimated CPU time they should take. (We're not comparing wall-time, as that includes minutes of loading into and unloading from memory).
By running (even for part of the time) at 50% CPU time, this amount doubles. Then your 116,000+, 122,000+ and 125,000+ times are correct.
RE: RE: What I mean is
)
may be Ive worded it wrong, but i meant 1 task per core, so only one task using only one core or 2 tasks using 2 cores (one core each task)...
In this way each task should take no more than twice the time, in fact it should take almost the same time as each core is independent, but due to shared memory and buses in practice they will take slightly longer (and if everything is working right the difference should not be even noticeable)...