Closed nnovaes closed 6 years ago
@nnovaes Many thanks for your request. This is indeed an interesting project, if you have a server that is not constantly used, even if it's just at night. I am not sure how much it makes sense to run it on a RPi or similar SBC, but the larger ones and amd64 machines could be a help. Also having a 3D viewer makes it interesting. I will try it out on my VM,
Official packages are (I guess reasonably) just available for amd64: https://foldingathome.org/alternative-downloads/
Hmm, which repo is actually for the base fahclient, just see fahviewer and fahcontrol 🤔: https://github.com/FoldingAtHome
wget https://download.foldingathome.org/releases/public/release/fahclient/debian-stable-64bit/v7.5/fahclient_7.5.1_amd64.deb
dpkg -i fahclient_7.5.1_amd64.deb
🈯️ Works well, no dependencies needed on top of minimal DietPi image. Installation lets you choose user name, team number (we could found a DietPi team? 😃) and an optional passkey, which I skipped for testing now. You can choose light, medium of heavy help, I chose light, which was recommended for laptops. Daemon is up and running: Idle-only is realized via nice=19. ~50M RAM usage (I guess this depends on your light/medium/heavy choice) and one CPU core at 100%, dropping fast due to nice, if other tasks need CPU.
Web UI can be accessed locally via https://client.foldingathome.org/
, of course I need remote access for headless server. Is says:
For information about configuring the Folding@home client for remote access please see the comments in: /etc/fahclient/config.xml
But:
2018-08-03 15:06:17 root@VM-Stretch:~# cat /etc/fahclient/config.xml
<config>
<!-- Client Control -->
<fold-anon v='true'/>
<!-- Folding Slot Configuration -->
<gpu v='false'/>
<!-- User Information -->
<user v='DietPi-Test'/>
<!-- Folding Slots -->
<slot id='0' type='CPU'/>
No hint for remote access config 🤔. Further research, fahcontrol needed for this?
...
Ahh... cat /usr/share/doc/fahclient/sample-config.xml
shows the needed settings:
<allow>127.0.0.1 x.x.x.x</allow>
<web-allow>127.0.0.1 x.x.x.x</web-allow>
where x.x.x.x
is my remote IP.
🈯️ Web UI now available for the configured allow machine at http://y.y.y.y:7396/
/dev/sda1 8189368 732264 7021392 10% /
NB: Switching settings or restarting the service will lead to lost folding process. After restarting to allow web UI, it was a tiny bid after 2% and after toggle while I am working/idle
on the web UI, progress got reset from 3.something to 3.00%. So I guess results are saved to disk every full % of current work unit progress.
So, to sum up, I like the idea to help in disease research. Currently Debian packages are just available for x86_64
, and as there is no source code for the client itself, I think there is currently no way to get it running on an ARM SBC.
Configuration is quite easy. Remote access should be added as default, maybe it's possible to allow access for the whole network group (x.x.x.*), will try it. Or allow global access but then use passkey. I hope this is asked for on web UI then.
But for users with server on native PC or VM this is an idea. We could create a DietPi team, I guess tasks are somehow shared within the team and I like the idea to let our servers working together on something useful 😄.
thanks!
yeah, a DietPi team would be awesome! Let me know if you want me to create it.
@nnovaes Let's wait for Fourdee to review. But since I didn't find out yet, how to create a group, would be awesome if you do it then.
Btw: Web UI does not open any more after a while, instead constantly reloading the page. Just found an open issue about this, found that forced reloading the page (clearing browser cache) resolves it: https://github.com/FoldingAtHome/fah-web-client/issues/6
You get a passkey by registering with email. This is then tied to your user name and needed to contribute as your user name, AFAIK.
I really don't like the client to be not open source. However I can imagine the reason, e.g.:
It is important to note that we do release the scientific modifications back to the open source community, but do not release information which would enable donors to cheat on points, which some donors have done ruining the experience for many others.
Yeah cheating on the (reward) points really is a minor argument for me. Yeah some collection motivating system is nice to have, but it really shouldn't count too much. But if the source codes somehow enable donors the build a fake client and upload fake results, with this ruin the whole research effort without this being recognized fast, then there is a really big problem.
Automated install possible:
2018-08-04 00:42:15 root@VM-Stretch:/var/www# debconf-get-selections | grep fahclient
fahclient fahclient/passkey string
fahclient fahclient/user string DietPi-Test
fahclient fahclient/autostart boolean true
fahclient fahclient/power select light
fahclient fahclient/team string 0
So, to sum up, I like the idea to help in disease research But for users with server on native PC or VM this is an idea. We could create a DietPi team, I guess tasks are somehow shared within the team and I like the idea to let our servers working together on something useful
I'am all for this 👍 Great idea, and, a for a purpose that benefits the human race.
I'll be able to test this on me Ryzen 5 😃
@MichaIng
Is this something you want to pickup (you've done all the research, dont want to take over without asking), or, want me to add it in to DietPi?
yeah, a DietPi team would be awesome! Let me know if you want me to create it.
Thanks for offering 👍 I've created the team 234437
, details below:
@Fourdee Let me make a start. Never added a software title so far, if I remember correctly 😄.
€: PR up: https://github.com/Fourdee/DietPi/pull/1992
Some questions appeared:
Scientific projects
, or Misc
or merge into another category by renaming slightly?dietpi-services
? I just had the problem, that using systemctl stop/restart FAHClient
somehow didn't stop/restart the parental process, while /etc/init.d/FAHClient stop/restart
did, even that ExecStop=/etc/init.d/FAHClient stop
is set within the generated systemd unit. Restarting the service leads to up to 1% working unit process is lost. No big issue for my impression.2018-08-04 18:35:22 root@VM-Stretch:~# G_TREESIZE /var/lib/fahclient/
[ OK ] Root access verified.
34.4 MB /var/lib/fahclient/
20.2 MB /var/lib/fahclient/cores
14.1 MB /var/lib/fahclient/work
68.0 KB /var/lib/fahclient/logs
44.0 KB /var/lib/fahclient/configs
RPi 1/2 performance for those tasks:
There is another similar project, BOINC: https://boinc.berkeley.edu/ It can be installed (as well on ARM) from Debian repo: https://packages.debian.org/de/stretch/boinc-client With this, a new software category can make even more sense 😄. €: Raspbian as well offers it:
2018-08-04 17:54:52 root@micha:/var/log# apt search boinc
Sorting... Done
Full Text Search... Done
boinc/testing 7.12.0+dfsg-1 all
metapackage for the BOINC client and the manager
...
boinc-client/testing 7.12.0+dfsg-1 armhf
core client for the BOINC distributed computing infrastructure
...
@MichaIng
Shall we handle it via dietpi-services? I just had the problem, that using systemctl stop/restart FAHClient somehow didn't stop/restart the parental process, while /etc/init.d/FAHClient stop/restart did, even that ExecStop=/etc/init.d/FAHClient stop is set within the generated systemd unit. Restarting the service leads to up to 1% working unit process is lost. No big issue for my impression.
Ideally, we need to handle this in services and process_tool.
In cases like this, where they still use sysinit services. I generally just make a new systemD service. I can take a look at this if needed, once merged and I can test.
At least user name and passkey (if requested) and power choice need to be entered interactively. Do we want to allow to enter these via dietpi.txt for fully automated install?
Unsure at the moment, really depends if this is unique, or, only applies to local system (in which case we could set a default user/pw)?
Move data directory to /mnt/dietpi_userdata? The size is not too large and we do not support ARM SBCs (SDcards) anyway (37% of current work unit):
When working with .deb installs, we need to be careful how we do this. Ideally we should move, then symlink any userdata to DietPi userdata dir, and, logs to /var/log etc.
There is no fitting software category. Create a new one: e.g. Scientific projects, or Misc or merge into another category by renaming slightly?
Software projects (new item, similar to hardware projects) might be best?
It could also fit under Cloud, however, everything in this day and age fits into the overly abused and corrupted Cloud definition lol.
In cases like this, where they still use sysinit services. I generally just make a new systemD service. I can take a look at this if needed, once merged and I can test.
Actually the auto created systemd service finally worked as expected. I think due to install/update etc. back and forth, there was an issue in between. But reboot should fix it, at least it worked then well for me. So no manual systemd unit creation needed.
Unsure at the moment, really depends if this is unique, or, only applies to local system (in which case we could set a default user/pw)?
According to what I could derive (finished one work unit on the VM, yeah 570 points for DietPi Team 😃), user name is local, until the first work unit god uploaded. I will rested by adding my user name without passkey (requested one) on VM again. I think the error or warning appears then on result upload attempt. Also if no passkey was requested, I guess everyone could collect for the same user. There are machine counts for your user name etc.
Actually an idea is to create a DietPi
user and optionally request a passkey for this. This can then be added by default, empty passkey or the one we get. Then users are free to just collect "anonymously" as "DietPi" user for "DietPi" team, or create their own user name and optionally passkey if desired.
Thinking about passkey or not... Who would be sad if someone else collects points for the own user? But everyone could attach his email to the user name and request a passkey. Then one will be not able to access his own user any more. Thus yeah, DietPi
user needs a passkey then.
When working with .deb installs, we need to be careful how we do this. Ideally we should move, then symlink any userdata to DietPi userdata dir, and, logs to /var/log etc.
Jep agree, like on MariaDB install, pre-create the symlink and let the deb installer directly place files into our desired end locations.
Software projects (new item, similar to hardware projects) might be best?
Another idea: Computing
This could include at a later stage system simulation software (e.g. modelica, which I worked with) or other cloud/distributed/clustered computing projects. Not a typical SBC task, but on the other hand, why not let your RPi run a set of simulations over nights (on idle) and save the results on your file/share server. Still safes some time, if you would need to run them manually at work 😄.
It could also fit under Cloud, however, everything in this day and age fits into the overly abused and corrupted Cloud definition lol.
Jep, lets not overload this, all the file/share server and backup solutions already filling up this category enough 🤣.
€: Added data folder move/pre-create and full pre-configuration before deb install.
What is needed:
@MichaIng
Another idea: Computing
Hmm, it has a very wide definition. Technically, any of the Software titles could fit under it?
Computing Science
? or Science stuff
? 😃
Computing simulation / computer modeling
?
You decide for this one 👍
As this needs a mail address, it's up to you if/which mail to use here. Also I am not 100% sure, if a shared account is wanted/allowed. Maybe ask for this, just to be sure?
Ok, lets merge what you have completed now, I'll run some tests and take a look.
@Fourdee Yeah. reading the English wikipedia article about "Computing" indeed has a wider range than what I understood, or what you get from the German article, following the provided link.
https://en.wikipedia.org/wiki/Computational_science "Computational Science" at least fully fits according to wikipedia? 😆
Silly question, how do I access the web client remotely?
"Computational Science" at least fully fits according to wikipedia?
Sounds good 👍
@Fourdee
Web access is possible via port 7396
, but only if the 5 seconds were enough for FAHClient to write back the config file after stopping. Will test as well again, if this always works.
€: Okay, sleep 5 doesn't work reliably, and as well the service fully needs to start, to check system and do internal CPU/GPU usage decisions. These are 4 processes overall, FAHClient parent, child, FahCore wrapper and FahCore itself, which does the actual computation.
After the last started, we can be sure that all initial checks have been finished. Before this, if service is manually stopped (dietpi-service), no proper config file will be written.
If service started fully up and is stopped then, again we need to wait until FAHClient parent has finished. It seems to write down the internally collected configuration to the config file then (overwriting the initial sample). Only after this is done, we can inject our own settings, currently web access.
Commit for fix: https://github.com/Fourdee/DietPi/commit/2295173a257944d5fbb9f514e92f2da5dcf51dcb
We could get one step further and add FAHControl (desktop GUI), if desktop is installed? But you cannot do much more with it than via web UI, at least on Windows client 🤔.
Btw while checking process names with moved data directory, I recognized an endless loop, when moving from /mnt/dietpi_userdata to /mnt/Test:
break
missing to break out of the while loop?: https://github.com/Fourdee/DietPi/blob/testing/dietpi/func/dietpi-set_userdata#L214-L217@MichaIng
Once Run_Move_Data
is completed, it should break on next loop with:
https://github.com/Fourdee/DietPi/blob/testing/dietpi/func/dietpi-set_userdata#L156-L161
If on rootfs, still returns valid:
root@DietPi:~# readlink -f $G_FP_DIETPI_USERDATA
/mnt/dietpi_userdata
Does pgrep checks within loop for FahCore respectively FAHClient parent process. Max 10 seconds each loop, otherwise show error message, but do not exit install for now. In worst case user needs to enable web access by himself.
Perfect, nice one 👍
@MichaIng
Much better, thanking you 👍 Although, even at full
this is only using 2/6 cores
Hmm:
04:09:49:WU00:FS00:Starting
04:09:49:WARNING:WU00:FS00:Changed SMP threads from 5 to 6 this can cause some work units to fail
04:09:49:WARNING:WU00:FS00:AS lowered CPUs from 6 to 2
04:09:49:WU00:FS00:Running FahCore: /usr/bin/FAHCoreWrapper /mnt/dietpi_userdata/fahclient/cores/cores.foldingathome.org/Linux/AMD64/Core_a4.fah/FahCore_a4 -dir 00 -suffix 01 -version 705 -lifeline 4725 -checkpoint 15 -np 2
https://foldingforum.org/viewtopic.php?f=94&t=25583#p256298 https://foldingforum.org/viewtopic.php?f=94&t=25583#p256295
FAHClient --help
cpus <integer=-1>
How many CPUs a slot should use. <= 0 will use all the CPUs detected in the
system.
log-rotate <boolean=true>
Rotate log files on each run.
log <string=log.txt>
Set log file.
For logs we should do this by default:
<log-rotate v='false'/>
<log v='/var/log/fahclient.log'/>
The default service is really nasty/flaky, doesn't seem to stop all threads gracefully, created by the service start, unless the job is fully completed?
killall -w
will probably cause more issues than its worth for uncompleted jobs.
We might need to remove service control from DietPi if we cant predict a stable, standard and consistent service start/stop by the app.
@Fourdee It mostly uses just one core on my laptop (Windows). Yesterday when testing on VM, and after raising their virtual cores to all 4 host threads, I found one using 3 cores. I think, also remembering what I read, that the amount of used cores also depends on the current work unit, but not sure.
Yeah service shut down takes some time and leads to partly result loss, if not yet saved to disk (each %, on Windows each 15 minutes, I think). But since services are not restarted all the time, it is acceptable? Or did you face issues with the work unit afterwards?
Uha, just finished another WU and the next is from a totally different kind:
So it totally depends on the work units, if they can/need to handle one or more cores. Also you can be lucky or unlucky in how much credits you get. Had two WUs that took moreless same time, but the second brough less than half the points. And yeah this one also does not need much more time (just 4 times the CPUs 😉) and brings ~8 times the points.
@MichaIng
I think, also remembering what I read, that the amount of used cores also depends on the current work unit, but not sure.
Yep, looks that way 👍
I'll have to try running 3VM's with 2cores each, see how many points I can achieve today! 😃
Or did you face issues with the work unit afterwards?
I'll need to recheck, however, I believe stopping/starting the service actually allowed for two instances of the application. The previous one (which was trying to finish) and the new one (trying to start).
Yep, did 3 VM installs on latest testing branch, all 3 had remote access disabled.
Need to test https://github.com/Fourdee/DietPi/issues/1985#issuecomment-411323028
@Fourdee Hmm, okay (lets stay with discussion here). So the pgrep pattern needs to be reviewed. Actually I worry a bid, if those test installs, which always start on a WU, but never finish it, somehow delay the research process. Would be nice if we could somehow "free" the WU, so others can instantly start with it.
But disabling autostart for testing is no option, is exactly that full start is what we need to test/track 🤔.
@MichaIng
Mmmm, could we pre-create the config.xml, before deb install? As a last resort, might do the job? Ah i see the IP detection issues.
Testing
@Fourdee Hmm, the problem is that the settings are/need to match the system, regarding CPU/core count, GPU etc. I think it will cause more problem, if we somehow try to create a most-compatible one. The client needs to check and pre-create configuration.
It looks like pgrep -cif ^$(readlink -f /var/lib/fahclient)/cores*
does not work reliably. I had the impression that it is never waited for service start, but service stop works fine (does some seconds loop).
Did I get it right, that in your case there are two instances of:
/mnt/dietpi_userdata/fahclient/cores/...
Or is the one child of the other?
I have all together 4 instances:
. FAHClient parent
. |_ FAHClient child
.... |_ FahCoreWrapper
....... |_ FahCore final process
<- This is the one I want to track above. It's full name starts with /mnt/dietpi_userdata/fahclient/cores/...
(on my VMs) respectively symlink target, if userdata was moved.But if there are two "cores" starting, e.g. one for CPU and one for GPU (not available on my Laptop 😉), then we might need to wait for both. Puhh difficult then, as I don't know how long this takes and how to check whether second core starts or not..
@MichaIng
root@DietPi:~# FAHClient --help | grep config
Usage: FAHClient [[--config] <filename>] [OPTIONS]...
--configure
Create a basic configuration file, then exit.
EDIT: User input required ☹️
root@DietPi:~# FAHClient --configure
User name [Anonymous]:
Team number [0]:
Passkey:
Enable SMP [true]:
Enable GPU [true]:
Name of configuration file [config.xml]:
@Fourdee
Ahh yes good point. Maybe disable autostart with debconf-set-selection, hope that really nothing starts up, then FAHClient --configure
, hope that it really delays bash follow up until fully finished.
Then during install configuration step enable autostart. Then leave service start/stop to dietpi-service control?
User input required
Ahhh, yeah remember....
I think we can do own service for this:
🈯️ Launch CLI options get overwritten by config.xml
entries.
rm /etc/fahclient/config.xml
FAHClient --allow='0/0' --web-allow='0/0' --user=DietPi --team=234437 --gpu=true --log-rotate=false --log=/var/log/fahclient.log --run-as=fahclient --power=light --data-directory=$G_FP_DIETPI_USERDATA/fahclient
#Change name in web interface
#restart
#loads name from config.xml
root@DietPi:/etc/fahclient# cat config.xml
<config>
<!-- User Information -->
<user v='DietPi-test'/>
<!-- Folding Slots -->
<slot id='0' type='CPU'/>
</config>root@DietPi:/etc/fahclient#
GPU will be disabled if cant detect compatible hardware/driver
@Fourdee Hmm, actually I like it more, if we do not create own service and have arguments inside that might confuse users. But on the other hand, if it's working reliably, this is better and also avoids the sleep time during install.
In this case:
Disable autostart via debconf-set-selections
Not possible due to https://github.com/FoldingAtHome/fah-issues/issues/1193
The autostart must be set to true
Ok so this is what happens:
/mnt/dietpi_userdata/fahclient/config.xml
/mnt/dietpi_userdata/fahclient/config.xml
and override any CLI options in our service.root@DietPi:~# cat /mnt/dietpi_userdata/fahclient/config.xml
<config>
<!-- Slot Control -->
<power v='MEDIUM'/>
<!-- Folding Slots -->
<slot id='0' type='CPU'/>
Win win?
@Fourdee Okay, so the only issue then is, that after deb install the service starts automatically, as well as on boot.
As long as it is stopped before config step, it is no big issue. Is it possible to then disable the service (dietpi_controlled), have it not started on boot (before dietpi-login) and not face the startup error?
@MichaIng
Okay, so the only issue then is, that after deb install the service starts automatically, as well as on boot.
I worked around this with: https://github.com/Fourdee/DietPi/blob/testing/dietpi/dietpi-software#L3903
Then https://github.com/Fourdee/DietPi/blob/testing/dietpi/dietpi-software#L7917-L7922
So in practice, whether or not the auto service start creates the config.xml has no relevance, as we clear it afterwards, then allow the service with its command line options to set the default items. config.xml is then generated when slot number is set (total CPU count), and/or, user makes changes in web GUI.
/mnt/dietpi_userdata/fahclient/config.xml
Is this automatically used with our service started (due to service file WorkingDir), or can we adjust the service to directly create config.xml within userdata?
Then we would not need to chown/clear /etc/fahclient/config.xml
, just rm -R /etc/fahclient
instead?
So do the following all in configuration step?
mkdir -p $G_FP_DIETPI_USERDATA/fahclient
chown -R fahclient:dietpi $G_FP_DIETPI_USERDATA/fahclient
> /var/log/fahclient.log
chown fahclient:dietpi /var/log/fahclient.log
rm -R /etc/fahclient # Remove pre-created config dir
rm -R /var/lib/fahclient # Remove pre-created data dir
/lib/systemd/system/fahclient.service
👍
I think we should place all out non-essential services into /lib/systemd/system
, as then they can be masked as well and overwritten by user via /etc/systemd/system
, if desired.
Last question is what happens, if user manually installs an update via new deb package? Does /etc/init.d/FAHClient
get recreated, as well as old data and config dir then, as the init.d service assumes clean install (no config.xml etc)?
Last question is what happens, if user manually installs an update via new deb package? Does /etc/init.d/FAHClient get recreated, as well as old data and config dir then, as the init.d service assumes clean install (no config.xml etc)?
No idea, we'd need to test it locally with a dpkg reinstall.
Although, should be fine if dietpi-software reinstall 2
is used.
Reinstall
[FAILED] DietPi-Software | dpkg -i 2.deb
[ INFO ] DietPi-Software | Trying automated APT fix
[ OK ] DietPi-Software | APT fix, please wait...
Reading package lists...
Building dependency tree...
Reading state information...
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up fahclient (7.5.1) ...
update-rc.d: error: cannot find a LSB script for FAHClient
dpkg: error processing package fahclient (--configure):
subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
fahclient
E: Sub-process /usr/bin/dpkg returned an error code (1)
🈯️ We may need to dpkg -P fahclient
during install. config.xml
settings saved
Is this automatically used with our service started (due to service file WorkingDir), or can we adjust the service to directly create config.xml within userdata?
Yep, the working dir and data dir combo ensures /mnt/dietpi_userdata/fahclient/config.xml
is used.
Then we would not need to chown/clear /etc/fahclient/config.xml, just rm -R /etc/fahclient instead? So do the following all in configuration step?
Yep, i'll check 👍
EDIT: install test passed, will try one more then send commit.
@MichaIng
Interesting, you can manually add more slots in the config.xml to run more jobs:
root@DietPi:~# cat /mnt/dietpi_userdata/fahclient/config.xml
<config>
<!-- Slot Control -->
<power v='FULL'/>
<!-- User Information -->
<user v='Fourdee'/>
<!-- Folding Slots -->
<slot id='0' type='CPU'/>
<slot id='1' type='CPU'/>
<slot id='2' type='CPU'/>
</config>
Would be great if we could add default slots to:
I'll check CLI options
EDIT:
However, after a few minutes, two of the jobs stop for no reason and cpu usage back to 1 core:
Hmm, Examination of work files indicates 8 consecutive improper terminations of core.
== auto stop?
09:41:04:WU02:FS02:0xa4:*------------------------------*
09:41:04:WU02:FS02:0xa4:Folding@Home Gromacs GB Core
09:41:04:WU02:FS02:0xa4:Version 2.27 (Dec. 15, 2010)
09:41:04:WU02:FS02:0xa4:
09:41:04:WU02:FS02:0xa4:Preparing to commence simulation
09:41:04:WU02:FS02:0xa4:- Ensuring status. Please wait.
09:41:04:WU01:FS01:0xa4:
09:41:04:WU01:FS01:0xa4:*------------------------------*
09:41:04:WU01:FS01:0xa4:Folding@Home Gromacs GB Core
09:41:04:WU01:FS01:0xa4:Version 2.27 (Dec. 15, 2010)
09:41:04:WU01:FS01:0xa4:
09:41:04:WU01:FS01:0xa4:Preparing to commence simulation
09:41:04:WU01:FS01:0xa4:- Ensuring status. Please wait.
09:41:13:WU02:FS02:0xa4:- Looking at optimizations...
09:41:13:WU02:FS02:0xa4:- Working with standard loops on this execution.
09:41:13:WU02:FS02:0xa4:Examination of work files indicates 8 consecutive improper terminations of core.
09:41:13:WU02:FS02:0xa4:- Expanded 827107 -> 1403132 (decompressed 169.6 percent)
09:41:13:WU02:FS02:0xa4:Called DecompressByteArray: compressed_data_size=827107 data_size=1403132, decompressed_data_size=1403132 diff=0
09:41:13:WU02:FS02:0xa4:- Digital signature verified
09:41:13:WU02:FS02:0xa4:
09:41:13:WU02:FS02:0xa4:Project: 9036 (Run 856, Clone 0, Gen 2001)
09:41:13:WU02:FS02:0xa4:
09:41:13:WU02:FS02:0xa4:Entering M.D.
09:41:14:WU01:FS01:0xa4:- Looking at optimizations...
09:41:14:WU01:FS01:0xa4:- Working with standard loops on this execution.
09:41:14:WU01:FS01:0xa4:Examination of work files indicates 8 consecutive improper terminations of core.
CPU cores total / 2
Hmm, on the other hand the last two work units I had took all four cores and gave many points. I guess the more cores, the more points you get within same time (1 WU with 4 cores < 2 WU with 2 cores).
Thus mostly you want to work on one WU with all your cores?
@MichaIng
Online docs.
🈯️ http://dietpi.com/software (under misc to keep 2 lines of cats). Feel free to add this this /var/www/dietpi-software.html
🈯️ https://dietpi.com/phpbb/viewtopic.php?f=8&t=5&start=130#p13704
@MichaIng
Hmm, on the other hand the last two work units I had took all four cores and gave many points. I guess the more cores, the more points you get within same time (1 WU 4 cores < 2 WU 2 cores).
Yep, its "pot luck" on the jobs vs cores. I managed to get my Ryzen running 3 jobs with 2 cores each.
@MichaIng
Testing passed my end. I believe we can mark this as completed?
@Fourdee I will do another test on my 3 VMs, then mark as closed, if passed.
I think I have to check what "base credit" vs "estimated credits" mean. The last job had 1850 (or something) base credits, but in the end ~4500 estimated credits. But the points assigned were "just" 1850.
Testing: 🈯️ Jessie: not supported 🈯️ Stretch: install + reconfigure + restart with current config.xml works well 🈯️ Buster: install + config + uninstall 👍
I reordered the config steps a bid, and use dpkg-query -s
as slightly faster method to check for installed packages.
I raised on issue on their github to check for default user name possibilities: https://github.com/FoldingAtHome/fah-issues/issues/1255
If we use "DietPi" without passkey, theoretically someone could request a passkey for this, which would break our default config. Either we need to create a passkey our side or we need to use a user name, where no passkey can be requested for. Found "anonymous" e.g. to be default on Windows client, maybe for this one it's the case.
Interesting to know:
The Folding@home software on your computer calculates Total Points as follows: final_points = base_points max(1, sqrt( k deadline_length / elapsed_time)) The k-factor, a coefficient in awarding bonus points, is currently set to a baseline value of 0.75, but may vary depending on the scientific value of a project.
@MichaIng
Testing passed
Excellent, great work on this 👍
I'll mark this as completed.
@MichaIng
So points become less, when you need longer. But does not explain why I got assigned way less points than what the final calculation (shown within the log right before uploading) was. But however, does not matter much 😉.
At least in this case the phrase "Points mean prizes" does not apply 🤣
@Fourdee Last open question:
If we use "DietPi" without passkey, theoretically someone could request a passkey for this, which would break our default config. Either we need to create a passkey our side or we need to use a user name, where no passkey can be requested for. Found "anonymous" e.g. to be default on Windows client, maybe for this one it's the case.
I just requests via fake mail passkeys for "anonymous" and "Anonymous" and it showed "mail sent..", thus at least at the first stage there seem to be no check for obviously non-individual user names to block passkey request for them.
04:09:49:WARNING:WU00:FS00:AS lowered CPUs from 6 to 2
At the beginning of FAH's log, you'll find a summary of the hardware it detects. It won't use threads that it can't detect.
I've never run on a SBC, so I don't know what that detection summary is going to show.
NB: Switching settings or restarting the service will lead to lost folding process. After restarting to allow web UI, it was a tiny bid after 2% and after toggle while I am working/idle on the web UI, progress got reset from 3.something to 3.00%. So I guess results are saved to disk every full % of current work unit progress.
Checkpoints for CPU work are written (by default) every 15 minutes. Pausing a WU will cause progress to back up to the most recent checkpoint. The "idle" setting pauses the WU when it detects mouse/kbd activity. It always runs with a very nice setting, so I don't recommend "idle" although you need to be the judge of that.
Interesting, you can manually add more slots in the config.xml to run more jobs:
Yes, but you shouldn't do that. A single job using 3 threads will always be faster and therefore more valuable that three separate jobs using 1 thread. The longer it takes to complete a job, the less value it is to science and your points will be MUCH lower. Check out their website for "bonus points"
The same is true if you divide your CPU resources across multiple VMs. The best policy is to put all your resources toward a single job.
Hmm, on the other hand the last two work units I had took all four cores and gave many points. I guess the more cores, the more points you get within same time (1 WU with 4 cores < 2 WU with 2 cores). Thus mostly you want to work on one WU with all your cores?
If we use "DietPi" without passkey, theoretically someone could request a passkey for this, which would break our default config. Either we need to create a passkey our side or we need to use a user name, where no passkey can be requested for. Found "anonymous" e.g. to be default on Windows client, maybe for this one it's the case. I recommend you use DietPi for your team name. Then individuals can register under their own name and you can query the points and wu coun either way.
Note that a Passkey is REQUIRED plus 10 completed WUs before you earn bonus points for each distinct username.
Mulitple users can share a passkey, but there's no advantage to doing that. If I fold for team X with username Y and passkey Z, then somebody with username Y2 can get their own passkey or they can share the passkey Z but Y2 will still need to complete 10 WUs to qualify for bonus points. In other words, don't share passkeys. That was never indended.
For detailed support of this nature, visit foldingforum.org.
Last open question:
If we use "DietPi" without passkey, theoretically someone could request a passkey for this, which would break our default config. Either we need to create a passkey our side or we need to use a user name, where no passkey can be requested for. Found "anonymous" e.g. to be default on Windows client, maybe for this one it's the case.
I just requests via fake mail passkeys for "anonymous" and "Anonymous" and it showed "mail sent..", thus at least at the first stage there seem to be no check for obviously non-individual user names to block passkey request for them.
Right. See my last item above.
@bb30994 Nice, many thanks for your explanations 👍.
Note that a Passkey is REQUIRED plus 10 completed WUs before you earn bonus points
Ahh okay, this explains why I so far just got the "Base Credit" for each job. Some link/hint about this within the clients/UI could help to avoid confusion about his, but anyway collecting points is a minor issue here 😉.
The same is true if you divide your CPU resources across multiple VMs. The best policy is to put all your resources toward a single job.
Jep, agree now. Next job here, again all 4 cores in use. Wouldn't make sense to split it up. I just wonder, as the first two work units just took 1 core, even that the second (on VM) respectively the other 3 (host machine) were on idle.
€: Ah forgot that on Windows client I actively needed to raise the CPU cores for the slot within the settings. It was after install at 1
. Is there something similar that you can/need to do on Linux (.deb)?
Maybe the "Folding Power" setting also has an influence here? Never understood what this settings actually does, as at least I can't see some short term influence, when switching it. At least on the current WU, always 100% on all cores/threads.
@Fourdee
Maybe you can retry if you get single WUs using 6 core with power setting to "full".
I've never run on a SBC, so I don't know what that detection summary is going to show.
We will not offer Folding@Home for ARM, just x86 machines. There seem to be ways to enable it (AEROS)?, but as ARM computing performance is anyway very low, it just does not make sense.
In other words, don't share passkeys. That was never indended.
As said, we would not add this as sort of benefit or long term solution. I just would like to assure (for the long term), that when our users install folding@home, the whole install + startup process fully finishes without any user interaction and without any error message/popup of the kind "wrong passkey" / "please enter the passkey for your user name", as for full automated install we need to preconfigure one.
As theoretically now someone could request a passkey for our preconfigured user name, I think requesting one ourself and preconfigure it with DietPi install is the safest method. But we can then encourage users on docs etc. to choose an own user name.
Something like this would be great:
<!-- Folding Slots -->
<slot id='0' type='CPU'>
<cpus v='$G_HW_CPU_COUNT'/>
</slot>
Maybe as well possible via FAHClient argument?
Reference:
I tried setting
<cpus v='3'/>
15:02:36:WARNING:WU00:FS00:Changed SMP threads from 1 to 3 this can cause some work units to fail
15:02:36:WARNING:WU00:FS00:AS lowered CPUs from 3 to 1
#CPU 3 reported in web ui
Still using 1 thread/core.
root@DietPi:~# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 76
model name : Intel(R) Atom(TM) x5-Z8350 CPU @ 1.44GHz
stepping : 4
microcode : 0x406
cpu MHz : 1921.418
cache size : 1024 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology tsc_reliable nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes rdrand lahf_lm 3dnowprefetch epb pti tpr_shadow vnmi flexpriority ept vpid tsc_adjust smep erms dtherm ida arat
bugs : cpu_meltdown spectre_v1 spectre_v2
bogomips : 2880.00
clflush size : 64
cache_alignment : 64
address sizes : 36 bits physical, 48 bits virtual
power management:
Ok, as this is now completed, i'll mark as closed. Please reopen if required.
@Fourdee What you think about creating a passkey for our default user "DietPi"? In case should be done with dietpi.com mail.
@MichaIng
Yep, can do:
Hello DietPi,
Your passkey is: 06c869246e88c00cb05cc4d1758a97f9
Your username is: DietPi
Please use these to activate your client.
via daniel.knight@dietpi.com
🈯️ Tested install, working fine with key. Marking as closed.
Getting a passkey will also allow you to earn bonus points for completing work early. Get a Passkey.
Interesting, estimated points went up from 1800 to 1950 for existing task 🥂
Thanks all for your efforts! Hopefully the community here will engage on this and dedicate a few clocks to this project. My Dietpi 6.13 is up and running and proudly folding on Dietpi's team behalf.
Creating a software request:
Give us some formal software information:
Are there similar/alternative software titles available with DietPi-Software?
no
What makes your requested software better than the above solutions, if available?
N/A
How can DietPi make the installation easier or compatible, than following the install instructions or do APT installation, if available?
lower the entry barrier to get it up and running, set the proper priority to not affect other processes (e.g. when dietpi box is performing other resource heavy tasks), etc
Can you provide the installation steps that you would suggest DietPi-Software to do?
no
Are you willing to help maintaining the software installation, e.g. in case of needed setup changes due to updates etc.? This is not needed, but could speed up our decision to implement it, as man power is always a topic :wink:.
Sorry, I am totally unexperienced in bash coding.