[LINUX] A Faster SETI app to go with my optimized boinc apps

Message boards : Number crunching : [LINUX] A Faster SETI app to go with my optimized boinc apps
Message board moderation

To post messages, you must log in.

Previous · 1 · 2 · 3 · 4 · 5 . . . 7 · Next

AuthorMessage
Profile Chilean
Volunteer tester
Avatar

Send message
Joined: 6 Apr 03
Posts: 498
Credit: 3,200,504
RAC: 0
Chile
Message 92674 - Posted: 30 Mar 2005, 3:40:04 UTC

Im using the optimized and I get A LOT more credit pero WU, but didn't see better performance, maybe I selected the wrong processor, but I'm not sure which one I have (The PC that I built) It's and AuthenticAMD AMD Athlon (not XP or anything) so.. which one should I choose to download ?? (http://www.pperry.f2s.com/downloads.htm)

Thanks!
ID: 92674 · Report as offensive
1mp0£173
Volunteer tester

Send message
Joined: 3 Apr 99
Posts: 8423
Credit: 356,897
RAC: 0
United States
Message 92687 - Posted: 30 Mar 2005, 4:17:59 UTC - in response to Message 92669.  

> >
> > ... and if I'm not mistaken, BOINC 4.2x does a better job on Windows
> hosts
> > because the benchmark doesn't get "optimized" by Visual C++.
> >
>
> Hmmm. I guess throwing away useless bits of code is a vital feature for a
> compiler that is used by Microsoft itself :o)

There are lots of different "bits" to optimizing -- it isn't always throwing out useless bits, it's moving variables to registers, or making minor changes to the instruction sequence to avoid pipeline stalls, or a whole bunch of other things that escape me at the moment.

... and it can be removing bits of code that don't add to the final result.

Benchmarks tend to have code that never participates in the result.
ID: 92687 · Report as offensive
Profile JavaPersona
Volunteer tester

Send message
Joined: 4 Jun 99
Posts: 112
Credit: 471,529
RAC: 0
United States
Message 92893 - Posted: 30 Mar 2005, 19:27:39 UTC

Hi.

I have recently installed P4, P3, and AMD versions of optimized clients. All showed much higher benchmark scores. I take it there will be optimized versions of the upcoming clients that will work with "boingmgr?"

Keep up the good work.

JavaPersona

ID: 92893 · 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 92899 - Posted: 30 Mar 2005, 19:39:50 UTC - in response to Message 92687.  

>
> There are lots of different "bits" to optimizing -- it isn't always throwing
> out useless bits, it's moving variables to registers, or making minor changes
> to the instruction sequence to avoid pipeline stalls, or a whole bunch of
> other things that escape me at the moment.
>
> ... and it can be removing bits of code that don't add to the final result.
>
> Benchmarks tend to have code that never participates in the result.
>

Right.

The smileys in my posts indicate when I'm not completely serious while posting....

Regards Hans


P.S:

Yep, I'm not very serious most of the time :o)
ID: 92899 · Report as offensive
Profile ML1
Volunteer moderator
Volunteer tester

Send message
Joined: 25 Nov 01
Posts: 20329
Credit: 7,508,002
RAC: 20
United Kingdom
Message 93307 - Posted: 31 Mar 2005, 15:50:52 UTC - in response to Message 92045.  

[...]
> Our current work is aimed at optimizing the seti client - something that's
> intended to assist in the science as it will allow users to process work units
> faster, thus allowing more "science" to be performed in a given timeframe.
[...]

Ned,

I downloaded your
AthlonXP 4.19 client
and got only the one boinc client file in the tar.bz2 file.

Should there not also be an optimised s@h client to run under boinc?

Also, I'm getting:
"No work sent (there was work but your computer doesn't have enough memory)" even though there's over 512MB free RAM on this linux system... Any ideas?

Meanwhile, CPDN is running fine under your 4.19 boinc client (:-O)


Help?
Martin

See new freedom: Mageia Linux
Take a look for yourself: Linux Format
The Future is what We all make IT (GPLv3)
ID: 93307 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 93619 - Posted: 1 Apr 2005, 7:02:34 UTC
Last modified: 1 Apr 2005, 7:03:29 UTC

Sorry, not seen that error message before. What distro are you running?

ATM, I only have the boinc clients available. We have been having problems getting the seti app to compile statically. According to Eric, it's a problem in the way g++ applies the -static flag and he's working on a solution. This confirms what we see - the seti app compiles dynamically, despite being sent -static flags.

