Page 1 of 1
client software optimizations
Posted: Sun Mar 29, 2020 5:57 pm
by bratpiorka
HI all,
As situation with cov-19 get worse and worse, I decided to engage in Folding@home to help find cure for it.
I work for a large IT corporation where I had over 10 years of specialization in optimizing performance of CPU and GPU apps and drivers.
Is there a way to help to optimize F@H client software? Having powerful CPUs and GPUs is very important to get calculations faster but running optimized algorithms are also very important...
Re: client software optimizations
Posted: Sun Mar 29, 2020 7:35 pm
by Jesse_V
HI bratpiorka and welcome to the forum.
As some background knowledge, there are multiple layers to the F@h software. Most users see the Web Control website or the FAHControl front-end, which both talk to FAHClient under the hood. FAHClient organizes the work, tracks the user's configuration, downloads workunits, and returns them when complete. FAHClient also launches FAHCores, and each FAHCore perform the critical processing of the workunit on a CPU or GPU. These are the specialty components that are based on tools like OpenMM and GROMACS. Do you or your coworkers have any experience in molecular modeling?
Re: client software optimizations
Posted: Sun Mar 29, 2020 7:45 pm
by JimboPalmer
The science is open source.
The CPU code is GROMACS
http://www.gromacs.org/
The GPU code is OpenMM
http://openmm.org/
Both are available for optimizations
Re: client software optimizations
Posted: Sun Mar 29, 2020 10:02 pm
by bratpiorka
thanks for replies!
no, we are not specialized in molecular modeling, but we are highly specialized in optimization of CPU and GPU computing tasks. On low level computation it really doesn't matter what do you calculate but rather how to do it really fast. Thanks for explanation - it looks like we should contact with GROMACS/OpenMM
Re: client software optimizations
Posted: Sun Mar 29, 2020 11:59 pm
by JimboPalmer
I can say GROMACS has SSE2, SSE4, AVX_256, and AVX_512 branches, but F@H only follows the SSE2 and AVX_256 branches at this time in Core_a7. (I would bet that covers most CPUs in use at the time it was written)
I was never a SIMD specialist programmer, but I appreciate that it gets more 'hand built' than the accounting code I did work on.
So far as I know, OpenMM is written to OpenCL 1.2, or perhaps that is a choice F@H decides to follow.
Re: client software optimizations
Posted: Tue Mar 31, 2020 12:42 am
by bruce
Back when SSE was a new concept, GROMACS had hand-optimized ALC code to pack SP Floats into SSE registers and unpack the results. We've come a long way since then.
Re: client software optimizations
Posted: Tue Mar 31, 2020 12:50 am
by ipkh
At least 1 project was sent out with a newer version of Openmm than was available to the fahclient.
The optimizations probably are built into the core itself. There is also the possibility that newer instructions wouldn't help all that much, much like the new AVX512 doesn't always outperform earlier code due to its downclocking.
Re: client software optimizations
Posted: Tue Mar 31, 2020 1:59 am
by JimboPalmer
Yes Core_22 uses a newer version of OpenMM than Core_21 does. So a little better science and slightly more points.