Weird behaviour on quad core PC (slow!)

Ray_GTI-R
Ray_GTI-R
Joined: 11 Oct 12
Posts: 6
Credit: 1500
RAC: 0
Topic 196616

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.

Jord
Joined: 26 Jan 05
Posts: 2952
Credit: 5779100
RAC: 0

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.

Bikeman (Heinz-Bernd Eggenstein)
Bikeman (Heinz-...
Moderator
Joined: 28 Aug 06
Posts: 3522
Credit: 692133185
RAC: 49105

RE: Got 4 CPU

Quote:

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"

[...]
FWIW with just 1 task running, in Task Manager all 4 cores are "busy" but no single core is at 100%

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

Ray_GTI-R
Ray_GTI-R
Joined: 11 Oct 12
Posts: 6
Credit: 1500
RAC: 0

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.

Quote:
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.

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 ...

Quote:
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

I didn't mention 100% load and it's as expected, so not a problem.

Quote:
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),

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.

Bikeman (Heinz-Bernd Eggenstein)
Bikeman (Heinz-...
Moderator
Joined: 28 Aug 06
Posts: 3522
Credit: 692133185
RAC: 49105

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:

Quote:

FWIW2 Went to 2 tasks running, via 50% CPU @ 100% each. Similar excellent progress.

and in your previous message you wrote:

Quote:

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.

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

Ray_GTI-R
Ray_GTI-R
Joined: 11 Oct 12
Posts: 6
Credit: 1500
RAC: 0

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.

Horacio
Horacio
Joined: 3 Oct 11
Posts: 205
Credit: 80557243
RAC: 0

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...

Ray_GTI-R
Ray_GTI-R
Joined: 11 Oct 12
Posts: 6
Credit: 1500
RAC: 0

RE: If you need to throttle

Quote:
If you need to throttle BOINC due to heat issues

I do not, as previously stated (Extreme cooling).

Quote:
the second set of comparissons you should do is using different number of cores but allways at 100%

I did that - see my last post.

Quote:
{if]1 task takes 10 mins using only one core 2 tasks should take less than 20 mins each using 2 cores

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.

Quote:
may be there is something else going on

See topic title.

AAAAAAARRRRRGGGGGHHH!

Ray_GTI-R
Ray_GTI-R
Joined: 11 Oct 12
Posts: 6
Credit: 1500
RAC: 0

So, at what point do I start

So, at what point do I start throwing rocks?

Jord
Joined: 26 Jan 05
Posts: 2952
Credit: 5779100
RAC: 0

RE: The way in wich BOINC

Quote:
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.


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.

Quote:
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 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.

Horacio
Horacio
Joined: 3 Oct 11
Posts: 205
Credit: 80557243
RAC: 0

RE: RE: What I mean is

Quote:
Quote:
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 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.


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)...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.