Page 1 of 1

Where can I learn more?

PostPosted: Tue Apr 23, 2019 12:45 am
by MeeLee
I think I pretty much got things down on the hard and software side on how to use FAH, and have it run as much optimized as I possibly can.

So boredom kicks in, and I wish there was more to learn.
After learning about OS, hardware, PPD, efficiencies, I would want to learn more about the FAH software (though I'm not very interested in the medical side of the program).

Little to nothing is shared on these forums about the FAH software; development on programs working closely with FAH client or Control, and I wondered if there are any pages or resources I can learn more of.
How it all works, etc... (or at least a more in-depth explanation of how a lot of these things work).
Who makes the newer cores available?
Some behind the scenes info on FAH (I already read the most of the articles on the main page and news, save for the documents pertaining the diseases themselves)
Are there any more resources online?
Are there any projects working with FAH, that expand on some of the capabilities of FAH?
(I know of one graph type data logging piece of software that works with FAH, but want to know if there are more programs that can expand on FAH Control?)

Re: Where can I learn more?

PostPosted: Tue Apr 23, 2019 1:02 am
by bruce
You might (or might not) find interesting things at OpenMM.org or gromacs.org. Those are the two primary sources of the analysis software that gets incorporated into the FAHCores.

Their primary customers are researchers with a powerful computer belonging to their university. FAH has donated some development work to those sites, too, but not all of the features you can read about there actually get incorporated into a FAHCore. We CERTAINLY do NOTmake a new FAHCore every time there's a new release of OpenMM/GROMACS. There will be one when the science being done at FAH needs some new features.

Re: Where can I learn more?

PostPosted: Tue Apr 23, 2019 2:45 am
by JimboPalmer
MeeLee wrote:So boredom kicks in, and I wish there was more to learn.
After learning about OS, hardware, PPD, efficiencies, I would want to learn more about the FAH software (though I'm not very interested in the medical side of the program)


From a computer science point of view, almost all of F@H's logic is about SIMD; Single Instruction, Multiple Data. (I occasionally see hints Core_a4 can choose to not use SIMD, but I think that is left over verbiage from some earlier core)

Core_a4 uses SSE2 instructions that have been in the x86 instruction set since the Pentium 4. Core_a7 can also use SSE2 but will choose AVX if it gets a CPU and OS that support AVX.

Core_21 uses the SIMD instructions inherent in a modern GPU.

(I would hope that Sony's Android client uses AIM NEON instructions, but I have no proof)

If you do not become too fixated by the actual instructions, SIMD will be very similar between them.

https://en.wikipedia.org/wiki/SIMD
https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions
https://en.wikipedia.org/wiki/Advanced_ ... Extensions
https://en.wikipedia.org/wiki/ARM_archi ... SIMD_(NEON)
https://en.wikipedia.org/wiki/Graphics_Core_Next
https://en.wikipedia.org/wiki/CUDA
https://en.wikipedia.org/wiki/OpenCL
https://pdfs.semanticscholar.org/245b/f ... c3181f.pdf

Re: Where can I learn more?

PostPosted: Tue Apr 23, 2019 3:17 am
by MeeLee
Thanks. I'll start reading those pages...

Re: Where can I learn more?

PostPosted: Tue Apr 23, 2019 5:20 am
by bruce
After SMID, GPUs were the next step in highly parallel arithmetic. They contain hardware that's built explicit to provide many times as many parallel operations as CPUs. It's not easy to write highly parallel code using classical programming languages so CUDA and OpenCL became popular after several earlier false-starts. FAH is all about optimizing increased parallelism and getting longer trajectories more rapidly (from the computer science point of view).

The early design goals for CPUs were to make a device that could do a lot of different types of operation (i.e.- were general purpose). Many things they're reequired to do do not lend themselves to parallelism, but FAH is partcularly suited for parallelism. Look at the numbers of atoms. Now perform the following series of calculations on each one: calculate the forces between each pair of atoms. Add all the forces on each atom from all the other atoms. Calculate the acceleration and velocity induced by that force on that atom. Calculate a new position for that atom at a slightly later time. Repeat as necessary for enough time steps.

Notice that you can do each of those operations in massively parallel steps on a huge number of members of a large block of data.

Re: Where can I learn more?

PostPosted: Tue Apr 23, 2019 1:53 pm
by JimboPalmer
"Who makes the newer cores available?"

As Bruce mentioned F@H works with open source science code, some of which they develop, as open source.
They hire Cauldron Development to put the science in a closed source Core so that donors are not tempted to cheat by producing bad science. (Everyone wants their unfair advantage)
Right now CPU Core_a7 is in production and slowly replacing Core _a4. A project stays with the same core, new projects choose the newest, greatest core.
GPU Core_22 is in beta testing, in time it may slowly replace Core_21

https://cauldrondevelopment.com/clients.html Click on the university's 'show details'.