I have a working optimized seti app for Fedora Core 3 (32 bit) and Chris Bosshard has a working app for FC3 x86_64.

So, for the moment, if you're running FC3, you can contact us here for a copy of the optimized seti app for FC3:

[url=http://forums.pcper.com/showthread.php?p=3426565
]http://forums.pcper.com/showthread.php?p=3426565
[/url]

Ned


*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 93619 · Report as offensive
Profile Neil Walker
Volunteer tester
Avatar

Send message
Joined: 23 May 99
Posts: 288
Credit: 18,101,056
RAC: 0
United Kingdom
Message 93639 - Posted: 1 Apr 2005, 10:12:39 UTC - in response to Message 93307.  
Last modified: 1 Apr 2005, 10:17:51 UTC

> "No work sent (there was work but your computer doesn't have enough memory)"
> even though there's over 512MB free RAM on this linux system... Any ideas?

This problem cropped up on the Einstein forum a little while ago. I know what the problem is but, unfortunately, not the solution. :( What it boils down to is that your computer is not reporting the installed memory with the method used by the BOINC client. Bruce Allen created the following little test program (essentially extracted from the BOINC source):

------------------------------
Copyright Bruce Allen 2005
Released under GPL2
Program to print out physical memory on a system.

[1] Put all of this into a file called memory.c

[2] Compile it like this:
gcc -o memory memory.c

[3] Run it like this:
./memory
*/

#include [unistd.h]
#include [stdio.h]

int main(int argc, char **argv) {

long pagesize=sysconf(_SC_PAGESIZE);
long pages =sysconf(_SC_PHYS_PAGES);

printf("size = %d number = %d bytes=%.0fn", pagesize, pages,
((double)pagesize)*((double)pages));

return 0;
}
---------------------

Due to limitations of the forum software, I had to replace the angle brackets in the #include statements with square brackets. If you wish to use the code, change them back to angle brackets.


Be lucky

Neil



ID: 93639 · Report as offensive
Profile Neil Walker
Volunteer tester
Avatar

Send message
Joined: 23 May 99
Posts: 288
Credit: 18,101,056
RAC: 0
United Kingdom
Message 93642 - Posted: 1 Apr 2005, 10:33:48 UTC - in response to Message 93307.  

> Should there not also be an optimised s@h client to run under boinc?

Ned has explained the static/dynamic linking problem. I will just add that the seti-boinc client is simple enough to compile using the basic instructions on Ned's site. The only gotcha is that many of the CVS snapshots fail to compile due to errors. I have found that the source in seti_boinc-client-cvs-2005-03-16.tar.gz compiles without issue.

Compiling the above-mentioned source code with the following flag settings:

CFLAGS="-march=athlon-xp -O3 -fomit-frame-pointer -ffast-math -fforce-addr -ftracer"
CXXFLAGS=$CFLAGS

resulted in the average time to complete a SETI WU dropping from c11,700 secs to c9,700 secs on this machine. This is on a system running Gentoo GNU/Linux with GCC 3.4.3.

Contrary to original expectations, -ffast-math appears to produce perfectly valid results - as, I believe, Ned and Chris can confirm.


Be lucky

Neil



ID: 93642 · Report as offensive
Ned Slider

Send message
Joined: 12 Oct 01
Posts: 668
Credit: 4,375,315
RAC: 0
United Kingdom
Message 93649 - Posted: 1 Apr 2005, 11:06:37 UTC - in response to Message 93642.  

> > Should there not also be an optimised s@h client to run under boinc?
>
> Ned has explained the static/dynamic linking problem. I will just add that the
> seti-boinc client is simple enough to compile using the basic instructions on
> Ned's site. The only gotcha is that many of the CVS snapshots fail to compile
> due to errors. I have found that the source in
> seti_boinc-client-cvs-2005-03-16.tar.gz compiles without issue.
>

^^ Thanks Neil - good to know. I've been using the seti source from 1st Dec 2004.


> Compiling the above-mentioned source code with the following flag settings:
>
> CFLAGS="-march=athlon-xp -O3 -fomit-frame-pointer -ffast-math -fforce-addr
> -ftracer"
> CXXFLAGS=$CFLAGS
>
> resulted in the average time to complete a SETI WU dropping from c11,700 secs
> to c9,700 secs on this machine. This is on a system running Gentoo GNU/Linux
> with GCC 3.4.3.
>
> Contrary to original expectations, -ffast-math appears to produce perfectly
> valid results - as, I believe, Ned and Chris can confirm.
>

Yes, it appears to be that way atm (although I'd like to do more testing). I now have about 5,000 credits validated using -ffast-math on my test machine. I'm continuing to watch for results that fail to validate. I do currently have 4 results pending that have yet to reach concensus, but obviously have no way of knowing if that's due to my result or one (or more) of the others.

Ned


*** My Guide to Compiling Optimised BOINC and SETI Clients ***
*** Download Optimised BOINC and SETI Clients for Linux Here ***
ID: 93649 · Report as offensive
N/A
Volunteer tester

Send message
Joined: 18 May 01
Posts: 3718
Credit: 93,649
RAC: 0
Message 93663 - Posted: 1 Apr 2005, 12:14:45 UTC - in response to Message 93639.  

Here's the copy-n-paste version (Just in case)
#include <unistd.h>
#include <stdio.h>

int main(int argc, char **argv) {

   long pagesize = sysconf(_SC_PAGESIZE);
   long pages    = sysconf(_SC_PHYS_PAGES); 

   printf(&quot;size = %d number = %d bytes=%.0fn&quot;,
      pagesize,pages,((double)pagesize)*((double)pages));

   return 0;
}
Please accredit Bruce Allen accordingly.
ID: 93663 · Report as offensive
Profile Neil Walker
Volunteer tester
Avatar

Send message
Joined: 23 May 99
Posts: 288
Credit: 18,101,056
RAC: 0
United Kingdom
Message 93717 - Posted: 1 Apr 2005, 15:23:07 UTC - in response to Message 93649.  
Last modified: 1 Apr 2005, 15:30:54 UTC

> ^^ Thanks Neil - good to know. I've been using the seti source from 1st Dec
> 2004.

I just tried the latest - 1st April. I can confirm that that one also compiles cleanly and is now running here. :)

Oh, and perhaps I should mention that I re-named the generated files to setiathome_4.07_i686-pc-linux-gnu and setiathome_4.07_i686-pclinux-gnu.so and, after editing the client_state.xml file accordingly, it picked up without a hiccough. :))




