Best app_config.xml

Aurum
Aurum
Joined: 12 Jul 17
Posts: 46
Credit: 2,101,548,899
RAC: 6,329,009
Topic 218742

I'd like to build an app_config that anticipates rather than reacts to which Einstein project comes my way. I'd like to look at the Applications and find all the possible <app><name>s but there's nothing there. The only thing useful I see on the Applications page is that yes there are WUs for both Windows & Linux. E.g., rather than just show "Gamma-ray pulsar search #5" they could easily display "Gamma-ray pulsar search #5 (hsgamma_FGRP5)" or whatever the right <name> is. Now the way they do it requires one to search their client_state.xml file and sometimes guess the right one to add.

Electric bill: $1037. Computer costs: north of $100K. Value to science: Priceless.
There's nothing "spare" about distributed computing clients.

Aurum
Aurum
Joined: 12 Jul 17
Posts: 46
Credit: 2,101,548,899
RAC: 6,329,009

<app_config> <!-- AMD GPUs

<app_config>
<!-- AMD GPUs use 0.5 CPU and NVIDIA use 1.0 CPU -->
<app>
<name>hsgamma_FGRP5</name>
<!-- CPU project needs ~0.8 GB per WU -->
<max_concurrent>10</max_concurrent>
</app>
<app>
<name>einstein_O1OD1</name>
<gpu_versions>
<cpu_usage>1.0</cpu_usage>
<gpu_usage>0.5</gpu_usage>
</gpu_versions>
</app>
<app>
<name>hsgamma_FGRPB1G</name>
<gpu_versions>
<cpu_usage>1.0</cpu_usage>
<gpu_usage>0.5</gpu_usage>
</gpu_versions>
</app>
<report_results_immediately>1</report_results_immediately>
</app_config>

What do you put in your app_configs???

Electric bill: $1037. Computer costs: north of $100K. Value to science: Priceless.
There's nothing "spare" about distributed computing clients.

Richie
Richie
Joined: 7 Mar 14
Posts: 460
Credit: 1,548,365,457
RAC: 913,019

How about

Aurum
Aurum
Joined: 12 Jul 17
Posts: 46
Credit: 2,101,548,899
RAC: 6,329,009

That sure looks like the

That sure looks like the ticket. It looks like this is the syntax that would appear in the client_state file.

What does the syntax <beta/> mean when the slash is placed at the end of a single tag instead of at the beginning of the second paired tag???

I've got my work cut out to pair that down to a Linux app_config file.

Thanks

Electric bill: $1037. Computer costs: north of $100K. Value to science: Priceless.
There's nothing "spare" about distributed computing clients.

Richie
Richie
Joined: 7 Mar 14
Posts: 460
Credit: 1,548,365,457
RAC: 913,019

Aurum wrote:What does the

Aurum wrote:
What does the syntax <beta/> mean when the slash is placed at the end of a single tag instead of at the beginning of the second paired tag???

If compared with the page you already had mentioned ( https://einsteinathome.org/apps.php ) there's "(beta test)" included in the names of all the same app versions that have that beta tag.

I don't know exactly where it has effect, but I think that beta tag plays a role when Boinc requests work from the server and they solve what work should be delivered. Sometimes in the past it's been a little confusing what work required 'YES' for the "Beta settings - run test applications" to be checked at https://einsteinathome.org/account/prefs/project . But I believe it's connected to that setting at least a little bit.

Aurum
Aurum
Joined: 12 Jul 17
Posts: 46
Credit: 2,101,548,899
RAC: 6,329,009

I kinda figured the Run beta

I kinda figured the Run beta version Yes or No part. I was thinking about the xml syntax. E.g., I've seen this tag:

<fraction_done_exact/>

But never this paired-tag:

<fraction_done_exact>1</fraction_done_exact>

I don't see where they explain it in https://boinc.berkeley.edu/wiki/Client_configuration

Electric bill: $1037. Computer costs: north of $100K. Value to science: Priceless.
There's nothing "spare" about distributed computing clients.

Aurum
Aurum
Joined: 12 Jul 17
Posts: 46
Credit: 2,101,548,899
RAC: 6,329,009

The big problem I would like

The big problem I would like to solve is that when BOINC fills up the RAM it will start throwing tons of "computation errors" and in some cases, e.g. on Rosetta, it will freeze the computer requiring a reboot with a correction before the RAM overfills again.

I count 5 CPU projects and I'd like to run whichever WUs are available. E.g., if I have 44 logical threads with 2 Nvidia GPUs leaving 40 CPUs to process E@H WUs and if I only get one kind of app I'm fine. I use <max_concurrent>10</max_concurrent> for 16 GB RAM.

But if I get 2 or more then I run out of RAM. With 16 GB RAM I guess I could use <project_max_concurrent>14</project_max_concurrent> since it will count the 4 Nvidia GPUs and if I have no E@H GPU WUs then I run 4 more CPU WUs which is still in a safe RAM range (unless another RAM hog like Rosetta is time-slicing). What if there's no GPUs running and BOINC starts running 14 CPU WUs, will it run the new GPU WUs or make them wait until CPU WUs finish???

Ok so now I have:

<app_config>
<!-- CPU projects need ~0.8 GB per WU -->
<app>
<name>einsteinbinary_BRP4</name>
<!-- CPU - Binary Radio Pulsar Search (Arecibo) -->
<max_concurrent>10</max_concurrent>
</app>
<app>
<name>einsteinbinary_BRP4</name>
<!-- CPU - Binary Radio Pulsar Search (Arecibo) -->
<max_concurrent>10</max_concurrent>
</app>
<app>
<name>hsgamma_FGRP5</name>
<!-- CPU - Gamma-ray pulsar search #5 -->
<max_concurrent>10</max_concurrent>
</app>
<app>
<name>einstein_O1OD1</name>
<!-- CPU - Gravitational Wave All-sky search on LIGO O1 Open Data -->

<max_concurrent>10</max_concurrent>
</app>
<!-- AMD GPUs use 0.5 CPU and NVIDIA use 1.0 CPU -->
<app>
<name>hsgamma_FGRPB1G</name>
<!-- GPU - Gamma-ray pulsar binary search #1 -->
<gpu_versions>
<cpu_usage>1.0</cpu_usage>
<gpu_usage>0.5</gpu_usage>
</gpu_versions>
</app>
<app>
<name>einsteinbinary_BRP4G</name>
<!-- GPU - Binary Radio Pulsar Search (Arecibo) -->
<gpu_versions>
<cpu_usage>1.0</cpu_usage>
<gpu_usage>0.5</gpu_usage>
</gpu_versions>
</app>
<project_max_concurrent>14</project_max_concurrent>
<report_results_immediately>1</report_results_immediately>
</app_config>

Electric bill: $1037. Computer costs: north of $100K. Value to science: Priceless.
There's nothing "spare" about distributed computing clients.

mikey
mikey
Joined: 22 Jan 05
Posts: 5,113
Credit: 518,668,773
RAC: 96,530

Aurum wrote:The big problem I

Aurum wrote:

The big problem I would like to solve is that when BOINC fills up the RAM it will start throwing tons of "computation errors" and in some cases, e.g. on Rosetta, it will freeze the computer requiring a reboot with a correction before the RAM overfills again.

I count 5 CPU projects and I'd like to run whichever WUs are available. E.g., if I have 44 logical threads with 2 Nvidia GPUs leaving 40 CPUs to process E@H WUs and if I only get one kind of app I'm fine. I use <max_concurrent>10</max_concurrent> for 16 GB RAM.

But if I get 2 or more then I run out of RAM. With 16 GB RAM I guess I could use <project_max_concurrent>14</project_max_concurrent> since it will count the 4 Nvidia GPUs and if I have no E@H GPU WUs then I run 4 more CPU WUs which is still in a safe RAM range (unless another RAM hog like Rosetta is time-slicing). What if there's no GPUs running and BOINC starts running 14 CPU WUs, will it run the new GPU WUs or make them wait until CPU WUs finish???

Short answer NO because the cpu is already crunching a workunit so NO it won't stop and run a gpu workunit from the same project, Boinc can't be fine tuned that much. Long answer MAYBE if the gpu workunit is from a higher priority project, but probably not at least until you hit the 'switch between tasks' time frame.

Holmis
Joined: 4 Jan 05
Posts: 996
Credit: 696,702,617
RAC: 725,514

Aurum wrote:I kinda figured

Aurum wrote:

I kinda figured the Run beta version Yes or No part. I was thinking about the xml syntax. E.g., I've seen this tag:

<fraction_done_exact/>

But never this paired-tag:

<fraction_done_exact>1</fraction_done_exact>

I don't see where they explain it in https://boinc.berkeley.edu/wiki/Client_configuration

When one puts a slash ( / ) at then end of the tag it's self-closing and indicates a tag with no content. See "Empty XML elements" here: https://www.w3schools.com/xml/xml_elements.asp

<fraction_done_exact></fraction_done_exact> is the same as
<fraction_done_exact/>

If the tag exists then it's on and if it's not present it's off. Boinc often does things it's own way and to get things working one has to read and follow the documentation, following established standards won't always work.

Comment viewing options

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