Please take a look

Message boards : Number crunching : Please take a look
Message board moderation

To post messages, you must log in.

AuthorMessage
Profile Darrell
Volunteer tester
Avatar

Send message
Joined: 14 Mar 03
Posts: 267
Credit: 1,418,681
RAC: 0
United States
Message 1870328 - Posted: 31 May 2017, 15:44:16 UTC

Wanted to capture a screenshot of a Seti task doing this, but wasn't fast enough. Manage to get one with a primegrid task. Please take a look and give me your thoughts:

https://1drv.ms/i/s!ArIvftV8roEagVuUur-PZMx_LGz0

Remember, I have a six core processor.
... and still I fear, and still I dare not laugh at the Mad Man!

Queen - The Prophet's Song
ID: 1870328 · Report as offensive
Profile Darrell
Volunteer tester
Avatar

Send message
Joined: 14 Mar 03
Posts: 267
Credit: 1,418,681
RAC: 0
United States
Message 1870395 - Posted: 31 May 2017, 22:11:00 UTC

Hmm, 40 views of the question and no comments, maybe I can generate some by adding some more info. If I take the app_config xml that I created in each of the GPU projects and rename it to say app_config_one or app_config_two dot xml, depending upon whether I was running two tasks at a time on the GPU or one. And then have the Manager issue a read config files command, Boinc will no longer find an app modifying config file and return to the basic cpu usage values set by the programmer and downloaded from the project website when the app was first downloaded.

These values can be found in the client_state xml file (Boinc's paper brain) under the tag <app_version> for each app that you have from a project. In the <app_version> section are two tags <avg_ncpus> and <max_ncpus>, the <max_ncpus> is set by the programmer and cannot be changed by the user. The <avg_ncpus> gets it value from <max_ncpus> from the program's first download or by removing the modifying app_config xml or by setting cpu_usage in an app_config xml or avg_ncpus in an app_info xml.

So in the screenshot link in the first post you can see in BoincManager that after removing the app_config xmls Boinc is running a PrimeGrid PPS Sieve task on the GPU with its default value of 0.156 cpus. With the computing preference set to 68%, I get four CPU tasks running, each using a full core or 16.7% of the total CPU as shown by System Explorer in the screenshot. The GPU task is being fed by the fifth core (the reserved core) and is usually less than 16.7%, but in the screenshot you can see where the task has at one point used more than a full core and is using 17.1% of the total CPU.

I tried to catch a Seti task where it was using 18.6% for a moment, but the screen capture software could not respond quick enough. It was just a matter of luck that I was able to catch the PrimeGrid task because the spikes of usage of more than one core are very transient.
ID: 1870395 · Report as offensive
Profile Zalster Special Project $250 donor
Volunteer tester
Avatar

Send message
Joined: 27 May 99
Posts: 5517
Credit: 528,817,460
RAC: 242
United States
Message 1870404 - Posted: 31 May 2017, 23:06:40 UTC - in response to Message 1870395.  

Darrell, what is your question?

Are you asking why a GPU task might periodically use more than the stated value in the BOINC manager and use up to a full core for brief periods of time?
ID: 1870404 · Report as offensive
Profile HAL9000
Volunteer tester
Avatar

Send message
Joined: 11 Sep 99
Posts: 6534
Credit: 196,805,888
RAC: 57
United States
Message 1870417 - Posted: 31 May 2017, 23:38:17 UTC
Last modified: 31 May 2017, 23:43:18 UTC

Step 1) Actually describe your problem or what you are trying to investigate.
My response to "look at this and tell me what you think" would be "That's a screenshot"
Step 2) Sometimes you have to wait a while for people to actually read your post and figure out what is going on.

