HOWTO: Compile boinc on linux

Message boards : Number crunching : HOWTO: Compile boinc on linux
Message board moderation

To post messages, you must log in.

1 · 2 · 3 · Next

AuthorMessage
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 31771 - Posted: 1 Oct 2004, 13:41:58 UTC

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

ID: 31771 · Report as offensive
Profile Paul D. Buck
Volunteer tester

Send message
Joined: 19 Jul 00
Posts: 3898
Credit: 1,158,042
RAC: 0
United States
Message 31838 - Posted: 1 Oct 2004, 18:52:23 UTC - in response to Message 31771.  
Last modified: 1 Oct 2004, 18:52:56 UTC

Ned,

Look in the BOINC FAQ, the last question...

As soon as I can post it ...
<p>
For BOINC Documentation: Click Me!


ID: 31838 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 31882 - Posted: 1 Oct 2004, 21:58:02 UTC

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


ID: 31882 · Report as offensive
Profile Sir Ulli
Volunteer tester
Avatar

Send message
Joined: 21 Oct 99
Posts: 2246
Credit: 6,136,250
RAC: 0
Germany
Message 31884 - Posted: 1 Oct 2004, 22:06:32 UTC

Thanks Ned, very Good work.

Greetings from Germany NRW
Ulli S@h Berkeley's Staff Friends Club m7 ©
ID: 31884 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 31885 - Posted: 1 Oct 2004, 22:08:52 UTC

Hi Ulli,

Long time, no see. Do drop by and visit us like you used to :)


ID: 31885 · Report as offensive
Profile Sir Ulli
Volunteer tester
Avatar

Send message
Joined: 21 Oct 99
Posts: 2246
Credit: 6,136,250
RAC: 0
Germany
Message 31894 - Posted: 1 Oct 2004, 22:22:55 UTC - in response to Message 31885.  

> 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 ©
ID: 31894 · Report as offensive
TPR_Mojo
Volunteer tester

Send message
Joined: 18 Apr 00
Posts: 323
Credit: 7,001,052
RAC: 0
United Kingdom
Message 31915 - Posted: 2 Oct 2004, 0:22:20 UTC

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 :)
ID: 31915 · Report as offensive
Profile xi3piscium
Volunteer tester
Avatar

Send message
Joined: 17 Aug 99
Posts: 287
Credit: 26,674
RAC: 0
China
Message 31922 - Posted: 2 Oct 2004, 0:49:11 UTC
Last modified: 2 Oct 2004, 0:51:02 UTC

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
ID: 31922 · Report as offensive
TPR_Mojo
Volunteer tester

Send message
Joined: 18 Apr 00
Posts: 323
Credit: 7,001,052
RAC: 0
United Kingdom
Message 31925 - Posted: 2 Oct 2004, 0:58:05 UTC - in response to Message 31922.  

> 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.
ID: 31925 · Report as offensive
Profile xi3piscium
Volunteer tester
Avatar

Send message
Joined: 17 Aug 99
Posts: 287
Credit: 26,674
RAC: 0
China
Message 31928 - Posted: 2 Oct 2004, 1:05:33 UTC - in response to Message 31925.  

> 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

ID: 31928 · Report as offensive
Profile Toby
Volunteer tester
Avatar

Send message
Joined: 26 Oct 00
Posts: 1005
Credit: 6,366,949
RAC: 0
United States
Message 31930 - Posted: 2 Oct 2004, 1:13:10 UTC

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
ID: 31930 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 32028 - Posted: 2 Oct 2004, 9:51:24 UTC - in response to Message 31922.  
Last modified: 2 Oct 2004, 9:53:19 UTC

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

ID: 32028 · Report as offensive
Profile Paul D. Buck
Volunteer tester

Send message
Joined: 19 Jul 00
Posts: 3898
Credit: 1,158,042
RAC: 0
United States
Message 32065 - Posted: 2 Oct 2004, 12:48:58 UTC - in response to Message 31882.  

> 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!


ID: 32065 · Report as offensive
Chris Bosshard

Send message
Joined: 5 Jun 99
Posts: 86
Credit: 3,474,583
RAC: 0
Switzerland
Message 32302 - Posted: 3 Oct 2004, 8:14:40 UTC

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
ID: 32302 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 32681 - Posted: 4 Oct 2004, 19:28:44 UTC
Last modified: 4 Oct 2004, 22:55:02 UTC

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


ID: 32681 · Report as offensive
TPR_Mojo
Volunteer tester

Send message
Joined: 18 Apr 00
Posts: 323
Credit: 7,001,052
RAC: 0
United Kingdom
Message 32698 - Posted: 4 Oct 2004, 20:27:57 UTC
Last modified: 4 Oct 2004, 20:31:33 UTC

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.
ID: 32698 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 32736 - Posted: 4 Oct 2004, 22:50:13 UTC - in response to Message 32698.  


> 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


ID: 32736 · Report as offensive
TPR_Mojo
Volunteer tester

Send message
Joined: 18 Apr 00
Posts: 323
Credit: 7,001,052
RAC: 0
United Kingdom
Message 32771 - Posted: 4 Oct 2004, 23:45:12 UTC
Last modified: 5 Oct 2004, 0:21:36 UTC

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.
ID: 32771 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 32796 - Posted: 5 Oct 2004, 1:09:06 UTC - in response to Message 32771.  

> 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

ID: 32796 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 32882 - Posted: 5 Oct 2004, 6:24:39 UTC - in response to Message 31915.  

> 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


ID: 32882 · Report as offensive
1 · 2 · 3 · Next

Message boards : Number crunching : HOWTO: Compile boinc on linux


 
©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.