Posts by jglrogujgv

41) Message boards : Questions and problems : Problem install BOINC on Linux-Ubuntu 18.04 (Message 87411)
Posted 31 Jul 2018 by jglrogujgv
Post:
try
boinccmd --passwd <password from gui_rpc_auth.cfg> --<command>

For some commands it requires the password, for other commands it does not.
42) Message boards : Questions and problems : Multiple BOINC projects; individual daily schedules?? (Message 86926)
Posted 8 Jul 2018 by jglrogujgv
Post:
Thanks but I've begun to wonder what havoc my approach might create for BOINC's scheduler. It might eventually put BOINC into a state where it won't fetch work for some of your projects. There might be an easy fix for that or maybe not, I don't know. The two-client approach avoids that entire issue.
43) Message boards : Questions and problems : Multiple BOINC projects; individual daily schedules?? (Message 86911)
Posted 7 Jul 2018 by jglrogujgv
Post:
Additional info and a correction to my previous post:

I used the term crontab incorrectly to refer to what should be referred to as "entries in a crontab". A crontab is a plain text file that contains a table (a list) of cron jobs. Use the crontab -e command to create/edit the crontab. Note the command does not include a filename because there is only 1 crontab per user. A crontab can have as many entries as you wish.

The crontab entries I gave in my previous post would work but they would do a lot of unnecessary work as they would run every minute of hour 6 and hour 18 due to the first asterisk in each entry. The first asterisk in each entry should be an integer between 0 and 59 inclusive. For example:
0 6 * * *  /usr/bin/bash  /home/<username>/bin/morn.sh
0 18 * * *  /usr/bin/bash  /home/<username>/bin/nite.sh
44) Message boards : Questions and problems : Multiple BOINC projects; individual daily schedules?? (Message 86909)
Posted 6 Jul 2018 by jglrogujgv
Post:
Two simultaneously running clients and managers is one solution but it lacks simplicity and elegance. Also, to change a project from day processing to night processing involves creating a new host (or adding a project) and deleting an old host (or removing a project) which isn't hard but it creates ripples down stream. If you look at it as a timing problem rather than a distributed computing problem the solution becomes more clear.

I would have used a couple of cron jobs and the GUI RPC interface available via boinccmd to suspend/resume projects at specified times. It requires only 1 client and 1 manager.

Suppose you have projects A, B, C, D and E and you want to run only A and B between 7 AM and 6 PM and only C, D and E between 6 PM and 7 AM. Accomplish that with 2 cron jobs and 2 bash scripts: one named morn.sh and another named nite.sh. Let's look at the bash scripts first, the cron jobs further down.

The morn cron job runs at 7 AM and it suspends projects C, D, and E and resumes projects A and B.
Nite cron job runs at 6 PM and it suspends A and B and resumes C, D and E.

A cron job is essentially a bash script that you tell the cron utility, via a crontab, to run at a specified time or times. The script(s) we need merely calls boinccmd 5 times, once for each of the 5 hypothetical projects. Morn.sh looks something like the code below where password is the contents of your gui_rpc_auth.cfg file:

#!/usr/local/bin/bash

# resume A, B
boinccmd --passwd <password>  --project A <project A's project URL>  resume
boinccmd --passwd <password>  --project A <project A's project URL>  resume
# suspend C, D, E
boinccmd --passwd <password>  --project C <project C's project URL>  suspend
boinccmd --passwd <password>  --project D <project D's project URL>  suspend
boinccmd --passwd <password>  --project E <project E's project URL>  suspend

Nite script is similar but opposite. Note the simplicity.... if you want to change project A from day to night processing then just edit the scripts so that it resumes in nite.sh and suspends in morn.sh. I dunno, seems less cumbersome than adding and deleting projects and dealing with the downstream ripples but tastes vary.

WARNING: You might have to adjust execute permissions on boinccmd to allow you to run it. No, you cannot simply preface each of the commands in the script with sudo for security reasons. Use:

sudo chmod a+x /usr/bin/boinccmd


That covers the scripts. Now to setup the cron jobs. I am a little rusty on cron jobs so forgive me if I leave out some details but there are numerous excellent tutorials available on the 'net so why re-invent the wheel. The trick is in the crontabs. You would need 2 crontabs: one to run morn.sh at 6 AM and one to run nite.sh at 7 PM. Crontabs use the 24 hour clock so 7 AM is 7, 6 PM is 18.

* 6 * * *  /usr/bin/bash  /home/<username>/bin/morn.sh
* 18 * * *  /usr/bin/bash  /home/<username>/bin/nite.sh

Note the above code snippet assumes you have the morn.sh and nite.sh saved in /home/<username>/bin which in your case might be /home/gene/bin.

See this tutorial for a good explanation on how the asterisks in the crontabs work. Note that it's not necessary to use the vi editor as suggested in that tutorial.

With appropriate crontabs and scripts you can suspend/resume projects on a very intricate schedule. For example, you can schedule as discussed in the above example on week days but on weekends do something entirely different.
45) Message boards : Questions and problems : What's wrong with the way deadlines work using BOINC? (Message 86905)
Posted 6 Jul 2018 by jglrogujgv
Post:
To many "mistakes" which I don't have the time or inclination to prove, ... resulting on frequent waste of CPU resources.

#MeToo.BOINC


What is really then the use of "Store At Least x days of work" and "Store up to an additional y days of work"?

It's a fudge factor. Use it to your benefit or don't. Nobody cares if you do; nobody cares if you don't.


Mine was x=0.26 days and y=0.5 days ,... never and ever more.

Nobody cares what yours was set to. If your settings aren't working out for you then change them. Or don't change them, whatever.


Previous 20

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.