Valid CSS! Valid XHTML 1.1!

CSS styles using page

explanation

previous page

download table

FAQ:

proxy

account

distributed computing

deutsch: Schw. Sternwarte SETI BOINC

index

top

(last update 3. Jan 2007)

(major additions/updates last at 8. Oct, 25. Jun and 26. May 2006, i.e. setiathome_enhanced v5 for Solaris 10 UltraSPARC III, AMD64, x86, Solaris 8 UltraSPARC I/II, Linux 2.6 x86_64, ia64, ppc, Alpha, FreeBSD x86 and Alpha, OpenBSD x86, HP-UX PARISC and Itanium

Available Clients Overview

Solaris

SPARC, AMD64 and x86

GNU/Linux

AMD64, PowerPC, Itanium, Sparc, Alpha and s390 (z/Linux)

HP-UX

PARISC and Itanium

Tru64 on Alpha

AIX

Mac OS X on G4

FreeBSD on x86 enhanced v5 and also for Alpha

NetBSD on x86

OpenBSD on x86

About This Page

You may have recognized, that SETI@home classic is supporting a considerable multitude of platforms (i.e. combinations of a CPU kind with an operating system).

With the immanent final switch to the more general working successor SETI@home BOINC the situation is comparatively unsatisfactory for now, since that official site offers just versions for the monopoly platform and three Unix platforms: GNU/Linux on x86, Solaris on SPARC and Mac OS X (on PowerPC and meanwhile for x86 too).

So the reason for this page is twofold: I want myself to be able to participate with other platforms too (for example the fine platform Solaris 10 on AMD64) and with better optimized clients, and I found support for the idea, to share those self compiled clients. At home and even more at work I have access to many platforms, so I can compile a good deal of both BOINC core and SETI@home crunching clients. I offer many of them now and even more, including several from fellow contributors, the next time.

Version Remarks

Excluded are for the forseeable future completely proprietary systems like the M§ Windows platform or non-Unix IBM OSs and — just because I have no access to them at now — Alpha GNU/Linux and MIPS (i.e. IRIX or GNU/Linux) systems.

New major SETI version 5 (enhanced): at begin of May 2006 this so far beta tested only version was released for the main project. I will now support this and the previous one together, as long both are used in parallel.

The clients should stay current enough to participate — older ones may be not able to connect to the BOINC servers. Usually I will use a relatively new development, but public resp. stable (non-CVS) version, if possible.

The archives are compressed with bzip2, which should not pose problems today and has the advantage over gzip and zip, that you may be able to save some content in case it is damaged (for example at least one of two contained clients) and of better compression (at the expense of CPU time when uncompressing as usual). I have provided checksums and GPG signatures too (see below), for third party packages only checksums, because signing would be the task of their creator(s).

The archive contains the BOINC client without directory and in the right place in two subdirectories from there (projects/setiathome.berkeley.edu) the two required files app_info.xml to enforce usage of the client for the project and the SETI BOINC client itself; so just unarchive the file in your BOINC execution directory and all three files will be in place.

There are some exceptions from this packaging mentioned below for special reasons (different options for both parts used only one available, additional libraries and so on), which are labeled as such.

More Technical Remarks

I try to get best performance as mentioned in the introduction; i.e. use either gcc with the best possible (but responsible) compiler options or even native compilers, which often do a significant better optimization, whenever possible. (this has certain limits, because for example you would not be able to link a Sun compiled SETI-BOINC client together with parts of a gcc compiled BOINC core client, which can prove as real obstacle)

For Opteron = AMD64 = K8 target CPUs gcc 3.4.x got the following options from me:

-O3 -mcpu=opteron -m64

later added to improve performance, maintaining acceptable accuracy and meanwhile well-tested to work fine:

-ffast-math -funroll-loops

This lead to a little faster execution at average, less strong variations in single CPU time values for different work units and the IMHO most correct/fair credit claims so far (around 30 typically, usually clearly below 40 and above 20; you can bet, you have issues, if you are constantly in the vicinity of 20 or below or 40 or above).

The Opteron cpu flag gets 30–40 % of performance gain compared to an i686 client and the -m64 64 bit flag gets another 40 %, so this client will bench and run twice as fast in total (the O3 does also help of course compared to the standard O2 optimization).

The Solaris x86 32 bit client is optimized now accordingly with -O3 -ffast-math -funroll-loops -march=i686.

For SPARC-Solaris the compilation of the SETI application proved rather difficult for several reasons, though I could establish the fastest benching BOINC client with the following options for UltraSPARC I (64 bit) and above systems (-mvis/32 bit turned out to be a little faster than -m64=64bit):

-O3 -ffast-math -funroll-loops -mcpu=ultrasparc -mvis

Newest client for UltraSPARC III Solaris 10 with BOINC 5.4, setiathome enhanced 5.1 and fftw 3.1 was done like this:

FFTW translated with Sun compiler Studio 11 (CC=cc), configure and options:

CFLAGS="-xO5 -xtarget=ultra3 -xarch=v9b -fround=nearest -xvis -xvector -xlibmopt"

./configure --enable-single --disable-fortran --libdir=/usr/local/lib/sparcv9 --enable-threads

BOINC and SETI were done with gcc 4.1, CXXFLAGS=CFLAGS, LDFLAGS=/usr/local/lib/sparcv9/libssp.a (because of usage of -fstack-protector):

CFLAGS=-O4 -ffast-math -funroll-loops -ftree-vectorize -fstack-protector -m64 -mcpu=ultrasparc3 -mvis

./configure --disable-server --enable-client-release --enable-bitness=64

./configure --disable-server --disable-graphics --enable-bitness=64 --enable-fast-math --with-ssl=/usr/local/ssl

The trouble with the SETI part is multifold: either the client doesn't run correctly at all (gets stuck after a few minutes, endlessly waiting) or even riskiest optimizations, which are not yet proved to preserve correctness, don't improve against the theoretically poorly optimized official client so far. Therefore I offer the BOINC client alone, and post an improved SETI client when I have one (because you can use with an app_info.xml the official one, this is not too urgent, I think, though regrettable).

Update: Now I got it! Since the gcc v4.0 is lib compatible with gcc 3.4 it is possible, to compile BOINC like before with gcc 3.4 and do a fast 32 bit VIS build (and a 64 bit base build for SETI afterwards too) and to compile with the fine vectorization support with gcc 4.0 afterwards the working 64 bit VIS SETI application:

-O3 -ffast-math -funroll-loops -mcpu=ultrasparc3 -m64 -mvis -ftree-vectorize

This gives an advantage of 25 to 30 % compared with earlier compilatons (!). — for UltraSPARC I and II CPUs just use again -mcpu=ultrasparc of course as above. It looks even like it is fitting well with the BOINC benchmarks of the fastest version, though both were compiled slightly differently.

On the PowerMac G4 running Mandrake 9.1 ppc I used

-O3 -fexpensive-optimizations -funroll-loops -fomit-frame-pointer -mcpu=7450 -maltivec

which gave so far unreasonably slow results; there is clearly a chance of improvement — I don't know, if the older gcc 3.2.2 or whatever causes this. I will recompile when I reinstall with a current Gentoo or Debian Sarge system; gcc 3.4.3 may give much better results or I have to figure out better settings.

For my G4 PowerMac running Mac OS X 10.3 Panther I used following optimizations, which give about 30–40 % gain in floating point and about 10 % in integer benchmark speed compared to the official client on such ppc7450 and later (non-G5) PowerPC CPUs:

-O3 -maltivec -fast -mcpu=7450 (the O3 is implicitly turned on by -fast: only for transparancy)

Since above optimization lead to unpredictable results, I explicitly listed all -fast options instead (manpage!) and omitted the three considered as dangerous: -ffast-math -fstrict-aliasing -malign-natural.

Anyway, for Mac clients you may prefer to use the variety of optimized Mac OS X clients from Team MacNN instead.

These gcc compiled versions need a libgcc of gcc 3.2 or later to run; while this is on GNU/Linux, Mac OS X and BSD usually installed, you may need to install it for example on Solaris additionally or/and add it to the LD_LIBRARY_PATH.

For AIX I created a working BOINC client, but SETI couldn't be compiled there so far, efforts to overcome this obstacle are still under way. For benchmark purposes solely — though you can attach projects already with it — I offered prematurely one too, only usable on 64 bit POWER 4 and higher CPUs. Options:

-O3 -mcpu=power4 -maix64

Meanwhile Mark Calderbank has finished also a pair of working BOINC and SETI client versions for all PowerPC systems and just standard optimized (-O2) with gcc 3.3.2, the required gcc libs are included therefore.

Special remarks regarding the HP-UX contribution by Lars Bausch: take special care regarding libs (see there below), it was compiled (gcc 3.3.1) just with

-O3 -mpa-risc-2-0

The 32 bit versions of course not, and partly libgcc is offered too for gcc 3.4.3 builds by him and me.

As usual a PA-RISC compiled version will run rather slowly on an Itanium system (maybe even slower as on a spec far inferior PA-RISC machine), though it is possible to use there too.

Generally I compile BOINC with configure --disable-server and you may find it advantagous to forbid any GUI component inclusion in terms of performance too, when you configure on a system, where they are found by the configure script. Subsequently I do a similar configure and finally a gmake (GNU) make invocation with option -k (not sure, if it is still required, but doesn't any harm) after setting the environment variable BOINCDIR to the first used and compiled BOINC directory. Don't forget to set both environment variables CFLAGS and CXXFLAGS to compiler options like those mentioned above, because there are both C and C++ files in the sources. And of course native compilers require setting of CC and CXX environment variables too, because otherwise a gcc is used whenever found.

Finally, the URLs to get the source code are here together — because I find it tedious to get there — for your convenience: BOINC source code (use boinc_public) and SETI BOINC application source code or resort to CVS, if you know, what you are doing.

Remarks regarding SETI@home enhanced

Currently at time of writing (21. January 2006) this SETI applicaton is to be used only in the beta project of SETI@home (http://setiweb.ssl.berkeley.edu/beta/) but will become in near future the standard client of the productive main project. While the transition of BOINC clients of v4 to v5 will be relatively smooth (at least later v4 clients can still handle v5 SETI applications), the SETIathome version transition isn't all this: it has a complete different behaviour in many respects and takes much longer than the predecessor. No issue when considering the credit system implemented in BOINC, but you should this keep in mind. Especially processing the test work unit out of the source tree takes up a rather long time (my current best i.e. shortest was 17 hours on a 1.8 GHz AMD 244 Opteron CPU!).

Regarding source you should be aware, that a new possibility, warmly recommended to use, has opened up: you can use the fftw open source Fast Fourier Transformation library and compile it even extremely aggressive with the fastest native or third party compiler for the platform you have and use this usually statically created and afterwards linked library in the SETI application, which gives as well more speed compared to the older, Berkeley coded routines, as more platform independency and accuracy. At least for 32 bit versions it has paid off, to limit precision (completely sufficient for the noisy SETI data) with configure option --enable-single, to get most speed out of it. Thereafter you doesn't need any aggressive optimization or optimization at all within SETI itself, because most time is spent in the highly optimized fftw part. This makes life especially easier on the BSD systems, where the math libs of the systems seem to be broken in many cases (or always?).

So I created the first time a useful FreeBSD client (see below),, because the v4 I built myself in the past was painfully slow and on most BSDs the outcome is often not useful due the mentioned reason. Currently AIX and Solaris AMD64 versions are under test if they work acceptably, it will take some time to find out, but I will be ready, when Berkeley switches to v5, I'm sure.

Downloads

Solaris generally

For the interested users of Solaris SMP systems, regardless if sparc or x86 based, I wrote a stock-Solaris working script exploiting the CPU affinity commands (should work at least since Solaris 8, and even also on Solaris 7, which is the oldest one supported at all generally). It cares for sticking all running SETI instances and if not all CPUs are used are currently by them also BOINC to specific CPU cores/threads on SMP Solaris systems: pinSETItoCPUs. It should be portable at least to GNU/Linux with the respective commands there substituting the Solaris specific ones IMHO (maybe I do so in near future myself; needs a fairly current Linux 2.6 kernel or heavily patched 2.4 one and the not so common userspace tools there anyway).

Solaris x86

Slightly updated (boinc 5.4.12, SETI 5.15, 1. January 2007) and improved version only for more recent AMD64 CPUs (all dual cores and more recent mono cores will be okay), be aware, that the SETI application will run only on such AMD64 CPUs with sse3 support!

archive sha1 checksum pgp signature

More general usable (15. May 2006) bundles for the SETI@home enhanced (currently v5.12 resp. v5.13) and complete SETI@home main project packages:

Solaris 10 AMD64 (= Opteron = K8) BOINC client and now only SETI@home v5 compiled with gcc 4.1 64 bit (statically), using fftw 3.1 (compiled with Sun Studio 11): archive sha1 checksum pgp signature
older combined BOINC 5.2.14 SETI v4+v5 archive sha1 checksum pgp signature

Same as before as standalone package without the different sub directory name (flat archive), usable both in the main as beta project currently (what I do at now with great success, take care, not to overwrite an app_info.xml with only the SETI@home v4 client as long you still need it): archive sha1 checksum pgp signature

Solaris 10 AMD64 (= Opteron = K8) client compiled with gcc 3.4.3 sol in 64 bit full speed mode: archive gpg signature sha1 checksum

Solaris 10 i686 (Pentium II or AMD K7 or higher) client, same compiler as above, should run on Solaris 8 and 9 too:

newer version 5.4.9 of BOINC, may be required to run correctly (at least for me), and also seti enhanced v5.13: archive gpg signature (of checksum) sha1 checksum

Solaris SPARC

First the BOINC client alone for UltraSPARC I and higher (with vis extension), needs editing of the app_info.xml to adjust for the regretfully Solaris 7 only SETI application, build on Solaris 9, runs on Solaris 8 and 10 too (Solaris 7 untested): new Solaris 10 UltraSPARC IIIi only client/SETI sha1 checksum gpg signature
new Solaris 8 UltraSPARC I/II client/SETI checksum (sha1) signature

In case you need the more recent libs of gcc/g++, here they are (from gcc 4.0.0, 64bit): archive sha1 checksum signature

GNU/Linux x86_64

New GNU/Linux 2.6/glibc 2.3.x AMD64 (Opteron/K8) client compiled with gcc 4.1 (and partly Sun Studio 12 preview) completely statically, BOINC 5.4.9 and SETI@home enhanced v5.13 with activated stack/buffer overflow protection to increase security:

archive sha1 checksum pgp signature
same as flat SETI only archive sha1 checksum pgp signature

Some people (me too!) have observed, that on some target GNU/Linux systems with AMD64 CPUs this version(s) run(s) unexpectedly slow, so if you can report me exact configurations of the slow systems, we may to be able to pin down this issue to resolve it, probably it is now:

An employee of AMD told me recently, that they have delivered 64 bit libraries for their AMD64 CPUs just to Sun, Suse and RedHat, so you can expect to work the 64 bit clients very fast on Solaris 10, Suse Linux and RHEL (RedHat Enterprise only) systems of the more recent versions; it explains, why it is slow on the lib lacking GNU/Linux systems like Gentoo, Debian, Ubuntu. Please use the 32 bit client therefore on those systems or if you suspect, you share this issue too anyway.

GNU/Linux Itanium

For Itanium systems running GNU/Linux compiled with gcc 3.4.3, 64 bit version, another contribution from Lars Bausch, read the README files in the archive. CAUTION: I couldn't test it on my own, because I have not yet installed GNU/Linux on the Itanium machine I'am supervising, and Lars could perform only rather rudimentary tests of it! But because of the well cross-CPU behaviour of GNU/Linux chances were good, that it works out of the box, meanwhile one user has tested it sufficiently well in our opinion and it was okay:

seti v5 only package sha1 checksum

Newer package bundled BOINC and SETI stable current:

archive sha1 checksum

GNU/Linux s390 or z/Linux

This one is not fully tested yet and stripped down the BOINC client to save a lot of wasted C++ symbol crap from using space; only used -O2 for optimization so far, to avoid risky compiler switches, please test it and report, if it works! Compiled on SLES 8 s390 against glibc 2.2.5 with gcc 3.2.3, currently out of date, please tell, if I should take the long and tedious task to built current versions of it(!): archive gpg signature sha1 checksum

GNU/Linux PowerPC

GNU/Linux with glibc 2.3.x PowerPC 7450 and later (Quicksilver PowerMac G4 or later), compiled on Mandrake 9.1, works too on Suse SLES 9 on POWER machines (though somewhat slower than necessary, because it is only 32 bit): BOINC 5.2.14, SETI 5.13 and 4.07 archive sha1 checksum pgp signature
flat SETI v5.13 only archive sha1 checksum pgp signature

Two another builds come from Lars Bausch (see above):

GNU/Linux on SPARC

SETI enhanced application checksum (sha1)

GNU/Linux on Alpha

BOINC 5 and SETI enhanced sha1 checksum

Mac OS X (ppc)

Mac OS X 10.3 Panther on PowerPC 7450 and later (Quicksilver PowerMac G4 or later) --- dated, please use clients from other Berkeley third party sites for the time being: archive gpg signature sha1 checksum

AIX

Mark Calderbanks BOINC/SETI versions (4.66 resp. 4.07) for common PowerPC using AIX 5L systems, required gcc 3.3.2 libs included (don't forget to use them before launching this BOINC client by setting export LIBPATH=$HOME/boinc:$LIBPATH or the like, assuming your boinc directory resides in your home directory within directory boinc; only unnecessary if you have gcc 3.3.2 or other 3.3 installed or its libs and they are already in the path) — full support is still (difficult) work in progress:

archive sha1 checksum

HP-UX (PARISC)

HP-UX 11.00 to 11.2x on PARISC CPUs 32 and 64 bit: a contribution from German fellow BOINC compiler Lars Bausch, comes with additional libs and is to be installed in /opt/boinc and below and referred to with export SHLIB_PATH=/opt/boinc/lib:$SHLIB_PATH to be used. Please read the remarks in the /opt/boinc/doc files in that archive (the former 1 GB RAM assumption built in is no more, it's now regulary working, using the z compression library), of course you may unpack instead with GNU tar -xzf or stepwise with gunzip and tar/pax instead and move the files from ./opt/boinc into the desired location:

Newest (BOINC 5.4 recommended) SETI v5:

11i 64 bit sha1 checksum
11i 32 bit sha1 checksum
11.0 64 bit sha1 checksum
11.0 32 bit sha1 checksum
10.2 32 bit sha1 checksum

v1.8 most recent, update to BOINC 5.2.15 and more:
both 32 and 64 bit BOINC SETI depot gzipped for v11i sha1 checksum
v1.7.1 (newer and many fixes):
64 bit BOINC SETI depot gzipped v11i sha1 checksum
32 bit BOINC SETI depot gzipped v11i sha1 checksum
64 bit BOINC SETI depot gzipped v11.00 sha1 checksum
32 bit BOINC SETI depot gzipped v11.00 sha1 checksum

v1.6 (BOINC with improved scheduling and more fixes):
32 bit BOINC SETI depot gzipped sha1 checksum
64 bit BOINC SETI depot gzipped sha1 checksum

HP-UX 10.20 legacy version sha1 checksum

BOINC manager 1.0 both for PARISC and Itanium HP-UX V11i (i.e. 11.1x and 11.2x): BOINC GUI gzipped sha1 checksum

HP-UX (Itanium)

A new native HP-UX 11.2x version for Itanium CPUs, HPs own gcc version 3.4 used: another contribution by Lars Bausch, similar remarks apply as above, please read the README files in the archive, new v1.7.1: new seti enhanced v5 only package sha1 checksum
archive sha1 checksum

Tru64 (Alpha)

A meanwhile real-BOINC-life tested version, which can do the test work unit correctly too, any return from downloaders is still highly appreciated (only one system runs real and fine); True64 V5.x required (maybe even 5.1 or later or it can run even on older versions, please report it!). Also a contribution from Lars Bausch: archive sha1 checksum

Now he has produced some more, specifically designed for certain CPU types (and OS revisions), you should try one of these first, at last updated from v1.1 to 1.2 with some more fixes included::

Alpha EV4: archive sha1 checksum

Alpha EV5: archive sha1 checksum

Alpha EV6: archive sha1 checksum

FreeBSD (x86)

new v5.12 client/application currently suitable for both main and beta project; due to a hint of a FreeBSD developer you may need to remap old thread implementation libpthread.so.1 to libc_r.so.5, to tet it run not only on FreeBSD 5.x, but also on 6.x:

BOINC 5.2.14 and SETI 5.12 archive for beta project, take care not to overwrite an eventual older seti v4 app_info.xml with it(rename or copy the projects sub directory to setiathome.berkeley.edu for participation in the main project) sha1 checksum gpg signature
SETI v5.12 standalone (flat) package, both for main and beta project sha1 checksum pgp signature

FreeBSD on Alpha CPU

Again a contribution from Lars Bausch (see above):

BOINC 5 and SETI enhanced sha1 checksum

NetBSD (x86)

Another contribution from Lars Bausch: compiled with options -O -ffloat-store -funsafe-math-optimizations to make it work; any comment on different possible approaches and real life behaviour is highly appreciated by us both.

archive SETI enhanced v5.12 sha1 checksum

archive sha1 checksum

This one uses the more recent BOINC 5.2.15, SETI is unchanged v4:

archive sha1 checksum

OpenBSD (x86)

Considering the existence of FreeBSD support elsewhere these binaries again created by Lars Bausch round up the *BSD support:

New enhanced SETI v5 only archives:

archive sha1 checksum

archive sha1 checksum

Like NetBSD just the same SETI application with a newer BOINC 5.2.15 client packaged:

archive sha1 checksum

FAQ

Proxy Configuration

If you missed the configuration of the proxy when first time launching BOINC, you can enter an http proxy (and as SOCKS proxy rather similar) within the client_state.xml file when not running BOINC yourself manually:

First set in between the tags (element) proxy_info another one, namely <use_http_proxy/>, then give the hostname of the proxy as http_server_name element text value and analoguosly the port as http_server_port.

Example when running a squid on its default port on a host named proxy (resolvable via DNS or host entry, eventually with FQDN or IP address instead):

<proxy_info>
<use_http_proxy/>
<http_server_name>proxy</http_server_name>
<http_server_port>3128</http_server_port>
</proxy_info>

If you need username and maybe even a password, you can use like above http_user_name and http_user_passwd after the http_server_* elements, but of course entering a password in the clear like here is unsecure.

Account/Login Alternative

Sometimes you may get trouble to log in the usual way: the communication to create your required data on a machine may fail. Then, if you have joined successfully elsewhere, you can sidestep this issue: copy an account_projurl.xml file, for SETI this translates to account_setiathome.berkeley.edu.xml, into the boinc client containing directory on your target system. Now you should be able to proceed without direct login on the machine you had trouble on.

Future Client Plans

General Idea

Most important as mentioned above is to support as many platforms of reasonable usage as possible; second is to improve performance of existing or self compiled ones of course. This is the sort order for the following.

If anybody has managed to do so self, you can contact me (see below); I will mention the contributor here of course. For example somebody has already build a HP-UX client for PARISC systems, which I have tried out successfully.

Desired Clients

to main top

remarks etc. to: stefan.urbat@apastron.lb.shuttle.de public key

(URL: http://www.lb.shuttle.de/apastron/boincDown.shtml)

who am I