Hi guys,
Well, I managed to compile the BOINC client (in the process adding the code to correctly identify the RAM, swap space, number of CPUs) and the SETI@home enhanced client.
I haven't had the time to package this properly and the binaries have some dependencies they shouldn't right now, but if you follow the instructions on my download page, they should work until I get around to creating a proper tardist.
Some info on the way the binaries were compiled:
1. BOINC client gcc/g++ 3.2 (the Nekoware gcc 3.4 lacks libstdc++ which is required). No real optimisation, but it isn't required for this binary.
2. SETI@home client - gcc/g++ 3.2 - Unfortunately, porting this to MipsPro (I have only 7.3.1.3) would be an exercise in frustration, however,I have tried to build it as optimised as possible (i.e. -O3 -mips4 -mabi=n32 -mfused-madd -fomit-frame-pointer -funroll-loops).
In adiition to this - the SETI@home binary is now linked (statically) against libfftw (3.1.1 or above) and it is within this library that a lot of the computation takes place.
Fortunately, this library was written in C and by people who had cross-platform portability in mind, so it compiles well using MipsPro. Incidentally, the seti porting guys have been playing with the lib more recently, and it is already showing signs of becoming less portable. I compiled the original. I doubt that any changes made would improve performance on MIPS chips, but I will test this eventually.
The library was compiled with:
-O3 -mips4 -IPA -TARG:madd=ON:platform=ip30 -OPT:Olimit=0, i.e. fairly aggressively.
Note: I didn't use -Ofast as I thought that it may have too much of an impact on floating point values.
The library was compiled in single precision mode - gives approximately 4% speed increase over standard (double precision) mode.
Hmm, I wonder whether performance would be better if calls to FFTW were replaced with the SCSL implementation. Unfortunately, I won't have the time to try this.
Anyway, the current archive is here:
http://nikv.pwp.blueyonder.co.uk/
The directory structure and the app_info.xml file are already set up for SETI@home enhanced. All you need to do (once you have installed the pre-reqs and the LD_LIBRARY_PATH has been set up) is to run 'boinc_client' giving the seti project url and your account key. Run boinc_client --help for instructions.
Boinc now includes 'boinc_cmd' binary which lets you check on the progress of the calculation. 'boinc_cmd --help' for more instructions.
Anyway, I am planning to package this up as a tardist in the next few weeks.
In the meantime, enjoy and let me know if it works for you.
Nik.