Be lucky

Neil



ID: 93717 · Report as offensive
WerK

Send message
Joined: 30 Jun 02
Posts: 26
Credit: 221,390
RAC: 0
Czech Republic
Message 93718 - Posted: 1 Apr 2005, 15:33:34 UTC

Ned : Yeah, I have also noticed some of the 'concensus not reached yet' results in my queue and I think its pretty normal. I have even noticed one result with that status, and that WU was finished by other 3 people, but not by me, so it can't be caused by me :)
ID: 93718 · Report as offensive
WerK

Send message
Joined: 30 Jun 02
Posts: 26
Credit: 221,390
RAC: 0
Czech Republic
Message 93721 - Posted: 1 Apr 2005, 15:37:31 UTC

Also, I have found some nice parameters for ./configure script. The --disable-server is well known, it build only the client. But also try the --disable-gui and --disable-dynamic-graphics . It cuts compile time a little, and when these flags are in use, then no setiathome_4.07_i686-pclinux-gnu.so is created. Also I dont know if there is a gui for setiathome in Linux, and even if it was, I wouldn't use it :)

Cheers, WerK
ID: 93721 · Report as offensive
Profile Neil Walker
Volunteer tester
Avatar

Send message
Joined: 23 May 99
Posts: 288
Credit: 18,101,056
RAC: 0
United Kingdom
Message 93722 - Posted: 1 Apr 2005, 15:42:28 UTC

I was interested in the claims for GCC 4.0.0 - in particular, the claims for better optimisation. ;) So, I tried compiling seti_boinc with GCC 4.0.0. I'm afraid the code is going to need a lot of cleaning up to compile with that. :(


Be lucky

Neil



ID: 93722 · Report as offensive
N/A
Volunteer tester

Send message
Joined: 18 May 01
Posts: 3718
Credit: 93,649
RAC: 0
Message 93726 - Posted: 1 Apr 2005, 16:13:52 UTC - in response to Message 93722.  

Who's - SETI or GCC?
ID: 93726 · Report as offensive
Profile Neil Walker
Volunteer tester
Avatar

Send message
Joined: 23 May 99
Posts: 288
Credit: 18,101,056
RAC: 0
United Kingdom
Message 93729 - Posted: 1 Apr 2005, 16:20:38 UTC - in response to Message 93726.  

> Who's - SETI or GCC?

SETI - but, maybe, a little of GCC too. ;)


