First dual-task project not handled so well

Message boards : BOINC client : First dual-task project not handled so well
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Ananas

Send message
Joined: 27 Jun 06
Posts: 305
Germany
Message 15151 - Posted: 28 Jan 2008, 22:20:13 UTC
Last modified: 28 Jan 2008, 22:44:37 UTC

MindModeling.org runs two different tasks, both consuming CPU time.

It would be a good enhancement if the client knew about such a behaviour and could respect it, i.e. start an application like MindModeling alone on a dual CPU or dual core machine and if it would sum up the consumed CPU time of both tasks.

I am not sure wether those two tasks will run during the whole calculation as I just started my 1st result there.

Might be a good time to include scenarios like this into the BOINC concepts.


p.s.: of course one could say that it is a project issue and that they should run the tasks one behind the other - but otoh. there might be 2-task projects that play data ping pong, i.e. the first tasks prepares a paket of data that the second task handles, while the first already prepares the next paket. Another scenario would be a competition between two tasks, like two chess engines on one machine.
ID: 15151 · Report as offensive
Nicolas

Send message
Joined: 19 Jan 07
Posts: 1179
Argentina
Message 15153 - Posted: 29 Jan 2008, 3:07:50 UTC - in response to Message 15151.  

MindModeling is not following BOINC rules. You mean a single workunit is starting two tasks both using CPU time? That's surely going to cause problems. That can't be done until BOINC supports multi-threaded applications, and knows how to schedule them correctly.
ID: 15153 · Report as offensive
Profile Ananas

Send message
Joined: 27 Jun 06
Posts: 305
Germany
Message 15154 - Posted: 29 Jan 2008, 8:18:17 UTC
Last modified: 29 Jan 2008, 8:21:37 UTC

Yes, I know that BOINC currently isn't thought to be used like this. The answers I got from the MindModeling project developer show that his project application isn't thought to behave like this either ;-)

But the bug in the project application would allow to play with this behaviour and make plans how to include support for it.

So don't see this thread as a bug report, it is definitely not a bug in BOINC, it just points to a possible enhancement for the future.
ID: 15154 · Report as offensive
zombie67
Avatar

Send message
Joined: 14 Feb 06
Posts: 139
United States
Message 15155 - Posted: 29 Jan 2008, 8:40:16 UTC

Wait. I thought BOINC could only allow one task per thread. Did MindModeling really find a way to allow a task to use more than one thread inside BOINC? If so, this is great news for MT apps, no? Should someone tell Folding@Home?

Also, what does this mean when a single project task takes over all my threads? Especially to all the other BOINC tasks running?
Reno, NV
Team: SETI.USA
ID: 15155 · Report as offensive
Profile Ananas

Send message
Joined: 27 Jun 06
Posts: 305
Germany
Message 15156 - Posted: 29 Jan 2008, 9:05:09 UTC
Last modified: 29 Jan 2008, 9:22:53 UTC

BOINC starts only one MM task, this MM program spawns 2 other programs.

One of those two others is just a watchdog, thought to check for crashes. It does not consume any CPU time.

If I understood it right, the second child application is the worker thread that is supposed to use the CPU.

Unfortunately the very first task (the one that has been started by BOINC) is not sleeping while it waits for the worker task to end but consumes a lot of CPU time itself (system time, not user time !!!), which can go up to 90%. Not much left for the worker task, which is clearly a bug in the project application.

So on a dual CPU machine with one running MM workunit and one of a different project, MM consumes about 2/3rd, leaving only 1/3rd for the other project.


With two MM workunits, the situation gets worse, the two first tasks consume up to 90% CPU (mostly system load), leaving only about 10% for the worker programs.


I have not been so very successful to make the project guy acknowledge that bug, he thinks that it's my BOINC settings - but I'm working on that ;-)


Afaik. account creation is open, so try it yourself : http://mindmodeling.org/beta/


p.s.: I tried it on a machine with two physical CPUs with one core each, not a hyperthreaded P4 or Xeon. So what happened cannot be a side effect of ressource conflicts caused by hyperthreading or an L3 cache used by two cores together
ID: 15156 · Report as offensive
Nicolas

Send message
Joined: 19 Jan 07
Posts: 1179
Argentina
Message 15157 - Posted: 29 Jan 2008, 18:21:14 UTC - in response to Message 15155.  

Wait. I thought BOINC could only allow one task per thread. Did MindModeling really find a way to allow a task to use more than one thread inside BOINC? If so, this is great news for MT apps, no? Should someone tell Folding@Home?

"Found a way"? Nope. It has *always* been possible to run as many threads as you wanted. However, that could starve other projects and really screw up with the client scheduler decisions. And that's exactly what is happening here.

Also, what does this mean when a single project task takes over all my threads? Especially to all the other BOINC tasks running?

If BOINC really supported multiple threads on BOINC tasks, it would, for example, run MM alone in times where it would have started two tasks instead. Since this isn't supported yet, you have more threads running than cores. Again, causing problems with scheduler and work-fetch decisions.

ID: 15157 · Report as offensive

Message boards : BOINC client : First dual-task project not handled so well

Copyright © 2024 University of California.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.