Page 3 of 3
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 3:39 pm
by 7im
Again, fah is very different than other DC projects. The next version of gromacs software, that will eventually make its way in to a new fahcore, does have significant speed advantages, according to gromacs.org. And the speed comes from FMA support (part of AVX). We just won't know the real world speedup until released, like any software update. Could be .2x, 2x, or 20x.
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 4:05 pm
by bruce
What percentage of home computers have the latest generation hardware? ... the previous generation hardware? ... hardware from several generations ago? (etc.) Multiply those numbers by some factor that describes the optimization level for each class of hardware and add them all together and you'll approximate this massive distributed supercomputer that runs FAH. If there are a lot of slightly older computers and a few of the latest, it doesn't pay for FAH to optimize for the latest yet, but it will as people upgrade... yet a lot of home computers don't get upgraded if they're still working for what they were originally purchased for.
GPUs and SSE require a lot of work from the programmers, but it can produce very good DC code. As I understand it (and I could be wrong here) it's easier for a compiler to create acceptable DC code for AVX and AVX2 (i.e.-less efficient than a good programmer could do, but if the hardware is inherently faster, it may work out okay). Unfortunately the code has to be compiled with a variety of specific options depending on who makes your CPU and which features it has or does not have and other factors like that creating a multitude of FahCores that have to be tested and then supported.
When commonplace hardware changes FAH has to re-do code to take advantage of the new stuff but they have to continue supporting all the existing hardware from previous generations -- based on the real popularity of each type of hardware that needs it's own type of optimization. Somebody that doesn't have an AVX computer but they do have an SSE computer won't be able to run a new FahCore supporting AVX whenever one is produced. The same is probably true for AVX2 vs. AVX(1).
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 4:09 pm
by StitchExperimen
For people reading this the web link has to include the www for
http://www.gromacs.org or it doesn't work.
http://www.gromacs.org
I believe AVX origionally released in Q1 2011 and then Q3 2011 AMD was a 20% boost.
But development of GPU sorta places cpu on a back burner of code development since it appears that AVX3 isn't capable of a 300% boost of DC.
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 5:05 pm
by 7im
20% boost in what? Any change has to tie in the how FAH processes work units. Here is how this ties in...
FMA in AVX doubles the SSE bit width, so theoretically, FMA support could crunch double the number of SSE instructions per clock cycle. This means as much as a 100% speed increase because FAH uses so much SSE code. Of course real world numbers never live up to the marketing hype.
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 5:46 pm
by StitchExperimen
AVX1 has been in use other DC projects and as I recall the gain was 20 percent. From 128 bit register to 256 bit register was one big change at the time and the ability to to do the math equation c=a+b saving both registers instead of a=a+b.
Test info in some real world tasks.
http://www.sisoftware.net/?d=qa&f=cpu_intel_sb
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 8:11 pm
by P5-133XL
Until there is a core it is just total speculation what performance gains are going to occur with AVX. Is someone volunteering to write one? It is not a trivial task.
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 8:38 pm
by bruce
In the early days of GROMACS, it used part x87 code for floating point operations. When 3DNow! and SSE were introduced, hand optimized assembly language inner loops were introduced. In theory, SSE could do floating point 4x as fast but to do that, the programmer had to pack the data for four sets of operations into registers before telling SSE to perform the simultaneous operations on all four segments of the registers. Then you had to move the data back to four result locations ... and all with a minimum of conditional branch operations. Sometimes the number of identical operations wasn't divisible by 4 and sometimes other operations took time, too, but in spite of real-world constraints, FAH ran 3.8x as fast.
If I read the gromacs.org objectives, adding the AVX code means that SSE code will be REMOVED from future versions. As I said above, that puts a bit of a kink in the plans for folding on today's most popular hardware. The trick is activating enough cores to simultaneously support everybody who wants to fold.
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 9:40 pm
by StitchExperimen
I know that some projects the manipulation cannot be converted over to GPU and it's beyond me at this point in time. But Help Conquer Cancer was a 6 year project with a lot of mechanical groundwork done by high speed robotic automation creating 300 million samples that were then put through x-ray. In the latter 8 months when the GPU started coming on board and all types of GPU most AMD got on board and the growth grew rapidly the project was finished. One person with dual Radeon 7950s had completed 1% of the project. What this means is 100 dual 7950's could have completed the whole project. HD 7950's can be had for $300. That's 100 machines that can put a serious dent in a computing project. If your worried about noise from cooling 2 GPUs then just make 200 machines.
Now the draw back to this example is that parallel wu could be processed (8) and the wu time would decrease to 30 seconds.
But it seems I'm just joining when Core_17 is coming out and I don't know what your situation is on being able to deliver but if you can I might, might be able to add some more from another team I use to associate with while doing Help Conquer Cancer. They helped me write and re-write the ever changing Boinc software, config.xml file.
Also when are they going to label these 8900 files?
Re: New: Need confirmation How to run multiple threads on a
Posted: Mon Jul 08, 2013 11:29 pm
by bruce
Yes, the 7950 is a powerful piece of equipment, but if Help Conquer Cancer can be completed is a relatively short time by a few hundred devices, it's small compared to FAH. FAH runs many dozens of projects simultaneously and the scientists are constantly starting new projects because they keep finding new things to study. They've said that they cannot see far enough in the future to see FAH running out of new things to study. It's nice when a project that was once predicted to be a 6 year can be completed much more quickly, but that's still a tiny bit of what's unknown about protein dynamics.
The role of the software developer is to make the most of your hardware. The role of the Assignment Server is to direct every computer to a piece of analysis that each donated computer can help with. The role of the scientists is to formulate new questions in terms that the Donors can help with and to summarize what has been learned into a scholarly paper that can be published for everyone to read. [See
http://en.wikipedia.org/wiki/Scientific_publication].
See also
What has the project completed so far? and follow the link to the Results page if you're interested.
Re: New: Need confirmation How to run multiple threads on a
Posted: Wed Jul 10, 2013 7:12 am
by error-id10t
Sorry about the late response, thanks very much for the advise. Good reading the additional questions too.