Page 3 of 4 FirstFirst 1234 LastLast
Results 31 to 45 of 53
  1. #31
    Joined
    Nov 2004
    Posts
    2

    Re: Compiling Boinc on Linux - Discussion thread

    Hi!

    Since some month, I tried for myself to optimize the boinc client for my amd64 3200+ system.
    Now I found your gread page and this thread and tried your optimizations, but I did not very much changed
    my results. In fact the stats did not differ very much on the used flags. Even without any Flags I only got a
    5% drop.

    Here is what they looked like on my linux system:
    2004-11-18 15:30:45 [---] 1311 double precision MIPS (Whetstone) per CPU
    2004-11-18 15:30:45 [---] 2956 integer MIPS (Dhrystone) per CPU

    On WinXp I got:
    Measured floating point speed 2690.38 million ops/sec
    Measured integer speed 5098.45 million ops/sec

    My problem might have bee that I use a very screwed up system. I'm running a system based on SuSE 7.2, but
    with all the important packages beeing replaced by home made builds. Most things I configured as a
    LinuxFromScratch sugested. So I'm still running a 32bit Kernel on this 64-Bit cpu, but I 'vd got gcc-3.4.2 here.
    So I hoped to get better results. Now I just tried your athlon-xp build and I could not belived it, it got me:

    2004-11-26 10:20:35 [---] 2280 double precision MIPS (Whetstone) per CPU
    2004-11-26 10:20:35 [---] 5133 integer MIPS (Dhrystone) per CPU

    So I bet the build of my gcc-3.4.2 must be somehow majorly screwed up. Dont know what i'm doing wrong here,
    but from now on I'll use your clients!!

  2. #32
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Re: Compiling Boinc on Linux - Discussion thread

    Hi stony,

    First off, welcome to the SETI forum here at PCPer

    My latest AthlonXP client was compiled exactly as described in my guide with the exception that it was compiled using gcc-3.4.2 (default installation of Fedora Core 3).

    If anything your own compiled should be slightly faster than mine purely for the fact they will be dynamically linked. My public compiles are statically linked for greater compatability for people with older distro's and versions of gcc. I use the dynamically linked versions on my own machines. The changes you've made to your system have obviously made a large impact and it might be time for a fresh install of a more modern distro using gcc-3.4. I see Suse 9.2 is recently released so maybe you could start with that if you're a Suse fan.

    Anyway, glad you like my optimised versions and of course you're welcome to carry on using them

    Ned

  3. #33
    Joined
    Nov 2004
    Posts
    2

    Re: Compiling Boinc on Linux - Discussion thread

    Thanks for the welcome Ned!

    Guess I really have to find the time to do an major update....

    Do you also publish your seti clients? Cause I bet mine got the same worth performance than
    my boinc_client. So I would be really happy if you would offer a static (I'm still on glibc 2.2.5)
    seti build!!

    Thanks!!!!

  4. #34
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Re: Compiling Boinc on Linux - Discussion thread

    There's not much point I'm afraid with the SETI clients, the performance increase for compiling your own is only about 1% so it's just not worth the effort. Most of the functions that do all the work in the seti client are external shared maths libraries so you'd actually probably be better off trying to recompile and optimise things like glibc that provides the libm math library that provides a lot of the maths functions for the seti client. Even if you statically link them at compile time they're not recompiled in optimised form, just statically linked in their original unoptimised form, hence why there's no real benefit. I've not tried this approach yet as glibc is rather critical so might not like highly optimised rebuilds but it may be worth looking into.

    Ned
    Last edited by Ned Slider; 11-26-2004 at 07:33 AM.

  5. #35
    Joined
    Apr 2005
    Posts
    3

    Re: Compiling Boinc on Linux - Discussion thread

    Hi Ned
    I used your options to compile a boinc client for athlon tbird 1.2G and your precompiled just blew the stock boinc client away..... just over 100% increase, woo!

    what were the options you used?

    The results:
    stock boinc _4.19_i686-pc-linux-gnu
    2005-04-24 22:02:19 [---] 620 double precision MIPS (Whetstone) per CPU
    2005-04-24 22:02:19 [---] 1304 integer MIPS (Dhrystone) per CPU

    athlon compiled with options
    CFLAGS="-march=athlon-xp -O3 -pipe -fomit-frame-pointer"
    2005-04-24 23:37:31 [---] 749 double precision MIPS (Whetstone) per CPU
    2005-04-24 23:37:31 [---] 1564 integer MIPS (Dhrystone) per CPU

    athlon with experimental options
    CFLAGS="-march=athlon-tbird -O3 -pipe -fforce-addr -fomit-frame-pointer
    -funroll-loops -falign-functions=4 -maccumulate-outgoing-args"
    2005-04-24 22:52:11 [---] 903 double precision MIPS (Whetstone) per CPU
    2005-04-24 22:52:11 [---] 1634 integer MIPS (Dhrystone) per CPUagain athlon specific client

    athlon tbird precompiled running in X
    2005-04-24 23:51:20 [---] 1157 double precision MIPS (Whetstone) per CPU
    2005-04-24 23:51:20 [---] 2300 integer MIPS (Dhrystone) per CPU

    athlon precompiled running at terminal without X running
    2005-04-24 22:15:28 [---] 1245 double precision MIPS (Whetstone) per CPU
    2005-04-24 22:15:28 [---] 2496 integer MIPS (Dhrystone) per CPU

    Although the results from your client are fantastic, it hasn't done much to the WU output. This box is doing the climateprediction WU, and the hrs/WU dropped from 418hr/WU to estimated 415hr/WU. Its a bit early to tell, I'll know in a few days time if it has made any significant difference.
    Maybe it got to do with that climatepredicition uses different maths to the benchmarks?
    and to seti?
    Oh BTW, there is nothing like this in climateprediction, it's a fantastic effort!
    thanks again

  6. #36
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Re: Compiling Boinc on Linux - Discussion thread

    For boinc, I use the following as on my website:

    Code:
    export CFLAGS="-march=athlon-xp -O3 -fomit-frame-pointer -funroll-loops -fforce-addr -ffast-math -ftracer"
    export CXXFLAGS=$CFLAGS
    I've not found anything faster. The version of gcc also makes a big difference. I use gcc-3.4.3 which is a fair bit faster (for boinc benchmarks) that older 3.3.x versions.

    But this won't have any effect on WU performance - it is only the boinc client which just does the benchmarking and handles uploads/downloads of units. The actual processing is done by a separate client for each project. We have a separate optimized client for the seti project, but not for any other projects.

    Glad you found it useful, and feel free to spread the word in the climate prediction community

    Ned

  7. #37
    Joined
    Apr 2005
    Posts
    3

    Re: Compiling Boinc on Linux - Discussion thread

    Quote Originally Posted by Ned Slider
    For boinc, I use the following as on my website:

    Code:
    export CFLAGS="-march=athlon-xp -O3 -fomit-frame-pointer -funroll-loops -fforce-addr -ffast-math -ftracer"
    export CXXFLAGS=$CFLAGS
    I've not found anything faster.
    You used this for Athlon-tbird as well?
    What were the options you used for the binary: boinc_4.13_athlon-pc-linux-gnu.tar.bz2?
    I got it from here http://www.pperry.f2s.com/downloads.htm

    Quote Originally Posted by Ned Slider
    The version of gcc also makes a big difference. I use gcc-3.4.3 which is a fair bit faster (for boinc benchmarks) that older 3.3.x versions.
    Ok, I'll change to 3.4.3

    Quote Originally Posted by Ned Slider
    But this won't have any effect on WU performance - it is only the boinc client which just does the benchmarking and handles uploads/downloads of units. The actual processing is done by a separate client for each project.
    Ok, I see


    Quote Originally Posted by Ned Slider
    We have a separate optimized client for the seti project, but not for any other projects.
    nice one, how was that organised? eg did seti release the source?

    Quote Originally Posted by Ned Slider
    Glad you found it useful, and feel free to spread the word in the climate prediction community
    Ned
    I'm sure it will surprise them when they hear how you guys are getting awesome results in optimising both boinc and seti client and for different platforms!

  8. #38
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Re: Compiling Boinc on Linux - Discussion thread

    The same (or very similar) options were used for v4.13.

    You need to change the -march=cpu-type flag to your specific processor. The available options are in the gcc manual:

    http://gcc.gnu.org/onlinedocs/gcc-3....002d64-Options

    i386
    Original Intel's i386 CPU.
    i486
    Intel's i486 CPU. (No scheduling is implemented for this chip.)
    i586, pentium
    Intel Pentium CPU with no MMX support.
    pentium-mmx
    Intel PentiumMMX CPU based on Pentium core with MMX instruction set support.
    i686, pentiumpro
    Intel PentiumPro CPU.
    pentium2
    Intel Pentium2 CPU based on PentiumPro core with MMX instruction set support.
    pentium3, pentium3m
    Intel Pentium3 CPU based on PentiumPro core with MMX and SSE instruction set support.
    pentium-m
    Low power version of Intel Pentium3 CPU with MMX, SSE and SSE2 instruction set support. Used by Centrino notebooks.
    pentium4, pentium4m
    Intel Pentium4 CPU with MMX, SSE and SSE2 instruction set support.
    prescott
    Improved version of Intel Pentium4 CPU with MMX, SSE, SSE2 and SSE3 instruction set support.
    nocona
    Improved version of Intel Pentium4 CPU with 64-bit extensions, MMX, SSE, SSE2 and SSE3 instruction set support.
    k6
    AMD K6 CPU with MMX instruction set support.
    k6-2, k6-3
    Improved versions of AMD K6 CPU with MMX and 3dNOW! instruction set support.
    athlon, athlon-tbird
    AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and SSE prefetch instructions support.
    athlon-4, athlon-xp, athlon-mp
    Improved AMD Athlon CPU with MMX, 3dNOW!, enhanced 3dNOW! and full SSE instruction set support.
    k8, opteron, athlon64, athlon-fx
    AMD K8 core based CPUs with x86-64 instruction set support. (This supersets MMX, SSE, SSE2, 3dNOW!, enhanced 3dNOW! and 64-bit instruction set extensions.)
    winchip-c6
    IDT Winchip C6 CPU, dealt in same way as i486 with additional MMX instruction set support.
    winchip2
    IDT Winchip2 CPU, dealt in same way as i486 with additional MMX and 3dNOW! instruction set support.
    c3
    Via C3 CPU with MMX and 3dNOW! instruction set support. (No scheduling is implemented for this chip.)
    c3-2
    Via C3-2 CPU with MMX and SSE instruction set support. (No scheduling is implemented for this chip.)
    For older athlons, you would use -march=athlon. However, be careful as sometimes plain old i686 can produce better results You really have to test every step of the way to ensure you're genuinely improving things, not just making them worse. Don't assume the obvious - test it to make sure!!!

    Yes, SETI released their source code. Not all projects have, so you'll have to check with the individual project for details. Even if they have released the source, if it's anything like seti then it's no easy job figuring out how to get the darn stuff to compile. There was no documentation and it took weeks of hunting around on the web. That's why I wrote the guides - to save others having to go through the pain I went through. And even if you can get the source and work out how to compile it, there's still no guarentee you'll actually produce a faster client. My initial attempts at building seti resulted in slower clients. It's taken 6 months of development to get the increases we have now

    Ned

  9. #39
    Joined
    Apr 2005
    Posts
    3

    Re: Compiling Boinc on Linux - Discussion thread

    Quote Originally Posted by Ned Slider

    For older athlons, you would use -march=athlon. However, be careful as sometimes plain old i686 can produce better results
    Ned
    yeah, I used the options for tbird, but nothing has come out as fast as your binary.
    I'll up grade gcc as you suggest and maybe get a boinc client that can crack the 100%

    Quote Originally Posted by Ned Slider
    Not all projects have, so you'll have to check with the individual project for details.
    Ned
    There is some concern about crackers altering the source and thus changing the results. Also Seti run a WU on two diferent boxes and compare results. If CP did this, it would take ages to get a result. Who knows, CP might already do this.

    Quote Originally Posted by Ned Slider
    Even if they have released the source, if it's anything like seti then it's no easy job figuring out how to get the darn stuff to compile.

    My initial attempts at building seti resulted in slower clients. It's taken 6 months of development to get the increases we have now
    Ned
    CP is meant to be 500,000 line of code, and I think was designed for Met office super computer.
    It could take ages to figure it out how to optimise CP. Your research will go a long way toward how to do this, especially if CP used FFT like Seti.
    It heartening to see the excellent figures on Seti with +30%!
    Here is my post to CP, I expect it will wake them up!
    http://www.climateprediction.net/boa...pic.php?t=2907

  10. #40
    Joined
    Jun 2005
    Posts
    1

    Re: Compiling Boinc on Linux - Discussion thread

    Here are some benchmarks that I found interesting for the boinc client on my Athllon 1600 (gcc-3.4.3) and suggested options of Ned:

    My compiled version of 4.45:

    2005-06-23 00:26:34 [---] Starting BOINC client version 4.45 for i686-pc-linux-gnu
    2005-06-23 00:26:34 [---] Data directory: /export/home/gjcrick/src/boinc_public/client
    2005-06-23 00:26:34 [---] No general preferences found - using BOINC defaults
    2005-06-23 00:26:34 [---] Remote control not allowed; using loopback address
    2005-06-23 00:26:36 [---] Running CPU benchmarks
    2005-06-23 00:27:34 [---] Benchmark results:
    2005-06-23 00:27:34 [---] Number of CPUs: 1
    2005-06-23 00:27:34 [---] 1293 double precision MIPS (Whetstone) per CPU
    2005-06-23 00:27:34 [---] 2393 integer MIPS (Dhrystone) per CPU
    2005-06-23 00:27:34 [---] Finished CPU benchmarks

    Neds version of the 4.19:

    2005-06-23 00:28:47 [---] No general preferences found - using BOINC defaults
    2005-06-23 00:28:47 [---] Running CPU benchmarks
    2005-06-23 00:29:48 [---] Benchmark results:
    2005-06-23 00:29:48 [---] Number of CPUs: 1
    2005-06-23 00:29:48 [---] 1300 double precision MIPS (Whetstone) per CPU
    2005-06-23 00:29:48 [---] 3251 integer MIPS (Dhrystone) per CPU
    2005-06-23 00:29:48 [---] Finished CPU benchmarks

    Seems strange that the client versions would change the benchmarks that much for integer.

    And for the Via C3 (M12000) chip:

    Standard 4.43 client:

    2005-06-23 00:38:58 [---] Running CPU benchmarks
    2005-06-23 00:39:55 [---] Benchmark results:
    2005-06-23 00:39:55 [---] Number of CPUs: 1
    2005-06-23 00:39:55 [---] 180 double precision MIPS (Whetstone) per CPU
    2005-06-23 00:39:55 [---] 632 integer MIPS (Dhrystone) per CPU
    2005-06-23 00:39:55 [---] Finished CPU benchmarks

    Compiled version using gcc-3.4.1 standard options with -march=c3

    2005-06-23 00:36:24 [---] Running CPU benchmarks
    2005-06-23 00:37:21 [---] Benchmark results:
    2005-06-23 00:37:21 [---] Number of CPUs: 1
    2005-06-23 00:37:21 [---] 274 double precision MIPS (Whetstone) per CPU
    2005-06-23 00:37:21 [---] 1027 integer MIPS (Dhrystone) per CPU
    2005-06-23 00:37:21 [---] Finished CPU benchmarks

    Compiled version using gcc-3.4.1 standard options with -march=c3-2

    2005-06-23 00:53:59 [---] Running CPU benchmarks
    2005-06-23 00:54:56 [---] Benchmark results:
    2005-06-23 00:54:56 [---] Number of CPUs: 1
    2005-06-23 00:54:56 [---] 274 double precision MIPS (Whetstone) per CPU
    2005-06-23 00:54:56 [---] 1030 integer MIPS (Dhrystone) per CPU
    2005-06-23 00:54:56 [---] Finished CPU benchmarks

    Also for some reason I do not seem to be able to get the gui part to compile correctly. Most likely something wrong with the library paths.

  11. #41
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Re: Compiling Boinc on Linux - Discussion thread

    The reason that v4.19 is faster is that the benchmark code was changed slightly after v4.19 to stop compiler optimizations "over optimizing" the benchmarks. This was why Windows clients were giving far higher benchmark results than linux as the MS compiler was over optimizing the code, effectively eliminating parts of the benchmark. The "fix" meant that windows and linux versions were much closer, but both subsequently gave lower benchmark scores.

    Ned

  12. #42
    Joined
    Sep 2005
    Posts
    1

    Re: Compiling Boinc on Linux - Discussion thread

    Ned,

    First off, a huge thank-you for putting together your step-by-step "how-to" guide. It has prove to be an invaluable resource for getting me to my first self compiled BOINC core client. As a linux novice, I need all the help I can get!

    I used GCC v4.0.1 as it seemed to be the latest version available. I wonder how it might change some of your existing binaries coded with the earlier version. The one problem I seem to still have is getting WxWidgets installed properly. I've installed the Unix/GTX+ v2.6.1 release seemingly without success. When I run the configure command, I see an error message that WxWidgets can't be found. Does this need to be installed from a specific location to work properly?

    The benchmarks that I get with my own v4.72 BOINC core client are almost identical to what I get from WinXP. Thanks again!

  13. #43
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Re: Compiling Boinc on Linux - Discussion thread

    Sorry Dave, I can't give you any specific help on that one. I've used gcc4 a little, but sometimes the header files needed tweaking to get stuff to compile correctly. GCC-3.4 (or 3.3) may be easier from this point of view.

    Also, I've not personaly compiled anything other than the V4.19 boinc client. I found some nightly builds compiled cleanly whilst others would fail, so I just stuck with one that worked for me. The later versions, like the one you're trying, also contain the graphics stuff that's absent in the older command line clients - and that complicates things further as you're finding out.

    Ned

  14. #44
    Joined
    Dec 2005
    Posts
    4

    Re: Compiling Boinc on Linux - Discussion thread

    Ned, Thanks for all the hard work and, for explaining how the benchmarks work. I think it has served me well. I have 4 more boxes just like this one. Skip

    12/2/2005 8:53:03 PM||Starting BOINC client version 5.2.13 for windows_intelx86
    12/2/2005 8:53:03 PM||libcurl/7.14.0 OpenSSL/0.9.8 zlib/1.2.3
    12/2/2005 8:53:03 PM||Data directory: C:\Program Files\BOINC
    12/2/2005 8:53:03 PM|SETI@home|Found app_info.xml; using anonymous platform
    12/2/2005 8:53:03 PM||Processor: 1 AuthenticAMD AMD Athlon(tm) 64 Processor 3200+
    12/2/2005 8:53:03 PM||Memory: 1.50 GB physical, 4.29 GB virtual
    12/2/2005 8:53:03 PM||Disk: 103.51 GB total, 97.05 GB free
    12/2/2005 8:53:03 PM|SETI@home|Computer ID: 1563702; location: home; project prefs: default
    12/2/2005 8:53:03 PM||General prefs: from SETI@home (last modified 2005-10-30 11:27:36)
    12/2/2005 8:53:03 PM||General prefs: using separate prefs for home
    12/2/2005 8:53:04 PM||Remote control not allowed; using loopback address
    12/2/2005 8:53:04 PM|SETI@home|Resuming computation for result 17mr05ab.17159.30785.398584.48_2 using setiathome version 418
    12/2/2005 8:53:11 PM||Suspending computation and network activity - running CPU benchmarks
    12/2/2005 8:53:11 PM|SETI@home|Pausing result 17mr05ab.17159.30785.398584.48_2 (removed from memory)
    12/2/2005 8:53:13 PM||Running CPU benchmarks
    12/2/2005 8:54:12 PM||Benchmark results:
    12/2/2005 8:54:12 PM|| Number of CPUs: 1
    12/2/2005 8:54:12 PM|| 3332 double precision MIPS (Whetstone) per CPU
    12/2/2005 8:54:12 PM|| 10263 integer MIPS (Dhrystone) per CPU
    12/2/2005 8:54:12 PM||Finished CPU benchmarks
    12/2/2005 8:54:13 PM||Resuming computation and network activity
    12/2/2005 8:54:13 PM||request_reschedule_cpus: Resuming activities
    12/2/2005 8:54:13 PM|SETI@home|Resuming result 17mr05ab.17159.30785.398584.48_2 using setiathome version 418

  15. #45
    Joined
    Jul 2001
    Location
    UK
    Age
    51
    Posts
    20,229

    Re: Compiling Boinc on Linux - Discussion thread

    Welcome Skip to the PC Perspective SETI forum

    Glad you found it useful

    Ned

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •