Increasing the number of tasks per GPU in BOINC

This process needs to be done per project.

Use GPU-Z to see that the GPU Load is under 100% https://www.techpowerup.com/gpuz

In BOINC’s data directory, find the short name of the project’s application in the client_state.xml file. For Windows, the data directory is C:\ProgramData\boinc.

type client_state.xml | findstr "app_name"

In the project’s data directory, create a app_config.xml file. For Windows, the projects’ directory is C:\ProgramData\boinc\project.

<app_config>
<app>
<name>GetDecics</name>
<gpu_versions>
<gpu_usage>0.5</gpu_usage>
<cpu_usage>0.49</cpu_usage>
</gpu_versions>
</app>
</app_config>

Use the list of names gathered from above to determine the appropriate name to use in the name field.

Enter a value for GPU usage between 0.1 – 1.0. A value of 0.5 indicates each task can use up to 0.5 of a GPU. Likewise for CPU usage.

In BOINC manager, click Options | Read config files to activate the new settings.

BOINC linux install notes

for ubuntu… i needed to

sudo chmod g+r /var/lib/boinc/gui_rpc_auth.cfg

as well as sudo usermod -a -G boinc $USER

optional step, if you’re using a boinc account manager, the syntax for sending the password is single quotes if you have a complex password. it took me many hours to figure this out.

boinccmd --join_acct_mgr bam.boincstats.com actng 'Passw0rd!!!'

(change your username from actng to your username. no, Passw0rd!!! isn’t my password but yes that is considered complex enough to warranty single quotes around or it won’t work.)

after waiting you can try boinccmd --get_tasks to check if tasks are downloaded/uninitialized or executing

Google’s Cloud NAT gateway

Thanks to Yuvraaj at crave.io for the following

Google launched something called Cloud NAT Gateway that charges for bandwidth to do NAT. It makes it more expensive to run than going with external IP (at least in the low volumes that I do). I found this blog entry by Yuvraaj at Crave.io that allows you to enable NAT in a few steps. I’ve documented the commands below so I can refer to them in the future if I need them and in case the crave.io blog entry is no longer available or I can’t find it for some reason.

Create or edit this file/script that runs everytime the machine is booted

/etc/rc.local
#!/bin/bash

set -x

# Turn on IP forwarding
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
# Turn on the route
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Setup Route in GCP Routing table

gcloud compute routes create no-ip-internet-route --network default --destination-range 0.0.0.0/0 --next-hop-instance nat-gateway --next-hop-instance-zone us-west1-b --tags no-ip --priority 800

Setup networking tags for VMs that need this

gcloud compute instances add-tags <existing-instance> --tags no-ip

Bash script to check if a process is running and if failed, restart it

Thanks to Karson for this one.

Create a file:

sudo nano ./run.sh

#!/bin/sh
if ps -ef | grep -v grep | grep boinc ; then
exit 1
else
sudo systemctl restart boinc-client &
exit 0
fi

Change permissions

sudo chmod +x ./run.sh

Make it run automatically

crontab -e

Every second

* * * * * /home/user/run.sh

It’s always DNS

For the longest time I’ve had this issue where I had to add a . (period) to the end of a hostname to ping it. Today was the day I put that to rest.

Reading online it has to do with how Windows handles hostnames via NetBIOS vs DNS (or lack thereof). What I could never figure out was why it was happening to only 1 of my 2 Windows servers.

On the first Windows Server, I can ping “lara” fine. On the second Windows Server, I have to ping “linah.” in order to get to it.

Fix

I went into my pihole and updated all the local DNS entries from hostname to fully qualified domain names. So lara became lara.local.adrianng.com and linah became linah.local.adrianng.com. Then I entered CNAME records pointing lara to lara.local.adrianng.com and linah to linah.local.adrianng.com. ipconfig /flushdns later and now everything works the way it should.

Including my domain name in there is probably not necessary. It might have even worked if I just entered lara.local as the hostname instead of just lara (although some posts advise against using .local because apple uses that for hello or something).

There are still weird observations… some hosts are still resolving lara to lara.local instead of lara.local.adrianng.com but at least they can ping it.

Edit:
Don’t think the CNAMEs have anything to do with it. It’s the Primary DNS suffix setting in windows and adding local.adrianng.com to the search list that’s making this work. Either specifying it in Computer Name, or adding it to the TCP/IP v4 advanced settings.