Page 1 of 1

Client Performance

Posted: Sat Apr 18, 2020 4:42 am
by Thejaka
I'm concerned about the efficiency of the clients, esp. the Windows client I'm using. I was thinking of using this on multiple Windows 10 computers in future (possibly soon). Currently experimenting on a single Windows 10 64 bit machine. Seems the client is x86/32 bit, and written using python? Is that optimal esp. on a 64 bit machine? Also, I was wondering if it might be possible to use a GPU core on non-nVidia systems, possibly using OpenCL. At least on my current test machine, GPU isn't detected/supported, and only a single vCPU is allocated automatically, I think, though I may be able to change that by fiddling with the config. Could the performance be improved? I'm a Software Engineer and coder, so wondering if I could help... Also wondering if clients could be developed for other devices, not currently supported. Do you have a client for XBOX? Wondering if a client could be setup on my brother's XBOX or in future, the one I plan to buy...

Re: Client Performance

Posted: Sat Apr 18, 2020 5:04 am
by PantherX
Welcome to the F@H Forum Thejaka,

Please note that the software is a mix of 32-bit and 64-bit. The parts that process the folding of WUs are 64-bit. The parts that are not used for folding WUs are 32-bit. I am aware that there's work being done to change from Python 2 to Python 3 here: https://github.com/FoldingAtHome/fah-control/pull/56

Supported GPUs are from AMD/Nvidia as long as they have OpenCL 1.2 and Double Precision.

Using gaming consoles requires approval from the vendors. Previously, there was a client for PS2 or PS3 (not sure) but once the partnership ended, that was stopped.

Re: Client Performance

Posted: Sat Apr 18, 2020 5:18 am
by jonault
There was a PS3 client - I ran it on my PS3 (and in fact that was part of the reason i bought it). I don't recall ever hearing of a PS2 client, but I never had a PS2, so it's not something I would have paid much attention to.

Re: Client Performance

Posted: Sun Jul 05, 2020 3:56 am
by bruce
I, too, boutght a PS3 almost exclusively for FAH.
Big mistake.

After a couple of years, I quit using it..
(1) it was power-hungry and heated up the room too much and
(2) it had no future as a platform. It was a completely static platform whereas commercial GPUs followed Moore's Law and increased in performance on a regular basis.
(3) It didn't generate FAH points; the credits only went to the PS3 game-board.

Re: Client Performance

Posted: Sun Jul 05, 2020 9:33 am
by JimboPalmer
Thejaka wrote:I'm concerned about the efficiency of the clients, esp. the Windows client I'm using. I was thinking of using this on multiple Windows 10 computers in future (possibly soon). Currently experimenting on a single Windows 10 64 bit machine. Seems the client is x86/32 bit, and written using python? Is that optimal esp. on a 64 bit machine? Also, I was wondering if it might be possible to use a GPU core on non-nVidia systems, possibly using OpenCL. At least on my current test machine, GPU isn't detected/supported, and only a single vCPU is allocated automatically, I think, though I may be able to change that by fiddling with the config. Could the performance be improved? I'm a Software Engineer and coder, so wondering if I could help... Also wondering if clients could be developed for other devices, not currently supported. Do you have a client for XBOX? Wondering if a client could be setup on my brother's XBOX or in future, the one I plan to buy...
The client deals with uploading and downloading data, which will always be ISP limited. The client also contains the user interface, which will always be human limited.

The science is done by the Core, (GPU Core_21 and Core_22, or CPU Core_a7) The GPU cores are mostly GPU bound but come in x86 and x64 variants. Most of the program is OpenCL instructions in the OpenMM framework. The CPU core, Core_a7, also comes in x86 and x64 variants and is mostly SIMD instructions. In an old CPU, they are SSE2, on newer CPUs, they are AVX_256. The frame work is GROMACS.

In some versions of the client (I know 7.5.1) the first Work Unit is started before the number of threads desired is known, so the First WU only uses a single thread. All other WUs uses the configured number of threads. You can lower the number of threads on the fly, but raising the number of threads only takes place at the beginning of a WU.

To improve F@H you improve either OpenMM or GROMACS,
http://openmm.org/
http://www.gromacs.org/
(while I am a programmer, I am not an expert in Molecular Dynamics or parallel processing via SIMD)

Currently all Cients (Linux, MacOS and Windows) and Cores run on 64 bit x86, although Windows still has legacy 32 bit Clients and CPU Cores as well.

There are retired Clients and Cores for other architectures. There was a 'recent' Android Client on ARM by Sony and a 'recent' Chrome client by Google. Looking forward it seems a MacOS client on ARM may be a target if someone with deep pockets' wants to fund one. (As a naive bystander, ARM has two challenges, big.LITTLE has 3 flavors which can confuse the code, and ARM has several SIMD engines, which may be confusing)
https://en.wikipedia.org/wiki/ARM_big.LITTLE
https://en.wikipedia.org/wiki/ARM_archi ... multimedia

Re: Client Performance

Posted: Sun Jul 05, 2020 3:12 pm
by Joe_H
JimboPalmer wrote:The science is done by the Core, (GPU Core_21 and Core_22, or CPU Core_a7) The GPU cores are mostly GPU bound but come in x86 and x64 variants. Most of the program is OpenCL instructions in the OpenMM framework. The CPU core, Core_a7, also comes in x86 and x64 variants and is mostly SIMD instructions. In an old CPU, they are SSE2, on newer CPUs, they are AVX_256. The frame work is GROMACS.
Just updating this a bit. There used to be x86 (32-bit) versions of the GPU cores, but GPU folding has required 64-bits for at least the last couple of years.

