PDA

View Full Version : POEM: SIMONA Source Code released



RSS
11-06-12, 05:36 AM
The source code of the SIMONA framework has been released and is available for download now. SIMONA is a shortcut for "Simulation of Molecular and Nanoscale systems", and can be considered as the core of the POEM@HOME software. The code can be downloaded freely for non-commercial use here http://www.int.kit.edu/nanosim/simona.php. Der Quellcode für das SIMONA Framework wurde veröffentlicht und kann jetzt heruntergeladen werden. SIMONA steht für "Simulation of Molecular and Nanoscale systems" und kann als das Kernstück der POEM@HOME Software gesehen werden. Der Code ist für den nicht kommerziellen Gebrauch kostenlos verfügbar unter http://www.int.kit.edu/nanosim/simona.php.

More... (http://boinc.fzk.de/poem/forum_thread.php?id=841)

zombie67
11-07-12, 09:22 AM
I wonder if Crunch3r will make an opt app? It looks like he is crunching POEM.

Anyone heard from him lately?

Fire$torm
11-15-12, 12:09 AM
Nope but IIRC he did register on this forum a few months back.

Slicker
11-15-12, 10:29 AM
FYI, the optimization probably won't be trivial. If the problem they are trying to solve isn't easily parallelized, then making the GPU app faster will be tough as it will require a complete re-write of the code and that means understanding what the code is trying to accomplish and either reorganizing the code in such a way that it can be run better in parallel, or coming up with a totally different approach to solve the problem by using a different algorithm which can be better run in parallel. And, if the problem requires spending a lot of time copying data to/from the GPU rather than having the GPU do actual calculations, there isn't much anyone will ever do to optimize it. At least not so that it will ever have 1 WU keep 1 GPU at 99% utilization.

Slicker
11-15-12, 11:09 AM
...just downloaded the source. There are some easy minor optimizations to be made, things like:

float c = a * b;
float d = c * c;
float e = d * c;

That's really the same as a*b * a*b * a * b, or the same as (a*b)^3 which can be done like:

float e = pow(a*b,3);

The big optimizations would come from getting rid of all the loops in the GPU code. Loops, especially ones that branch in logic internally, cause stream processors to sit idle. POEM has multiple nested loops. I'm sure that's why the utiliization is so low.

John P. Myers
11-15-12, 09:03 PM
...just downloaded the source. There are some easy minor optimizations to be made, things like:

float c = a * b;
float d = c * c;
float e = d * c;

That's really the same as a*b * a*b * a * b, or the same as (a*b)^3 which can be done like:

float e = pow(a*b,3);

The big optimizations would come from getting rid of all the loops in the GPU code. Loops, especially ones that branch in logic internally, cause stream processors to sit idle. POEM has multiple nested loops. I'm sure that's why the utiliization is so low.

Back when i used to do Assembly programming, i did things similar to what Poem did there, because the number of clocks it took to compute (a*b)^3 was far higher than the number of clocks it took to compute it by multiplying 3 lines of code. I would also, at times, use addition instead of multiplication to optimize it, or simply left-shifting the bits of a number instead of using powers of 2. Exponents were real killers of clock ticks, especially float exponents.