Skip to main content

Nostalgy party: SETI@home Solaris 11.3

Task: SETI@Home on Solaris 11.3.

Why: Just For Fun. Nostalgy, if u want…

  • BOINC Client (+ API) (GUI not needed, only client as task planner and API for anonymous client)
  • SETI@Home client v8.00

Few pre-request as I prefer did not complete some steps: create user boinc and complete all steps only by this user.

boinc@snooky:~$ id
uid=108(boinc) gid=101(boinc)
boinc@snooky:~$ pwd
/export/home/boinc

BOINC build:

git clone https://github.com/BOINC/boinc && cd boinc
export PATH=/usr/gnu/bin:$PATH
git clean -f -d -x # just to be clear ;)
./_autosetup
<del datetime="2016-03-28T07:42:06+00:00">CFLAGS="-m64 -march=core2" CXXFLAGS="-m64 -march=core2" \
  ./configure --disable-server --enable-client
</del>CFLAGS="-m64 -march=core2 -O2 -mavx" CXXFLAGS=$CFLAGS \
  ./configure --disable-server --enable-client --prefix /export/home/boinc/build \
  --sysconfdir /export/home/boinc/build/etc

Few small changes (sort of):

boinc@snooky:~/boinc$ diff ./lib/procinfo_unix.cpp.ORIG ./lib/procinfo_unix.cpp
221c221
&lt; pm.insert(std::pair(p.id, p));
---
> pm.insert(std::pair&lt;int, PROCINFO>(p.id, p));
boinc@snooky:~/boinc$ diff ./client/mac_address.cpp.ORIG ./client/mac_address.cpp
257c257
&lt; hw_addr=(struct ether_addr *)(item->ifr_hwaddr.sa_data);
---
> hw_addr = (struct ether_addr *)&(item->lifr_lifru.lifru_addr);
boinc@snooky:~/boinc$ gmake

Next – gmake install (i didn’t), run ./client/boinc –allow_remote_gui_rpc and register a Project SETI (ignore “unsupported” messages). That’s enough for now.

SETI@home:

svn checkout https://setisvn.ssl.berkeley.edu/svn/seti_boinc && cd seti_boinc

Make some changes:

boinc@snooky:~/seti_boinc$ diff ./client/vector/analyzeFuncs_vector.cpp.ORIG ./client/vector/analyzeFuncs_vector.cpp
101,104d100
< #ifndef __APPLE_CC__
< #if defined(HAVE__ISNAN)
< #define isnotnan(x) (!_isnan(x))
< #elif defined(HAVE_ISNAN)
106,111d101
< #elif defined(HAVE___ISNAN)
< #define isnotnan(x) (!__isnan(x))
< #else
< #define isnotnan(x) ((x) == (x))
< #endif
< #endif

Config and compile, just ignore errors…

./_autosetup
CXXFLAGS="-m64 -O2 -mavx " ./configure --disable-tests

…and run our build as fast as possible…

LD_LIBRARY_PATH=/export/home/boinc/boinc/lib/:/export/home/boinc/boinc/api/ gmake -j32

… something lost here 😉 TBD soon…

And finally…

cd && ln -fs \
  ~/seti_boinc/client/setiathome-8.0.i386-pc-solaris \
  ~/boinc/projects/setiathome.berkeley.edu/setiathome-8.0.i386-pc-solaris

PS: benchmarking…

17-Feb-2016 13:07:29 [---] Benchmark results:
17-Feb-2016 13:07:29 [---]    Number of CPUs: 2
17-Feb-2016 13:07:29 [---]    2396 floating point MIPS (Whetstone) per CPU
17-Feb-2016 13:07:29 [---]    23374 integer MIPS (Dhrystone) per CPU
17-Feb-2016 13:07:30 [---] Resuming computation