+- +-
Say hello if visiting :) by Gecko
11 Jan 2023, 07:43:05 pm

Seti is down again by Mike
09 Aug 2017, 10:02:44 am

Some considerations regarding OpenCL MultiBeam app tuning from algorithm view by Raistmer
11 Dec 2016, 06:30:56 am

Loading APU to the limit: performance considerations by Mike
05 Nov 2016, 06:49:26 am

Better sleep on Windows - new round by Raistmer
26 Aug 2016, 02:02:31 pm

Author Topic: How to make your own optimized Seti@Home client for Linux  (Read 24950 times)

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Hi,

you can find this How-To in the Articles section - here's a direct link:

How to make your own optimized Seti@Home client for Linux.

Please post about your success or failure using it!

Good luck,
Simon
« Last Edit: 28 Jun 2006, 02:53:19 am by Simon »

Jocker

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #1 on: 17 Aug 2006, 12:39:18 pm »
Hi,

I've tried to build the Seti@Home client myself, but the Intel C Compiler did not supported GCC 4.1.
Yesterday i've seen that there is a new version of the compiler and i've loaded it.
But there is no more a fftw2mkl. So how to build with Intel's new compiler the Client?

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Re: How to make your own optimized Seti@Home client for Linux
« Reply #2 on: 17 Aug 2006, 05:29:30 pm »
Jocker,

the Linux How-Tos need an update - MKL is not really necessary (I found out it doesn't alter speed at all).

Still, the source package and build scripts that are currently online still include references to both, which would be too much to list here.

Instead, I'll be updating the source packages this weekend, and please have patience until then - I've had much better build results with gcc-3.3/3.4 than 4.0, by the way, though it might not be so easy to switch.

Regards,
Simon.

ngdias

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #3 on: 28 Aug 2006, 07:37:12 am »
Somewhere on your guide you mention:

"Note: all these instructions (as well as the scripts) are tuned for 32-bit Linux. You will have to edit them for 64-bit Linux (especially the compile-boinc-* and compile-seti-* scripts)."

I'm an Ubuntu 6.06 64-bit user and I have very little experience in compiling software. Could you please add to your guide the required instructions for 64bit?

Another 3 questions:
1. I have a Pentium D, so I guess the Intel compiler is adequate. But the AMD users should use it too?

2. If the SETI team decides to upgrade the client, what happens if I'm using yours, which is modified?

3. I think Pentium D supports SSE3, can I use this in ./compile-boinc-xxxx? Or should I use EM64T? This question also extends to ' CFLAGS="-march=pentium4 -msse2 -mfpmath=sse ${CFLAGS}" '. What should I have instead of 'pentium4'?

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Re: How to make your own optimized Seti@Home client for Linux
« Reply #4 on: 28 Aug 2006, 12:07:46 pm »
Hi ngdias,

yes, the Intel compiler is appropriate to use for AMD owners, as well, as it produces the fastest code for PCs around - even though AMD CPUs may be slightly slower than Intels using these versions, they are still quicker than if you use any other compiler/library package.

When the S@H team decides to release a new app, I will release one as well (based on the official sources). As with all other optimized apps so far, you will have to update yours manually. Sorry, there is and will be no auto-update of the applications, that is way outside the scope of my activities :) Still, I may release a separate app that tries and finds out what version you're using and whether there is a more recent one available. Will take time.

Yes, you can create a new compile script that uses SSE3 - however, you will have to do more than just copy it to a new name - specifically, you will need to edit the compile script and change all occurrences of sse2 to sse3 as well as change "/xW" or "/xN" to "/xP". Please consult the ICC man pages for explanations on what these options really do :)

I will release updated Linux sources and update the How-To as well to reflect these changes, so either do it yourself now or be patient, please :)

As for 64-bit compilation, I really cannot give you hints there as I haven't been able to devote much time to it yet.

Regards,
Simon.

ngdias

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #5 on: 28 Aug 2006, 04:29:08 pm »
Thanks for your reply. I'll wait for your update to see how it's done... I hope you will be able to do some more testing in 64bit too.

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Re: How to make your own optimized Seti@Home client for Linux
« Reply #6 on: 03 Sep 2006, 04:49:33 pm »
Hi folks,

I finally had time to update the BOINC & SETI@Home Linux sources and build scripts. So, the sources archive in the Downloads section now points to the new file. These sources include build scripts for MMX-SSE3 with all flavours in between, the checkpoint() fix as well as some minor tweaks in the IPP department.

HTH,
Simon.

sancio

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #7 on: 20 Dec 2006, 03:16:48 pm »
Hi, I tried to compile 1.3 source but unsuccessfully.
My system:
Pentium 4 3GHz
Slackware 10.1
ICC 9.1.045
IPP beta 5.2.011

Only missing requisite libcurl>=7.13.2, I have 7.12.2.

boinc compile fine with compile-boinc-sse3-p4 adding the option --disable-client to the configure because of the libcurl
Could be this the error?
The client is needed or are enough the library?

