Message boards :
Number crunching :
HOWTO: Compile boinc on linux
Message board moderation
Author | Message |
---|---|
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
Hello everyone, I had recently been strugging to work out how to compile the boinc client source code on linux and found it frustrating that I couldn't find a good source of information on this. There are little bits scattered around here, but it took a lot of hunting to find the needed information. To this end I have written a guide to compiling the boinc client on linux and it is posted at the link below: http://forums.pcper.com/showthread.php?t=349185 Please feel free to drop by our forums and visit (we are the Athlonmb.com Seti Team), and I hope some at least will find the guide useful. Regards, Ned |
Paul D. Buck Send message Joined: 19 Jul 00 Posts: 3898 Credit: 1,158,042 RAC: 0 |
Ned, Look in the BOINC FAQ, the last question... As soon as I can post it ... <p> For BOINC Documentation: Click Me! |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
Thank you for the link Paul - most kind :) I'd been given a link to your site before, but today is the first time I've managed to access it. I think you must have been having site problems maybe a month or so ago when I tried. Take care, Ned |
Sir Ulli Send message Joined: 21 Oct 99 Posts: 2246 Credit: 6,136,250 RAC: 0 |
|
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
Hi Ulli, Long time, no see. Do drop by and visit us like you used to :) |
Sir Ulli Send message Joined: 21 Oct 99 Posts: 2246 Credit: 6,136,250 RAC: 0 |
> Hi Ulli, > > Long time, no see. Do drop by and visit us like you used to :) > > > > thanks Ned, i have postet your BOINC FAQ and the to build an BOINC optimised Client for AMD at our forums at P3D, i hope this is in order. Greetings from Germany NRW Ulli S@h Berkeley's Staff Friends Club m7 © |
TPR_Mojo Send message Joined: 18 Apr 00 Posts: 323 Credit: 7,001,052 RAC: 0 |
Cheers Ned, the how-to is well written and I had no trouble at all compiling on Fedora Core 2. Across three different AMD XP/MP systems I'm seeing a consistent 75% increase in floating point benchmarks, and 20% integer benchmarks, which ties up nicely with your own results. I hope you don't mind, but I've dropped a link and acknowledgement in our team's forums at http://forums.teamphoenixrising.net/showthread.php?p=232907#post232907 Thanks again :) |
xi3piscium Send message Joined: 17 Aug 99 Posts: 287 Credit: 26,674 RAC: 0 |
This may be a stupid question, but I have to ask, I'm not as techie as some of the guys here, and I look up to you guys for your tech knowledge, If I am using intel celeron, 1.7Ghz, OS Fedora Core 1, can I sill optimize using the instructions in the link provided by Ned? or is just for AMD type CPU's....please forgive my ignorance. Joe |
TPR_Mojo Send message Joined: 18 Apr 00 Posts: 323 Credit: 7,001,052 RAC: 0 |
> This may be a stupid question, but I have > to ask, I'm not as techie as some of the guys here, > and I look up to you guys for your tech knowledge, > If I am using intel celeron, 1.7Ghz, OS Fedora Core > 1, can I sill optimize using the instructions in the > link provided by Ned? or is just for AMD type > CPU's....please forgive my ignorance. > > Joe > Ned's instructions are specifically for AMD CPU's. I'm not familiar with the GCC compiler at command-line level so I don't know whether you could follow the same method, but use different options, to optimise for your CPU. |
xi3piscium Send message Joined: 17 Aug 99 Posts: 287 Credit: 26,674 RAC: 0 |
> Ned's instructions are specifically for AMD CPU's. I'm not familiar with the > GCC compiler at command-line level so I don't know whether you could follow > the same method, but use different options, to optimise for your CPU. > >Thanks Low... Joe |
Toby Send message Joined: 26 Oct 00 Posts: 1005 Credit: 6,366,949 RAC: 0 |
I believe the only AMD specific flag is "-march=athlon-xp" Here is a copy/paste from my make.conf file on my gentoo linux box: # CPU types supported in gcc-3.2 and higher: athlon-xp, athlon-mp, athlon-4, # athlon-tbird, athlon, k6, k6-2, k6-3, i386, i486, i586 (Pentium), i686 # (PentiumPro), pentium, pentium-mmx, pentiumpro, pentium2 (Celeron), pentium3, # and pentium4. So take your pick and optimize away :) I went from 1059 to 1813 on whetstone and 2449 to 3010 on Dhrystone --------------------------------------- - A member of The Knights Who Say NI! Possibly the best stats site in the universe: http://boinc-kwsn.no-ip.info |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
Thanks to everyone who's linked to the guide - glad you are finding it useful. I tested a lot of different optimisation settings and those included in the guide gave best results. I will be writing up my full findings (sometime in the next week) on exactly which optimisations I tried and their results, and this will be linked to from within the guide. I tried all of the optimisations I could find discussed in threads on this messageboard - many of them actually gave no increase or were slightly detrimental. If anyone has specific questions for me about the guide, it's probably easier to get me on those forums, but I will try to check in here occasionally too :) Or you can e-mail me on nedslider[at]freeuk[dot]com > This may be a stupid question, but I have > to ask, I'm not as techie as some of the guys here, > and I look up to you guys for your tech knowledge, > If I am using intel celeron, 1.7Ghz, OS Fedora Core > 1, can I sill optimize using the instructions in the > link provided by Ned? or is just for AMD type > CPU's....please forgive my ignorance. > > Joe > Joe, Yes, as stated above, the -march=athlon-xp is the only processor specific optimisation I used. You can either substitute for your own processor architecture or just leave this optimisation out and it will use the default architecture for your system (i686 ??) which will be fine. You should use the other optimisations though, as just recompiling with no optimisations on my system actually produced a _slower_ client than the official downloaded precompiled client! It's best to compile the optimised client _yourself_ to get the best optimisations for _your_ particular system, but if there is a demand for it I would be happy to try compiling generically optimised clients for different systems and making them available for download. Regards, Ned |
Paul D. Buck Send message Joined: 19 Jul 00 Posts: 3898 Credit: 1,158,042 RAC: 0 |
> Thank you for the link Paul - most kind :) > > I'd been given a link to your site before, but today is the first time I've > managed to access it. I think you must have been having site problems maybe a > month or so ago when I tried. > > Take care, Ned, Yeah, I have them off and on ... I am debating moving to another host so I can have faster updates. The problem is that the change may not improve the situation ... <p> For BOINC Documentation: Click Me! |
Chris Bosshard Send message Joined: 5 Jun 99 Posts: 86 Credit: 3,474,583 RAC: 0 |
Hi Ned, Thank you for the compilation guide for the Boinc client. I did manage myself to get through this process, however the one thing I had a problem with was the compilation of the seti_boinc client. Do you plan to write up a detailed instruction on how to compile the seti_boinc client? I think it is more important to have an optimized seti_boinc client, since it is doing the work and science.... Chris Bosshard astroinfo Team http://www.astroinfo.org |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
Hi Chris, I've only just figured out how to compile the SETI_Boinc client (hurray!) and haven't had a chance to test it yet to see if it will even request work and return results. EDIT: he's a quick summary that appeared to work: Unpack fresh copies of boinc_public and seti_boinc sources (I put them in /usr/src). Rename /boinc_public to /boinc (you should now have /usr/src/boinc and usr/src/seti_boinc directories) cd to the /boinc directory export MYSQL_CONFIG=true ./configure make -k (you may get some errors, but ignore them. Check for the presence of /boinc/lib/boinc_api.o to see if this worked) Now cd .. and cd to the /seti_boinc directory ./configure make -k (again you may get some errors but ignore them) This gave me two binaries in /seti_boinc/client called setiathome_test (4.1MB) and setiathome_4.3_i686-pc-linux-gnu (665.0KB). I'm a little concerned/surprised at the size of the latter as the downloaded binary in my working boinc pojects dir is 7MB. /End Edit Yes, I plan to make this the next part of the guide but want to test it thoroughly first. However, I'm only a small time cruncher (3-4 machines) and I don't really want to sacrifice a machine to test the new seti_boinc client for 1-2 weeks just to see if any credits actually show up. I would suggest using the same set of optimisations minus the -ffast-math option for the seti_client. If I compile the seti_boinc client, would anyone like to test it for me. Presumably this should ideally be done on a fresh system so we can see if credits actually show up and how many. Thoughts and input on this welcome. Incidentally, the discussion thread now accompanying the guide contains the full details of all the optimisations tried (I tested over 20 separate compilations!) together with a link to the precompiled optimised client for download by those who don't wish to compile it themselves. I'd appreciate some feedback from anyone who tries my precompiled client as to which linux systems it does/doesn't work on as I have no idea how portable it will be. I compiled it on Fedora Core 2 (FC2) and have only tested on FC2 and FC1 for which it works fine. Thanks again to everyone for their feedback, Ned |
TPR_Mojo Send message Joined: 18 Apr 00 Posts: 323 Credit: 7,001,052 RAC: 0 |
I too had a bash at compiling the BOINC SETI client tonight, and came up with the same sequence as you, but mine fails dismally. I can compile the BOINC CC version 4.11 no problem, and "configure" works for seti_boinc. However, when I run "make -k" ld dies because it is unable to find "lboinc" referenced in "collect2". This is a lib presumably, but I haven't got it on my system. Frustrating, as this seems to be just about the end of the compilation. I have tried a few different downloaded CVS versions but no joy. I think I'll give up on it for now unless anyone has a bright idea. |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
> However, when I run "make -k" ld dies because it is unable to find "lboinc" > referenced in "collect2". This is a lib presumably, but I haven't got it on my > system. Frustrating, as this seems to be just about the end of the > compilation. I have tried a few different downloaded CVS versions but no joy. > I think I'll give up on it for now unless anyone has a bright idea. > OK, I don't really understand this too well myself but let's see if I can help. From what I've gathered, you need to compile /boinc, and more specifically /boinc/lib, _before_ you can compile seti_boinc. Delete all your sources and start from scratch. Don't use the /boinc tree that you've already used to compile the boinc client, but compile /boinc again from scratch exactly as I outlined above JUST for the purposes of then compiling seti_boinc. Consider it as two very separate processes. I couldn't get seti_boinc to compile either after compiling /boinc as outlined in my guide. Did I explain that in a way that makes sense? Ned |
TPR_Mojo Send message Joined: 18 Apr 00 Posts: 323 Credit: 7,001,052 RAC: 0 |
Thanks Ned, my bad, compiled the common client with the client only option which of course failed to generate the library properly :doh! Currently running the test workunit, 22% complete and no problems. Will then run the current SETI download client on the same data, and diff the two output files. |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
> Thanks Ned, my bad, compiled the common client with the client only option > which of course failed to generate the library properly :doh! > > Currently running the test workunit, 22% complete and no problems. > Will then run the current SETI download client on the same data, and diff the > two output files. > Brilliant! Glad you got it working. Now perhaps you could help me a little. Could you please outline to procedure you followed to "install" the new seti_boinc client once compiled. Secondly, can you please explain where you find the test unit and how you run it. I've not read anything on this at all and it would be very useful for checking the validity of the compiled client with different compile time optimisations. Finally, what optimisations did you use to compile the seti_boinc client and could you please give us some before and after WU processing times please. A lot to ask, I know :) Thanks, Ned |
Ned Slider Send message Joined: 12 Oct 01 Posts: 668 Credit: 4,375,315 RAC: 0 |
> I hope you don't mind, but I've dropped a link and acknowledgement in our > team's forums at > http://forums.teamphoenixrising.net/showthread.php?p=232907#post232907 Just dropped by and read your post - thanks :) You might like to mention to your folks that the compiled client is now available linked for download from my guide as a 2.6MB gzipped file. In the GNU spirit I like to share. Also, if folks want me to compile versions for other processors (i686 for example), I'd be happy to in exchange for some feedback on benchmark scores :) Ned |
©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.