Compiling setiathome client for AMD64 (Fedora 2)

Questions and Answers : Unix/Linux : Compiling setiathome client for AMD64 (Fedora 2)
Message board moderation

To post messages, you must log in.

AuthorMessage
MagnusG

Send message
Joined: 5 Jun 03
Posts: 6
Credit: 16,470,400
RAC: 21
Sweden
Message 30050 - Posted: 25 Sep 2004, 20:10:05 UTC

I managed to compile the boinc client from the instructions on the homepage (configure, make -k).
It gives a lot of errors, probably because my installation misses MySQL. Anyway, I got a 4.10 client OK.
I tried the same (configure, make -k) for the seti client but it fails pretty quick.
To be honest, I have not a clue what I'm doing here!
What should be the proper steps here (just configure and make)?
Other threads talks about autoconf, gmake .....
Maybe I should just wait for a ready-made binary!

ID: 30050 · Report as offensive
MagnusG

Send message
Joined: 5 Jun 03
Posts: 6
Credit: 16,470,400
RAC: 21
Sweden
Message 30279 - Posted: 26 Sep 2004, 13:49:51 UTC

I guess I'll stick to SETI classic for now since I found a 3.08 client for x86_64 here. (or is it possible to use boinc 4.10 with 3.08 seti client ???)
ID: 30279 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 31779 - Posted: 1 Oct 2004, 14:03:07 UTC

I have written a guide for compiling the boinc client on linux, it is available here:

http://forums.pcper.com/showthread.php?t=349185

You should be able to use this guide to compile for AMD64.

Regards,

Ned


ID: 31779 · Report as offensive
gtg

Send message
Joined: 2 Nov 99
Posts: 11
Credit: 425,149
RAC: 0
United Kingdom
Message 34512 - Posted: 9 Oct 2004, 17:20:29 UTC - in response to Message 31779.  

> I have written a guide for compiling the boinc client on linux, it is
> available here:
>
> http://forums.pcper.com/showthread.php?t=349185
>
> You should be able to use this guide to compile for AMD64.

I followed the instructions fine. However, when I run boinc, it tells me:

Message from server: platform 'x86_64-unknown-linux-gnu' not found

Did you manage to get your boinc to actually run with data downloaded from seti ?

I'm using a box with the new Intel Xeon EM64T processors in. I compiled by setting my CFLAGS to: -march=x86-64 -O3 -fomit-frame-pointer -funroll-loops -fforce-addr -ffast-math -ftracer

I'm running on SuSE Enterprise Server 9.0 (uname -a reports "Linux hq-dls1 2.6.5-7.108-smp #1 SMP Wed Aug 25 13:34:40 UTC 2004 x86_64 x86_64 x86_64 GNU/Linux")

GTG
ID: 34512 · Report as offensive
MagnusG

Send message
Joined: 5 Jun 03
Posts: 6
Credit: 16,470,400
RAC: 21
Sweden
Message 36179 - Posted: 13 Oct 2004, 19:29:19 UTC - in response to Message 31779.  

> I have written a guide for compiling the boinc client on linux, it is
> available here:
>
> http://forums.pcper.com/showthread.php?t=349185
>
> You should be able to use this guide to compile for AMD64.
>
> Regards,
>
> Ned
>
>
>
>

Nice stuff!
Have you tried to compile the SETI@Home client yet, I certainly failed here!

Magnus
ID: 36179 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 40009 - Posted: 25 Oct 2004, 16:21:17 UTC - in response to Message 34512.  

> > I have written a guide for compiling the boinc client on linux, it is
> > available here:
> >
> > http://forums.pcper.com/showthread.php?t=349185
> >
> > You should be able to use this guide to compile for AMD64.
>
> I followed the instructions fine. However, when I run boinc, it tells me:
>
> Message from server: platform 'x86_64-unknown-linux-gnu' not found
>
> Did you manage to get your boinc to actually run with data downloaded from
> seti ?
>
> I'm using a box with the new Intel Xeon EM64T processors in. I compiled by
> setting my CFLAGS to: -march=x86-64 -O3 -fomit-frame-pointer -funroll-loops
> -fforce-addr -ffast-math -ftracer
>
> I'm running on SuSE Enterprise Server 9.0 (uname -a reports "Linux hq-dls1
> 2.6.5-7.108-smp #1 SMP Wed Aug 25 13:34:40 UTC 2004 x86_64 x86_64 x86_64
> GNU/Linux")
>
> GTG
>