For seti_boinc I used compile-seti-sse3-p4 not modified with the exception of the icc/ipp path (in attach)
I tried too the configure modify that you suggest for SSE2, but with the same results with the exception of this warning:
icpc: Command line warning: ignoring unknown option '-mfpmath=sse'

The errors are in attach, some example:

icpc: Command line warning: ignoring unknown option '-finclude'
/home/gtoso/src/kwsn/boinc/lib/util.h(66): remark #981: operands are evaluated i
n unspecified order
          s.size()>=suffix.size() &&
[...]
../db/track_mem.h(31): remark #193: zero used for undefined preprocessing identi
fier
  #if DEBUG_ALLOCATIONS
      ^
[...]
icpc: Command line warning: no action performed for specified file(s)
[...]
sincos.h(44): error: omission of exception specification is incompatible with pr
evious function "sincos" (declared at line 82 of "/usr/include/bits/mathcalls.h"
)
  void sincos(double angle, double *s, double *c);
                                                 ^

Where I mistake?
Thanks,
Gianluca.


[attachment deleted by admin]

sancio

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #8 on: 23 Dec 2006, 01:51:42 pm »
I retried to compile with new libcurl, but unsuccessfully  >:(
boinc compile fine (client too), but seti no.
It's a Slack problem? Or IPP 5.2 beta? I need IPP 5.1 or old?
May be I'll retry with IPP 5.1...
But if you can help me it's better  ;D

Thanks,
goodbye.

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Re: How to make your own optimized Seti@Home client for Linux
« Reply #9 on: 23 Dec 2006, 10:11:38 pm »
Hi Gianluca,

I've had those errors often as well. I usually "fixed" them, if nothing else helped, by editing the respective #ifdefs and #defines that redefine sincos and the other mathematical functions.

However, Michael Buckingham has offered to help porting the 2.0 sources to Linux, so maybe we will soon have new stuff to compile anyway ;)

Merry Christmas!
Simon.

sancio

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #10 on: 24 Dec 2006, 12:21:01 pm »
Thanks for the hint Simon and Merry Christmas to you too!!!

talaktalan

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #11 on: 24 Dec 2006, 10:03:46 pm »
Hello and Merry Christmas!

Did anyone sucessfully install the IPP libraries on Ubuntu 6.10?

I was able to install the ICC compiler (*) but the installation of the IPP libs fails. The workaround for the MKL libs, which is given in the Ubunto knowledgebase, seems not to work for the IPP libs. Anyone had sucess here?

Thanks for any help.

Best regards

Alex

(*) With a few changes to the install scripts: /bin/bash instead of /bin/sh and alien instead of rpm.

sancio

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #12 on: 25 Dec 2006, 10:07:25 pm »
Hi Gianluca,

I've had those errors often as well. I usually "fixed" them, if nothing else helped, by editing the respective #ifdefs and #defines that redefine sincos and the other mathematical functions.

Thanks,
Finally the compilation has gone successfully ;D

I commented line 44-48 of client/sincos.h
and added "tools/Makefile" to AC_CONFIG_FILES in configure.ac
(otherwise tools/Makefile is not updated and compile fail).
However I doubt that I need fakedata...

My first binary (SSE3/P4 ICC 9.1.045 IPP beta 5.2.011) seem to crunch fine.
In my tests it's the quickest with the exception of Josefs-WU where KWSN SSE2 is better.

For curiosity I will try to compile a SSE2 client in order to see if the improvements depend on the new version of ICC/IPP or on SSE3.

Code: [Select]
Current WU: testWU-4

