Questions and Answers :
Unix/Linux :
Compiling setiathome client for AMD64 (Fedora 2)
Message board moderation
Author | Message |
---|---|
MagnusG Send message Joined: 5 Jun 03 Posts: 6 Credit: 16,470,400 RAC: 21 |
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! |
MagnusG Send message Joined: 5 Jun 03 Posts: 6 Credit: 16,470,400 RAC: 21 |
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 ???) |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
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 |
gtg Send message Joined: 2 Nov 99 Posts: 11 Credit: 425,149 RAC: 0 |
> 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 |
MagnusG Send message Joined: 5 Jun 03 Posts: 6 Credit: 16,470,400 RAC: 21 |
> 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 |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
> > 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 *** |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
> > 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 *** |
Hans Dorn Send message Joined: 3 Apr 99 Posts: 2262 Credit: 26,448,570 RAC: 0 |
> 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. |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
> > 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 *** |
Hans Dorn Send message Joined: 3 Apr 99 Posts: 2262 Credit: 26,448,570 RAC: 0 |
> 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 |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
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 *** |
Hans Dorn Send message Joined: 3 Apr 99 Posts: 2262 Credit: 26,448,570 RAC: 0 |
> 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 |
Hans Dorn Send message Joined: 3 Apr 99 Posts: 2262 Credit: 26,448,570 RAC: 0 |
> > 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 |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
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 *** |
MagnusG Send message Joined: 5 Jun 03 Posts: 6 Credit: 16,470,400 RAC: 21 |
> 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! |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
> > 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 *** |
MagnusG Send message Joined: 5 Jun 03 Posts: 6 Credit: 16,470,400 RAC: 21 |
> > > > 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 |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
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 *** |
MagnusG Send message Joined: 5 Jun 03 Posts: 6 Credit: 16,470,400 RAC: 21 |
> 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. |
TonyM Send message Joined: 13 Dec 99 Posts: 6 Credit: 485,503 RAC: 0 |
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... |
©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.