Sorry, I haven't any experience with AMD64. You could try simply renaming the boinc client and see if that works.

Also, check out this thread:

http://forums.teamphoenixrising.net/showpost.php?p=234203&postcount=36

This guy had the same problem. Maybe you could contact him and see if he ever got it working.

Ned


*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 40009 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 40010 - Posted: 25 Oct 2004, 16:24:03 UTC - in response to Message 36179.  


>
> Nice stuff!
> Have you tried to compile the SETI@Home client yet, I certainly failed here!
>
> Magnus
>

Yes, and we hope to publish details soon.

One note of caution - do not use the -ffast-maths flag when compiling the seti client. It generates invalid results when processing work units. You must make sure you thoroughly test any self-compiled seti client by running the test reference work unit and comparing the results.sah file against output from the original client.

Ned


*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 40010 · Report as offensive
Hans Dorn
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 3 Apr 99
Posts: 2262
Credit: 26,448,570
RAC: 0
Germany
Message 40091 - Posted: 25 Oct 2004, 21:17:34 UTC - in response to Message 40010.  
Last modified: 25 Oct 2004, 21:30:23 UTC

> Yes, and we hope to publish details soon.
>
> One note of caution - do not use the -ffast-maths flag when compiling the seti
> client. It generates invalid results when processing work units. You must make
> sure you thoroughly test any self-compiled seti client by running the test
> reference work unit and comparing the results.sah file against output from the
> original client.
>
> Ned
>

Hi Ned!

I checked the "-ffast_math" option against the test WU and the result
file looked pretty OK. (Compiled with march=prescott)
Differences in the 5th place after the dot are quite normal,
since "float" is only exact for 6 or 7 digits.

I'm currently running this client and the returned results seem to validate OK.
Did you see anything different when compiling for AMD?

Regards Hans

P.S: Drop -funroll_loops, it's not doing any good for the seti client.


ID: 40091 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 40099 - Posted: 25 Oct 2004, 21:48:12 UTC - in response to Message 40091.  
Last modified: 25 Oct 2004, 21:49:01 UTC

>
> Hi Ned!
>
> I checked the "-ffast_math" option against the test WU and the result
> file looked pretty OK. (Compiled with march=prescott)
> Differences in the 5th place after the dot are quite normal,
> since "float" is only exact for 6 or 7 digits.
>
> I'm currently running this client and the returned results seem to validate
> OK.
> Did you see anything different when compiling for AMD?
>
> Regards Hans
>
> P.S: Drop -funroll_loops, it's not doing any good for the seti client.
>


Hi Hans,

That's interesting. I think I'll go back and revisit this. I only ran the test unit once for each client - maybe more testing is needed (set of 3). But if your results are being validated then they must be fine!

If you don't mind me asking, which optimisations did you test, and which did you find optimal (and what sort of improvements did you get over the standard seti client).

-funroll-loops only had a marginal benefit for the boinc client, so I'm not surprised at your observations with the seti client. I included it as part of the same set of optimisations I used for compiling the boinc client.

Regards,

Ned

*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 40099 · Report as offensive
Hans Dorn
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 3 Apr 99
Posts: 2262
Credit: 26,448,570
RAC: 0
Germany
Message 40104 - Posted: 25 Oct 2004, 22:14:38 UTC - in response to Message 40099.  

> Hi Hans,
>
> That's interesting. I think I'll go back and revisit this. I only ran the test
> unit once for each client - maybe more testing is needed (set of 3). But if
> your results are being validated then they must be fine!
>

Hi

We'll have to wait and see ;-)
There might be outliers.

Right now I'm getting some validation failures with the original seti binary
on my old 2,4Gig Northwood PC. (non-overclocked)
I guess a failed validation once in a while doesn't mean your client is broken.

> If you don't mind me asking, which optimisations did you test, and which did
> you find optimal (and what sort of improvements did you get over the standard
> seti client).
>

I didn't check all possible parameter combinations because of the long
run time of the test WU.

My first "optimized" version was even slower than the plain one :o)
After dropping "-funroll-loops" and adding "-msse3" I got a slight
improvement (1,5%)

Adding "-ffast-math" made a big difference (10-15%)

Actual compiler flags are:
"-march=prescott -msse3 -fomit-frame-pointer -ffast-math -O3"

Regards Hans


