An idea on how to optimize einstein.

Jordan Wilberding
Jordan Wilberding
Joined: 19 Feb 05
Posts: 162
Credit: 715,454
RAC: 0
Topic 188215

I know they are against releasing the code of einstein for various reasons. But why can't maybe break up the einstein code into the part that does calculations, and then a part that does everything else. That way people could optimize the calculation code, say for a pentium4, and also you don't have to worry about people tinkering with other parts of the code. Just an idea

Thanks!
Jordan Wilberding

such things just should not be writ so please destroy this if you wish to live 'tis better in ignorance to dwell than to go screaming into the abyss worse than hell

Biogenesis
Biogenesis
Joined: 11 Nov 04
Posts: 24
Credit: 140,834
RAC: 0

An idea on how to optimize einstein.

> I know they are against releasing the code of einstein for various reasons.
> But why can't maybe break up the einstein code into the part that does
> calculations, and then a part that does everything else. That way people could
> optimize the calculation code, say for a pentium4, and also you don't have to
> worry about people tinkering with other parts of the code. Just an idea
>
> Thanks!
> Jordan Wilberding
>
>
>

It's a real bitch hey? Unfortunatly they don't want people optimising the code with flags that could invalidate results, I get the feeling that -ffast-math and -O3 can screw things up. I've never had problems with -ffast-math myself, but then again I've never written scientific programs :p. -O3 on the other hand has broken a few things of mine. One being a GTK+2.0 program with an animation, with -O2 it animated fine, with -O3 it'd only animate with the animation got a callback (mouse moved in/out/clicked window resized/got hidden etc).

Also, if you look into your BOINC directory you'll see that the core file that's downloaded is called something like "einstein_4.80_i686-pc-linux-gnu", this means that they have compiled an i686 optimised version of the core, it's not Athlon optimised ('sif run intel :p) but none the less they have put some thought into it.

Jordan Wilberding
Jordan Wilberding
Joined: 19 Feb 05
Posts: 162
Credit: 715,454
RAC: 0

> It's a real bitch hey?

Message 6780 in response to message 6779


> It's a real bitch hey? Unfortunatly they don't want people optimising the code
> with flags that could invalidate results, I get the feeling that -ffast-math
> and -O3 can screw things up. I've never had problems with -ffast-math myself,
> but then again I've never written scientific programs :p. -O3 on the other
> hand has broken a few things of mine. One being a GTK+2.0 program with an
> animation, with -O2 it animated fine, with -O3 it'd only animate with the
> animation got a callback (mouse moved in/out/clicked window resized/got hidden
> etc).
>
> Also, if you look into your BOINC directory you'll see that the core file
> that's downloaded is called something like "einstein_4.80_i686-pc-linux-gnu",
> this means that they have compiled an i686 optimised version of the core, it's
> not Athlon optimised ('sif run intel :p) but none the less they have put some
> thought into it.

I know it would take a little testing to get things right. As far as I know generally gcc won't optimize floating point operations hardly at all, because it is not associative or commutative. But it still can do other optimizations specific to p4 or athlon, that would make the code more processor friendly. That's all I am really asking for, a simple -march=pentium4 and -march=athlon-xp version is all I want :)

such things just should not be writ so please destroy this if you wish to live 'tis better in ignorance to dwell than to go screaming into the abyss worse than hell

Paul D. Buck
Paul D. Buck
Joined: 17 Jan 05
Posts: 754
Credit: 5,385,205
RAC: 0

Jordan, > I know they are

Jordan,

> I know they are against releasing the code of einstein for various reasons.
> But why can't maybe break up the einstein code into the part that does
> calculations, and then a part that does everything else. That way people could
> optimize the calculation code, say for a pentium4, and also you don't have to
> worry about people tinkering with other parts of the code. Just an idea

Actually, that is what has happened. The Science Application that does the calculations is written in C++ and uses the BOINC Daemon and BOINC Manager to do everything else.

THough it is not going to change your run times much if at all, there are optimized BOINC Software components out there.

> Thanks!

You are welcome ... no charge ...

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.