Also you can override/adjust the <avg_ncpus> value for any application or project with an [http://boinc.berkeley.edu/wiki/Client_configuration#Application_configuration]app_config.xml[/url]
I'm not sure if you are thinking this, but despite what most people seem to assume. The "CPU usage" for an app has absolutely nothing to do with controlling the CPU usage for the science apps.
BOINC uses the value to figure out how to allocate the CPU resources for a host.
If you were to specify 3.0 for either <cpu_usage> or <avg_ncpus> in an app_config an application on your 6 CPU system. Then BOINC would only run 3 other CPU tasks.
One one of my systems the app_config parameter for <project_max_concurrent> stops working after the current running tasks finish and new ones start. To combat this I have my app config configured like this:
<app>
	<name>setiathome_v8</name>
	<gpu_versions>
		<gpu_usage>1.0</gpu_usage>
		<cpu_usage>2.0</cpu_usage>
	</gpu_versions>
</app>

So that while the GPU has work no more than 3 SETI@home tasks will be running on my 4c/4t system.

A science app using more than 1 CPU core intermittently isn't really unexpected. Since all of the threads in an application are not normally bound to a specific processor.
There might be a main worker thread that is going to actual calculations. Then another to do the background BOINC communications or data writing.
SETI@home classic workunits: 93,865 CPU time: 863,447 hours
Join the [url=http://tinyurl.com/8y46zvu]BP6/VP6 User Group[
ID: 1870417 · Report as offensive
Profile Darrell
Volunteer tester
Avatar

Send message
Joined: 14 Mar 03
Posts: 267
Credit: 1,418,681
RAC: 0
United States
Message 1870426 - Posted: 1 Jun 2017, 0:06:33 UTC - in response to Message 1870404.  

Darrell, what is your question?

Are you asking why a GPU task might periodically use more than the stated value in the BOINC manager and use up to a full core for brief periods of time?


Not "up to a full core" but actually using more than a full core when running on the default cpu usage settings. With this new GPU and using various cpu_usage settings in the app_config xmls, I have never seen an app use more than one core (except for the multi_threaded apps of Cosmology, LHC, and Burp) and was wondering if someone would comment on how a Seti or PrimeGrid GPU task running on default cpu_usage settings would suddenly be doing this.
ID: 1870426 · Report as offensive
Profile Wiggo
Avatar

Send message
Joined: 24 Jan 00
Posts: 34744
Credit: 261,360,520
RAC: 489
Australia
Message 1870429 - Posted: 1 Jun 2017, 0:16:24 UTC

Are you still using this app_config.xml Darrell?

<app_config>
<project_max_concurrent>1</project_max_concurrent>
<app>
<name>astropulse_v7</name>
<max_concurrent>1</max_concurrent>
<gpu_versions>
<gpu_usage>1</gpu_usage>
<cpu_usage>0.17</cpu_usage>
</gpu_version>
</app>
<app>
<name>setiathome_v8</name>
<max_concurrent>1</max_concurrent>
<gpu_versions
<gpu_usage>1</gpu_usage>
<cpu_usage>0.17</cpu_usage>
</gpu_versions>
</app>
</app_config>


Cheers.
ID: 1870429 · Report as offensive
Profile Darrell
Volunteer tester
Avatar

Send message
Joined: 14 Mar 03
Posts: 267
Credit: 1,418,681
RAC: 0
United States
Message 1870435 - Posted: 1 Jun 2017, 0:33:18 UTC - in response to Message 1870429.  
Last modified: 1 Jun 2017, 0:50:06 UTC

Are you still using this app_config.xml Darrell?

<app_config>
<project_max_concurrent>1</project_max_concurrent>
<app>
<name>astropulse_v7</name>
<max_concurrent>1</max_concurrent>
<gpu_versions>
<gpu_usage>1</gpu_usage>
<cpu_usage>0.17</cpu_usage>
</gpu_version>
</app>
<app>
<name>setiathome_v8</name>
<max_concurrent>1</max_concurrent>
<gpu_versions
<gpu_usage>1</gpu_usage>
<cpu_usage>0.17</cpu_usage>
</gpu_versions>
</app>
</app_config>


Cheers.


Nope, the screenshot was showing that Boinc was not using any app config xmls. Boinc is using the programmer defined cpu_usage default values. Which for every GPU project I'm attached to is less than 1, except for Einstein which has a default setting of 1.

P.S. I am conducting a little test to see how running Boinc on the default cpu_usage settings and one GPU task at a time impacts daily RAC as shown in the BoincManager statistics tab, and noticed this little anomaly of the Seti and PrimeGrid tasks sometimes using more than one core when they never did before.
ID: 1870435 · Report as offensive
Profile Darrell
Volunteer tester
Avatar

Send message
Joined: 14 Mar 03
Posts: 267
Credit: 1,418,681
RAC: 0
United States
Message 1870488 - Posted: 1 Jun 2017, 4:20:21 UTC

App_config for one task at a time on the GPU -- Projects Collatz, PrimeGrid, and Moo!Wrapper:

<app_config>
<project_max_concurrent>2</project_max_concurrent>
<app>
<name>app's name</name>
<max_concurrent>1</max_concurrent>
<gpu_versions>
<gpu_usage>1</gpu_usage>
<cpu_usage>1</cpu_usage>
</gpu_versions>
</app>
</app_config>

For two tasks at a time on the GPU -- Projects Einstein, Milkyway, Seti, and Seti_Beta

<app_config>
<project_max_concurrent>2</project_max_concurrent>
<app>
<name>app's name</name>
<max_concurrent>2</max_concurrent>
<gpu_versions>
<gpu_usage>0.5</gpu_usage>
<cpu_usage>1</cpu_usage>
</gpu_versions>
</app>
</app_config>

Using the above config files and a preference setting of 84% would give me:

four CPU tasks and one GPU task when a one at a time GPU project was running
three CPU tasks and two GPU tasks when two at a time GPU projects were running

All CPU tasks use 16.7% (i.e. one full core), the GPU task would use 16.7% when starting and much less when running, I never saw one use more than 16.7% (i.e. one full core)

During this current test with Boinc using the default cpu_usage and a preference setting of 68% gives me

four CPU tasks and one GPU task, any project but Einstein, because their default values are less than 1 cpu
three CPU tasks and one GPU task when an Einstein task is running on the GPU because its default value is 1 cpu

All CPU task use 16.7% (one full core), the GPU tasks would use 16.7% when starting and less when running, the Seti apps and PrimeGrid apps now sometimes spike from 17.1 to 18.6 percent of the CPU or more than 1 core, just a small little anomaly that I was hoping to get some clarification on
ID: 1870488 · Report as offensive
wykinger
Avatar

Send message
Joined: 6 Jan 17
Posts: 67
Credit: 8,068,825
RAC: 0
Germany
Message 1870616 - Posted: 1 Jun 2017, 23:28:25 UTC - in response to Message 1870395.  

Boinc is running a PrimeGrid PPS Sieve task on the GPU with its default value of 0.156 cpus.

This is default calculated usage but its not limited strictly to this value and the app may use more .
If its specified in the appconfig manualy Boinc may use up to 1 core for the cpu
but you dont run with specs but allowed Boinc to Autopilot with the default,
so why shouldnt it take 2 cores if it decides to do so for GPU.
You can check this by def the value in the appconfig manualy, i.e.
GPUusage 1 CPUusage 0.156 and see if it spikes again to use more than 1 core for the GPU.
ID: 1870616 · Report as offensive
Profile Darrell
Volunteer tester
Avatar

Send message
Joined: 14 Mar 03
Posts: 267
Credit: 1,418,681
RAC: 0
United States
Message 1870875 - Posted: 3 Jun 2017, 13:05:56 UTC - in response to Message 1870616.  

Boinc is running a PrimeGrid PPS Sieve task on the GPU with its default value of 0.156 cpus.

This is default calculated usage but its not limited strictly to this value and the app may use more .

If its specified in the appconfig manualy Boinc may use up to 1 core for the cpu
but you dont run with specs but allowed Boinc to Autopilot with the default,
so why shouldnt it take 2 cores if it decides to do so for GPU.


Because Boinc as the controlling program is set to use a max of 5 whole cores. If the GPU task uses more than 1 full core when there are four CPU tasks running, Then Boinc is using more than five cores exceeding a limit placed upon it. This also implies that the GPU app is programmed to use as much resources as it wants while the CPU tasks are limited to one full core, a situation where an errant GPU task could runaway with the entire CPU.

You can check this by def the value in the appconfig manualy, i.e.
GPUusage 1 CPUusage 0.156 and see if it spikes again to use more than 1 core for the GPU.


Careful, or you will get into the discussion of whether the percentage specified in the cpu_usage tag applies to the entire CPU or just one core.
ID: 1870875 · Report as offensive
Profile BilBg
Volunteer tester
Avatar

Send message
Joined: 27 May 07
Posts: 3720
Credit: 9,385,827
RAC: 0
Bulgaria
Message 1871033 - Posted: 4 Jun 2017, 2:51:14 UTC - in response to Message 1870875.  
Last modified: 4 Jun 2017, 3:16:29 UTC

... whether the percentage specified in the cpu_usage tag applies to the entire CPU or just one core.

<cpu_usage>1</cpu_usage> informs BOINC that the applications will need one (virtual) core.

This is only used by BOINC to calculate how many (virtual) cores remain usable for CPU tasks (i.e. BOINC will start less CPU tasks).
BOINC sums <cpu_usage>x.y</cpu_usage> for all running GPU tasks, then truncates the sum (e.g. 3 * 0.33 = 0.99 = 0 or 2 * 0.77 = 1.54 = 1)

BOINC don't know (and is not interested) in physical CPU configuration - if OS reports "16 CPUs" it doesn't matter to BOINC if this is "2 physical CPUs x 8 real cores" or "1 physical CPU x 8 cores Hyper-Threaded to 16 virtual" or ...

Application itself don't know about or use this value.


Then Boinc is using more than five cores exceeding a limit placed upon it

1. BOINC is not "using" the cores
2. This is not "limit placed upon it"
3. BOINC do not and can't control (or even monitor) the resource usage of already started applications.

Numbers like "Use at most 99 % of the CPUs" and <cpu_usage>1</cpu_usage> only tell BOINC how many applications to start (which is the only "limit").

BOINC assumes that one CPU app will use one CPU (read this as "core") (unless the CPU app is declared as Multi-Threading )
and one GPU app will use what is declared by cpu_usage / gpu_usage
BOINC do not really measure the real "usage".
 


- ALF - "Find out what you don't do well ..... then don't do it!" :)
 
ID: 1871033 · Report as offensive

Message boards : Number crunching : Please take a look


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.