ID: 40104 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 40494 - Posted: 27 Oct 2004, 4:20:16 UTC

Thanks Hans,

That sounds very similar to mine. Like you, I haven't done too much testing because of the time required, but my first compiled client (incl. -funroll-loops) was only 1% faster - really not worth the effort.

Following your suggestion, I'm now recompiling and retesting with -ffast-math and will let you know how I get on.

Even under seti1 (classic), the native linux client was always about 15-20% slower than the windows client, so I guess your 10-15% improvement is about as much as you can expect. It brings it almost in line with the Windows client (before the present one broke and doubled processing times).


>After dropping "-funroll-loops" and adding "-msse3" I got a slight
>improvement (1,5%)


One more quick question. Did you test these two factors individually or together? The reason I ask is I would have thought that -msse3 is implied by -march=prescott and therefore unnecessary so the improvement is solely from dropping -funroll-loops, assuming you didn't test each individually??

From my testing with the boinc client, I found -funroll-loops gave an 8% improvement in Whetstone but 2.5% decrease in Dhrystone score (over my baseline optimisations). I reasoned overall it would be slightly beneficial to use it (for boinc).

Thanks again,

Ned

*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 40494 · Report as offensive
Hans Dorn
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 3 Apr 99
Posts: 2262
Credit: 26,448,570
RAC: 0
Germany
Message 40797 - Posted: 27 Oct 2004, 21:49:46 UTC - in response to Message 40494.  

> Thanks Hans,
>
> Even under seti1 (classic), the native linux client was always about 15-20%
> slower than the windows client, so I guess your 10-15% improvement is about as
> much as you can expect. It brings it almost in line with the Windows client
> (before the present one broke and doubled processing times).
>

Yes, I'm thinking the same way about that.

> One more quick question. Did you test these two factors individually or
> together? The reason I ask is I would have thought that -msse3 is implied by
> -march=prescott and therefore unnecessary so the improvement is solely from
> dropping -funroll-loops, assuming you didn't test each individually??
>

I'll do some more benching later this week, and post again to this thread.

> Thanks again,
>
> Ned
>
>

Regards Hans

ID: 40797 · Report as offensive
Hans Dorn
Volunteer developer
Volunteer tester
Avatar

Send message
Joined: 3 Apr 99
Posts: 2262
Credit: 26,448,570
RAC: 0
Germany
Message 41572 - Posted: 30 Oct 2004, 23:00:04 UTC - in response to Message 40797.  

>
> I'll do some more benching later this week, and post again to this thread.
>

Hi Ned!

I've tried some more optimisations during this week.
I managed to replace the built-in fft (ooura) with fftw3
and got a really nice performance boost.