As far as I can recall, the A7 folding core has not had a 32-bit version. The previous A4 CPU folding core had both 32-bit and 64-bit versions, the last projects using A4 finished up last year.

As mentioned, FAHClient is not doing anything that requires the expanded address space or registers available with 64-bit code. In addition it uses very little CPU time, only being active when needed to download or upload files, update the log, or handle control signals to start or stop folding. As an example, I have a system that has been up for 3 weeks, FAHClient has used all of 46 minutes of CPU time.

Briefly in the past there was a 64-bit version of FAHClient for Windows. But there were support issues that I vaguely recall being due to one of the 64-bit version of the tools used working differently.

Right now the open source components are OpenMM, Gromacs, and parts of the folding client - https://github.com/FoldingAtHome. Other parts of the client are planned to become open source including FAHClient, but that is being postponed while development resources are focused on the current response for COVID-19. Contributions can be made to the open source components.

As for gaming console support, while the client created in the past for PS3 with Sony's support was successful, it did show some limitations. The first, and possibly the biggest, is that a gaming console is static. Hardware that might be near leading edge when released becomes obsolete after 3-4 years. In any case, a client for a gaming console would require major support from the manufacturer to be possible.

Re: Client Performance

Posted: Sun Jul 05, 2020 3:41 pm
by bruce
FAHClient for Windows is 32-bit. So what.

As PantherX has already said, it's a rather low activity process, spending most of it's time waiting on your response or on a response from your ISP. It has no need for large allocations of RAM which would drive it into 64-bit memory. It's basically a browser.

You worry about running it on 10 computers. Do you worry about having a browser on each of those computers?

Re: Client Performance

Posted: Sun Jul 05, 2020 8:11 pm
by JimboPalmer
Joe_H wrote:As far as I can recall, the A7 folding core has not had a 32-bit version. The previous A4 CPU folding core had both 32-bit and 64-bit versions, the last projects using A4 finished up last year.

Code: Select all

18:00:34:WU01:FS00:0xa7:************************************ System ************************************
18:00:34:WU01:FS00:0xa7:        CPU: Intel(R) Core(TM) i5 CPU M 520 @ 2.40GHz
18:00:34:WU01:FS00:0xa7:     CPU ID: GenuineIntel Family 6 Model 37 Stepping 5
18:00:34:WU01:FS00:0xa7:       CPUs: 4
18:00:34:WU01:FS00:0xa7:     Memory: 2.92GiB
18:00:34:WU01:FS00:0xa7:Free Memory: 1.26GiB
18:00:34:WU01:FS00:0xa7:    Threads: WINDOWS_THREADS
18:00:34:WU01:FS00:0xa7: OS Version: 6.2
18:00:34:WU01:FS00:0xa7:Has Battery: true
18:00:34:WU01:FS00:0xa7: On Battery: false
18:00:34:WU01:FS00:0xa7: UTC Offset: -5
18:00:34:WU01:FS00:0xa7:        PID: 5908
18:00:34:WU01:FS00:0xa7:        CWD: C:\Users\Laptop\AppData\Roaming\FAHClient\work
18:00:34:WU01:FS00:0xa7:******************************** Build - libFAH ********************************
18:00:34:WU01:FS00:0xa7:    Version: 0.0.18
18:00:34:WU01:FS00:0xa7:     Author: Joseph Coffland <joseph@cauldrondevelopment.com>
18:00:34:WU01:FS00:0xa7:  Copyright: 2019 foldingathome.org
18:00:34:WU01:FS00:0xa7:   Homepage: https://foldingathome.org/
18:00:34:WU01:FS00:0xa7:       Date: Oct 26 2019
18:00:34:WU01:FS00:0xa7:       Time: 01:34:37
18:00:34:WU01:FS00:0xa7:   Revision: c1e3513b1bc0c16013668f2173ee969e5995b38e
18:00:34:WU01:FS00:0xa7:     Branch: master
18:00:34:WU01:FS00:0xa7:   Compiler: Visual C++ 2008
18:00:34:WU01:FS00:0xa7:    Options: /TP /nologo /EHa /wd4297 /wd4103 /Ox /MT
18:00:34:WU01:FS00:0xa7:   Platform: win32 10
18:00:34:WU01:FS00:0xa7:       Bits: 32
18:00:34:WU01:FS00:0xa7:       Mode: Release
18:00:34:WU01:FS00:0xa7:************************************ Build *************************************
18:00:34:WU01:FS00:0xa7:       SIMD: sse2
18:00:34:WU01:FS00:0xa7:********************************************************************************
As you see, I am running 32 bit Core_a7 on a 32 bit version of Windows 10. (My wife has a BBQ contest scoring App that needs to be 32 bit, everything other PC is 64 bit)

Re: Client Performance

Posted: Sat Aug 22, 2020 7:48 pm
by MichelF
Hi, I started folding@home a few months ago, and just downloaded it on my iphone. Please help me set it up. It would be super if I could use the same passkey as my desktop, so I have 1 account and my numbers increase faster.
Thank you for your reply

Re: Client Performance

Posted: Sat Aug 22, 2020 9:50 pm
by PantherX
Welcome to the F@H Forum MichelF,

Please note that Folding@Home doesn't have a active mobile application yet. There was an Android version few years ago but that was discontinued. I am not sure what application you're talking about. I am aware that there might be some Folding@Home monitoring application which will provide data for your systems that are running the client (Linux/MacOS/Windows).

Re: Client Performance

Posted: Sun Aug 23, 2020 4:51 am
by bruce
I think what you're talking about is a 3rd party iphone app which can monitor the FAHClient running on your PC and display the protein, but you need to be running FAHClient on a PC which is doing the actual work required to process a WU. Without the PC app to do the real work, the iphone app isn't useful.