---------------------------------------------------
Testing seti-sse3-p4...
Running S@H client seti-sse3-p4....
Time for seti-sse3-p4:
261.35user 5.83system 4:54.54elapsed 90%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (1major+375869minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing crunch3r-sse3...
Running S@H client crunch3r-sse3....
Time for crunch3r-sse3:
295.70user 3.71system 5:25.84elapsed 91%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (15major+375575minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing setiathome-5.15-kwsn-1.3-sse2-p4...
Running S@H client setiathome-5.15-kwsn-1.3-sse2-p4....
Time for setiathome-5.15-kwsn-1.3-sse2-p4:
270.68user 3.81system 4:56.97elapsed 92%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (29major+20977minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing default-512...
Running S@H client default-512....
Time for default-512:
500.46user 2.34system 9:33.83elapsed 87%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (34major+8620minor)pagefaults 0swaps
---------------------------------------------------


Current WU: testWU-1

---------------------------------------------------
Testing seti-sse3-p4...
Running S@H client seti-sse3-p4....
Time for seti-sse3-p4:
2713.52user 22.77system 50:32.40elapsed 90%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (49major+1448335minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing crunch3r-sse3...
Running S@H client crunch3r-sse3....
Time for crunch3r-sse3:
3005.21user 22.43system 55:49.68elapsed 90%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (27major+1448340minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing setiathome-5.15-kwsn-1.3-sse2-p4...
Running S@H client setiathome-5.15-kwsn-1.3-sse2-p4....
Time for setiathome-5.15-kwsn-1.3-sse2-p4:
2676.01user 14.39system 53:07.93elapsed 84%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (59major+40139minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing default-512...
Running S@H client default-512....
Time for default-512:
4431.06user 20.63system 1:21:13elapsed 91%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (49major+13157minor)pagefaults 0swaps
---------------------------------------------------


Current WU: testWU-6

---------------------------------------------------
Testing seti-sse3-p4...
Running S@H client seti-sse3-p4....
Time for seti-sse3-p4:
48.45user 2.99system 0:54.73elapsed 93%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (47major+34454minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing crunch3r-sse3...
Running S@H client crunch3r-sse3....
Time for crunch3r-sse3:
69.82user 0.39system 1:14.21elapsed 94%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (20major+34192minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing setiathome-5.15-kwsn-1.3-sse2-p4...
Running S@H client setiathome-5.15-kwsn-1.3-sse2-p4....
Time for setiathome-5.15-kwsn-1.3-sse2-p4:
52.51user 2.16system 0:58.44elapsed 93%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (47major+15527minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing default-512...
Running S@H client default-512....
Time for default-512:
93.22user 0.47system 1:59.16elapsed 78%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (5major+8383minor)pagefaults 0swaps
---------------------------------------------------


Current WU: Josefs-WU

---------------------------------------------------
Testing seti-sse3-p4...
Running S@H client seti-sse3-p4....
Time for seti-sse3-p4:
483.40user 5.47system 8:50.17elapsed 92%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+161341minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing crunch3r-sse3...
Running S@H client crunch3r-sse3....
Time for crunch3r-sse3:
542.71user 3.34system 9:52.80elapsed 92%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (10major+161055minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing setiathome-5.15-kwsn-1.3-sse2-p4...
Running S@H client setiathome-5.15-kwsn-1.3-sse2-p4....
Time for setiathome-5.15-kwsn-1.3-sse2-p4:
463.96user 4.41system 8:27.15elapsed 92%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (32major+17910minor)pagefaults 0swaps
---------------------------------------------------

---------------------------------------------------
Testing default-512...
Running S@H client default-512....
Time for default-512:
802.40user 3.43system 14:44.12elapsed 91%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (49major+8768minor)pagefaults 0swaps
---------------------------------------------------

Code: [Select]
gtoso@marte:~/src/kwsn/seti_boinc/client/test/testData$ ../rescmp result.sah.default-512.Josefs-WU result.sah.seti-sse3-p4.Josefs-WU
Result: these are strongly similar.
gtoso@marte:~/src/kwsn/seti_boinc/client/test/testData$ ../rescmp result.sah.default-512.testWU-1 result.sah.seti-sse3-p4.testWU-1 
Result: these are strongly similar.
gtoso@marte:~/src/kwsn/seti_boinc/client/test/testData$ ../rescmp result.sah.default-512.testWU-4 result.sah.seti-sse3-p4.testWU-4
Result: these are strongly similar.
gtoso@marte:~/src/kwsn/seti_boinc/client/test/testData$ ../rescmp result.sah.default-512.testWU-6 result.sah.seti-sse3-p4.testWU-6
Result: these are strongly similar.
gtoso@marte:~/src/kwsn/seti_boinc/client/test/testData$

However, Michael Buckingham has offered to help porting the 2.0 sources to Linux, so maybe we will soon have new stuff to compile anyway ;)

Very good news,
you tell me if I can help even if my C is much rusting.

Goodbye and sorry for my bad English :-(

Offline Simon

  • Ni!
  • Knight who says 'Ni!'
  • *****
  • Posts: 1045
    • Is it a bird? Is it a plane? No...its-the.net!
Re: How to make your own optimized Seti@Home client for Linux
« Reply #13 on: 25 Dec 2006, 10:16:02 pm »
Hi Gianluca,

tutto bene ;)

Happy you got it to compile, good work!

Regards,
Simon.

sancio

  • Guest
Re: How to make your own optimized Seti@Home client for Linux
« Reply #14 on: 25 Dec 2006, 10:21:44 pm »

My first binary (SSE3/P4 ICC 9.1.045 IPP beta 5.2.011) seem to crunch fine.
In my tests it's the quickest with the exception of Josefs-WU where KWSN SSE2 is better.


Emmh in testWU-1 is quicker KWSN, too.
I'm confused for the presence of elapsed time and not real time (as in bash builtin time)

 

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?
Members
Total Members: 97
Latest: ToeBee
New This Month: 0
New This Week: 0
New Today: 0
Stats
Total Posts: 59559
Total Topics: 1672
Most Online Today: 45
Most Online Ever: 983
(20 Jan 2020, 03:17:55 pm)
Users Online
Members: 0
Guests: 42
Total: 42
Powered by EzPortal