But guess what? The generated results are different enough to
be invalid :-(

I guess the seti input data basically are noise.
When using a different fft implementation, the seti client
picks slightly different bits of noise as results and fails.

The candidate signals found with fftw3 are in no way better or worse
then the ones found with ooura, they're just different ones.

At the moment I try using SSE to get some improvements out of ooura,
but until now I've not gotten very far with that.

Regards Hans




ID: 41572 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 41607 - Posted: 31 Oct 2004, 2:47:25 UTC

Sorry, we got sidetracked!

Getting back to the AMD64 question, has anyone got this working yet?

If not, please would you be kind enough to have a look at this thread and let me know if this works:

http://forums.pcper.com/showthread.php?p=3190038

Thanks,

Ned


*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 41607 · Report as offensive
MagnusG

Send message
Joined: 5 Jun 03
Posts: 6
Credit: 16,470,400
RAC: 21
Sweden
Message 47136 - Posted: 16 Nov 2004, 19:41:21 UTC - in response to Message 41607.  

> Sorry, we got sidetracked!
>
> Getting back to the AMD64 question, has anyone got this working yet?
>
> If not, please would you be kind enough to have a look at this thread and let
> me know if this works:
>
> http://forums.pcper.com/showthread.php?p=3190038
>
> Thanks,
>
> Ned
>
>
>

Thanks!

I finally were able to compile a SETI client on my AMD64 FC2!
Even though I'm not too sure what I'm doing here it seems I got it working (at least I get credit for the WU:s on this machine).
I've compiled a BOINC client ver. 4.13 and a SETI client ver. 4.7(!?).
At least it seems to work even if the performance is really bad (3h/WU on a AMD64 3000). My Pentium M 1400Mhz on Windows XP is doing the job in just over 2h!
ID: 47136 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 47147 - Posted: 16 Nov 2004, 20:54:15 UTC - in response to Message 47136.  

>
> Thanks!
>
> I finally were able to compile a SETI client on my AMD64 FC2!
> Even though I'm not too sure what I'm doing here it seems I got it working (at
> least I get credit for the WU:s on this machine).
> I've compiled a BOINC client ver. 4.13 and a SETI client ver. 4.7(!?).
> At least it seems to work even if the performance is really bad (3h/WU on a
> AMD64 3000). My Pentium M 1400Mhz on Windows XP is doing the job in just over
> 2h!
>

That's good news Magnus.

Did you use the optimisation flags for your compile as detailed in my guide (see sig) but with -march=x86-64 for your 64-bit system?

3 hours doesn't sound too bad for a 3000+ processor and linux. My 3200+ on windows is doing 2h30mins and the windows client is 10-20% faster anyway. Also, don't let the clock speed of the Pentium M fool you - it's a very fast processor for seti and is probably more like a 2.8GHz Pentium 4.

Ned

*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 47147 · Report as offensive
MagnusG

Send message
Joined: 5 Jun 03
Posts: 6
Credit: 16,470,400
RAC: 21
Sweden
Message 47432 - Posted: 17 Nov 2004, 21:18:17 UTC - in response to Message 47147.  

> >
> > Thanks!
> >
> > I finally were able to compile a SETI client on my AMD64 FC2!
> > Even though I'm not too sure what I'm doing here it seems I got it
> working (at
> > least I get credit for the WU:s on this machine).
> > I've compiled a BOINC client ver. 4.13 and a SETI client ver. 4.7(!?).
> > At least it seems to work even if the performance is really bad (3h/WU on
> a
> > AMD64 3000). My Pentium M 1400Mhz on Windows XP is doing the job in just
> over
> > 2h!
> >
>
> That's good news Magnus.
>
> Did you use the optimisation flags for your compile as detailed in my guide
> (see sig) but with -march=x86-64 for your 64-bit system?
>
> 3 hours doesn't sound too bad for a 3000+ processor and linux. My 3200+ on
> windows is doing 2h30mins and the windows client is 10-20% faster anyway.
> Also, don't let the clock speed of the Pentium M fool you - it's a very fast
> processor for seti and is probably more like a 2.8GHz Pentium 4.
>
> Ned
>
>


Actually I did not set any CFLAGS....
I will try!

Magnus
ID: 47432 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 47438 - Posted: 17 Nov 2004, 21:48:41 UTC

See the guide in my sig for compiling with flags. Just change the -march= flag to the appropriate flag for your processor. The options are k8, opteron, athlon64, or athlon-fx for the gcc-3.4.3 compiler (see the gcc online manual for details).

Ned


*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 47438 · Report as offensive
MagnusG

Send message
Joined: 5 Jun 03
Posts: 6
Credit: 16,470,400
RAC: 21
Sweden
Message 49261 - Posted: 25 Nov 2004, 19:14:59 UTC - in response to Message 47438.  

> See the guide in my sig for compiling with flags. Just change the -march= flag
> to the appropriate flag for your processor. The options are k8, opteron,
> athlon64, or athlon-fx for the gcc-3.4.3 compiler (see the gcc online manual
> for details).
>
> Ned
>
>
>

Well, I have gcc-3.3.x (FC2) and it seems tricky to upgrade.
I will probably move to FC3 soon on this machine anyway.
ID: 49261 · Report as offensive
TonyM

Send message
Joined: 13 Dec 99
Posts: 6
Credit: 485,503
RAC: 0
United States
Message 103780 - Posted: 25 Apr 2005, 19:35:28 UTC

For all who are wondering the version 4.7 is the configure script clipping off the leading 0 from the minor version.

if you run the seti binary with the -version switch you will see that it is actually version 4.07, and not 4.7 or 4.70.

I once emailed them about this, but they refused to fix it. at least they are in the >4.09 versions now so this isn't a problem.

Then again who will use the new versions, they are god awful slow for me. 8hrs vs 2hrs...
ID: 103780 · Report as offensive

Questions and Answers : Unix/Linux : Compiling setiathome client for AMD64 (Fedora 2)


 
©2024 University of California
 
SETI@home and Astropulse are funded by grants from the National Science Foundation, NASA, and donations from SETI@home volunteers. AstroPulse is funded in part by the NSF through grant AST-0307956.