Be lucky

Neil



ID: 93729 · Report as offensive
WerK

Send message
Joined: 30 Jun 02
Posts: 26
Credit: 221,390
RAC: 0
Czech Republic
Message 93730 - Posted: 1 Apr 2005, 16:20:55 UTC - in response to Message 93726.  

> Who's - SETI or GCC?
>

I guess that gcc. Because gcc-4.0 is very very beta version now, only a few things dont break with it
ID: 93730 · 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 93743 - Posted: 1 Apr 2005, 17:09:27 UTC - in response to Message 93722.  

> I was interested in the claims for GCC 4.0.0 - in particular, the claims for
> better optimisation. ;) So, I tried compiling seti_boinc with GCC 4.0.0. I'm
> afraid the code is going to need a lot of cleaning up to compile with that.
> :(
>
>

Hi, I compiled an older seti version with gcc4.0, and the generated client was
slower than the gcc3.4 version.

Regards Hans

ID: 93743 · Report as offensive
Profile ML1
Volunteer moderator
Volunteer tester

Send message
Joined: 25 Nov 01
Posts: 20329
Credit: 7,508,002
RAC: 20
United Kingdom
Message 93781 - Posted: 1 Apr 2005, 20:11:31 UTC - in response to Message 93639.  

> > "No work sent (there was work but your computer doesn't have enough
> memory)"
> > even though there's over 512MB free RAM on this linux system... Any
> ideas?
>
> This problem cropped up on the Einstein forum a little while ago. I know what
> the problem is but, unfortunately, not the solution. :( What it boils down to
> is that your computer is not reporting the installed memory with the method
> used by the BOINC client. [...]

Thanks for the note.

This is on Mandrake 10.1 on a machine with 1280MB of RAM. It could be just a silly integer overflow in the page count (:-((

As an experiment, I've set my Boinc preferences for 100% virtual memory usage to see if that might be a workaround...

Regards,
Martin

See new freedom: Mageia Linux
Take a look for yourself: Linux Format
The Future is what We all make IT (GPLv3)
ID: 93781 · Report as offensive
Profile ML1
Volunteer moderator
Volunteer tester

Send message
Joined: 25 Nov 01
Posts: 20329
Credit: 7,508,002
RAC: 20
United Kingdom
Message 93782 - Posted: 1 Apr 2005, 20:20:11 UTC - in response to Message 93649.  

> > Compiling the above-mentioned source code with the following flag
> settings:
> >
> > CFLAGS="-march=athlon-xp -O3 -fomit-frame-pointer -ffast-math
> -fforce-addr
> > -ftracer"
> > CXXFLAGS=$CFLAGS
> >
> > resulted in the average time to complete a SETI WU dropping from c11,700
> secs
> > to c9,700 secs on this machine. This is on a system running Gentoo
> GNU/Linux
> > with GCC 3.4.3.
> >
> > Contrary to original expectations, -ffast-math appears to produce
> perfectly
> > valid results - as, I believe, Ned and Chris can confirm.
>
> Yes, it appears to be that way atm (although I'd like to do more testing). I
> now have about 5,000 credits validated using -ffast-math on my test machine.


The "fast-math" is fast because underflow and overflow errors are not checked. This is fine for well behaved maths (:-))

The fastest general 'scientific' useage flag settings I've found for gcc3 so far are:

(AthlonXP Palomino core)

export MACHTYPE="i686-mandrake-linux-gnu"
export HOSTTYPE="i686"
export CHOST="i686-pc-linux-gnu"

export CFLAGS="-march=athlon-4 -O3 -funroll-loops -mfpmath=sse -minline-all-stringops -falign-functions=4 -frerun-cse-after-loop -frerun-loop-opt -m3dnow -malign-double -mfancy-math-387 -mfp-ret-in-387 -pipe -fschedule-insns2 -fexpensive-optimizations"
export CXXFLAGS="$CFLAGS"

- As tested on 'testbench'.

A further speedup will be gained with adding "-ffast-math" if appropriate.

Another worthwhile optimisation to try instead of that lot is to just simply optimise for smallest code size.

Regards,
Martin

See new freedom: Mageia Linux
Take a look for yourself: Linux Format
The Future is what We all make IT (GPLv3)
ID: 93782 · Report as offensive
Previous · 1 · 2 · 3 · 4 · 5 . . . 7 · Next

Message boards : Number crunching : [LINUX] A Faster SETI app to go with my optimized boinc apps


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