MichaIng / DietPi

Lightweight justice for your single-board computer!
https://dietpi.com/
GNU General Public License v2.0
4.8k stars 494 forks source link

Folding@Home #1985

Closed nnovaes closed 6 years ago

nnovaes commented 6 years ago

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.

MichaIng commented 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

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/

fah 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.

MichaIng commented 6 years ago

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 😄.

nnovaes commented 6 years ago

thanks!

yeah, a DietPi team would be awesome! Let me know if you want me to create it.

MichaIng commented 6 years ago

@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
Fourdee commented 6 years ago

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: image

MichaIng commented 6 years ago

@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:

Fourdee commented 6 years ago

@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.

MichaIng commented 6 years ago

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:

Fourdee commented 6 years ago

@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.

MichaIng commented 6 years ago

@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? 😆

Fourdee commented 6 years ago

image

Silly question, how do I access the web client remotely?

"Computational Science" at least fully fits according to wikipedia?

Sounds good 👍

MichaIng commented 6 years ago

@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:

Fourdee commented 6 years ago

@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 👍

Fourdee commented 6 years ago

@MichaIng

Much better, thanking you 👍 Although, even at full this is only using 2/6 cores image

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.

REF: https://twitter.com/DietPi_/status/1026687469989908480

MichaIng commented 6 years ago

@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: chart

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.

Fourdee commented 6 years ago

@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).

Fourdee commented 6 years ago

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

MichaIng commented 6 years ago

@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 🤔.

Fourdee commented 6 years ago

@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

image

MichaIng commented 6 years ago

@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:

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..

Fourdee commented 6 years ago

@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]:
MichaIng commented 6 years ago

@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....

Fourdee commented 6 years ago

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

MichaIng commented 6 years ago

@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:

Fourdee commented 6 years ago

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

Fourdee commented 6 years ago

Ok so this is what happens:

root@DietPi:~# cat /mnt/dietpi_userdata/fahclient/config.xml
<config>
  <!-- Slot Control -->
  <power v='MEDIUM'/>

  <!-- Folding Slots -->
  <slot id='0' type='CPU'/>

Win win?

MichaIng commented 6 years ago

@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?

Fourdee commented 6 years ago

@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.

MichaIng commented 6 years ago

/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)?

Fourdee commented 6 years ago

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.

Fourdee commented 6 years ago

@MichaIng

Interesting, you can manually add more slots in the config.xml to run more jobs: image

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: image

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.
MichaIng commented 6 years ago

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?

Fourdee commented 6 years ago

@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

Fourdee commented 6 years ago

@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.

Fourdee commented 6 years ago

@MichaIng

Testing passed my end. I believe we can mark this as completed?

MichaIng commented 6 years ago

@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.

Fourdee commented 6 years ago

@MichaIng

Testing passed

Excellent, great work on this 👍

I'll mark this as completed.

Fourdee commented 6 years ago

@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 🤣

MichaIng commented 6 years ago

@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.

bb30994 commented 6 years ago

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.

bb30994 commented 6 years ago

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.

MichaIng commented 6 years ago

@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.

MichaIng commented 6 years ago

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?

Fourdee commented 6 years ago

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:
Fourdee commented 6 years ago

Ok, as this is now completed, i'll mark as closed. Please reopen if required.

MichaIng commented 6 years ago

@Fourdee What you think about creating a passkey for our default user "DietPi"? In case should be done with dietpi.com mail.

Fourdee commented 6 years ago

@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

Fourdee commented 6 years ago

🈯️ 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 🥂

nnovaes commented 6 years ago

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.