[Bug 941483] Re: BOINC apps need to be rebuilt against BOINC 7

Steffen Möller steffen_moeller at gmx.de
Tue May 29 22:13:20 UTC 2012


On 05/29/2012 09:17 PM, Steffen Möller wrote:
> On 05/29/2012 07:00 PM, LocutusOfBorg wrote:
>> Hi everybody, based on Daniel's hint I created a boinc-app-seti project and packaged it in my ppa [1]
>> This is almost based on boinc-app-seti directly taken from debian's git [2] and boinc taken from debian (just two or three modification to make it build)
>>
>> I don't know status of boinc-app-seti, it's changing so fast, Steffen is
>> pushing patches almost all the day :)
>>
>> so could anybody give it a try?
>>
>> [1] https://code.launchpad.net/~costamagnagianfranco/+archive/boinc
>>
>> [2] http://anonscm.debian.org/gitweb/?p=pkg-boinc/boinc-app-seti.git
> 
> I am a bit on a trip these days to have those shared libraries established more.
> The motivation is that we have servers here with 24 cores
> (12 real ones x 2 for hyperthreading) and  I would very much like to see
> memory consumption decreased. Also, this would be quite a difference that
> our packaging could make this way, I think, especially
> for those who keep the app in memory when the computer is used.
> 
> It is only the very latest 7.0.28 version of boinc that offers those shared libraries.
> But SETI is somehow incompatible with that version of boinc, only working fine with 7.0.27.
> So, if you have branched from the -2 version of boinc-app-seti and if using the
> 7.0.27 boinc client's -dev package, everything should be fine.

I just recompiled 7.0.28 with as many shared libraries as possible and one gets quite
a reduction of the footprint:

Originally:
$ ls -l /usr/bin/boinc /usr/bin/boinccmd
-rwxr-xr-x 1 root root 808136 May 10 13:37 /usr/bin/boinc
-rwxr-xr-x 1 root root 217864 May 10 13:37 /usr/bin/boinccmd

Now:
$ ls -l /usr/bin/boinccmd /usr/bin/boinc
-rwxr-xr-x 1 root root 30824 May 29 21:41 /usr/bin/boinccmd
-rwxr-xr-x 1 root root 698520 May 29 21:41 /usr/bin/boinc

And the libraries alone:
$ ls -l /usr/lib/libboinc.so.7.0.28 /usr/lib/libboinc_crypt.so.7.0.28
-rw-r--r-- 1 root root 317584 May 29 21:41 /usr/lib/libboinc.so.7.0.28
-rw-r--r-- 1 root root 22408 May 29 21:41 /usr/lib/libboinc_crypt.so.7.0.28


So, in terms of disk footprint we save

echo "808136+217864-698520-30824"|bc
296656

but since we have the libraries now that we did not have before this becomes

$ echo "296656-317584-22408"|bc
-43336

Argh. So the overhead does not pay off with the binaries already installed.
But almost. And it does when the boinc-app-seti package is also installed:

# original size of 6.03 from Berkeley,
-rwxr-xr-x 1 boinc boinc 1031344 May  6 19:22 setiathome_6.03_i686-pc-linux-gnu
# 5.28 is rather enormous.
-rwxr-xr-x 1 boinc boinc 6641240 May  6 19:37 setiathome-5.28.x86_64-pc-linux-gnu
# dynamically linked against kibboinc_app.so only
-rwxr-xr-x 1 root root 837016 May 27 15:12 /usr/lib/boinc-app-seti/setiathome_enhanced
# dynamically against libboinc.so and libboinc_app.so
-rwxr-xr-x 1 root root 726000 May 29 23:55 /usr/lib/boinc-app-seti/setiathome_enhanced

So, the share library for anyone running SETI saves
$ echo "-43336+837016-726000" | bc
67680 bytes in disk space and some yet unknown amount of RAM, which is the most important (and impressive, after looking at those
numbers above) part.

And we have some confidence to have the same physical BOINC code both for the scientific application and the user-run client.

So, I am rather happy here with it all. Everything is submitted to the git repository. Further improvements, testing, welcome.

Cheers,

Steffen


Here the dependencies

$ ldd /usr/bin/boinccmd
        linux-vdso.so.1 =>  (0x00007fff593d6000)
        /usr/lib/x86_64-linux-gnu/libc/memcpy-syslog-preload.so (0x00007fb148ba8000)
        libboinc.so.7 => /usr/lib/libboinc.so.7 (0x00007fb148935000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fb148719000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fb148412000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fb1481fc000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb147e74000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fb147bf2000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fb148dac000)


$ ldd /usr/bin/boinc
        linux-vdso.so.1 =>  (0x00007fffc3fc5000)
        /usr/lib/x86_64-linux-gnu/libc/memcpy-syslog-preload.so (0x00007f93d9fff000)
        libboinc.so.7 => /usr/lib/libboinc.so.7 (0x00007f93d9d8c000)
        libboinc_crypt.so.7 => /usr/lib/libboinc_crypt.so.7 (0x00007f93d9b86000)
        libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f93d991d000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f93d9719000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f93d9501000)
        libXss.so.1 => /usr/lib/x86_64-linux-gnu/libXss.so.1 (0x00007f93d92fe000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f93d90e2000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f93d8dda000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f93d8b58000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f93d8942000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f93d85ba000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f93d827e000)
        libidn.so.11 => /usr/lib/x86_64-linux-gnu/libidn.so.11 (0x00007f93d8049000)
        libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1 (0x00007f93d7e1f000)
        liblber-2.4.so.2 => /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2 (0x00007f93d7c10000)
        libldap_r-2.4.so.2 => /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2 (0x00007f93d79c0000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f93d77b7000)
        libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x00007f93d7578000)
        libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f93d731a000)
        libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f93d6f35000)
        librtmp.so.0 => /usr/lib/x86_64-linux-gnu/librtmp.so.0 (0x00007f93d6d1b000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f93da203000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f93d6b08000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f93d68e7000)
        libgcrypt.so.11 => /lib/x86_64-linux-gnu/libgcrypt.so.11 (0x00007f93d6669000)
        libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007f93d6452000)
        libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x00007f93d6236000)
        libgnutls.so.26 => /usr/lib/x86_64-linux-gnu/libgnutls.so.26 (0x00007f93d5f76000)
        libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x00007f93d5ca1000)
        libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x00007f93d5a78000)
        libcom_err.so.2 => /lib/x86_64-linux-gnu/libcom_err.so.2 (0x00007f93d5874000)
        libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x00007f93d566a000)
        libkeyutils.so.1 => /lib/x86_64-linux-gnu/libkeyutils.so.1 (0x00007f93d5466000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f93d5262000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f93d505d000)
        libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f93d4e5a000)
        libtasn1.so.3 => /usr/lib/x86_64-linux-gnu/libtasn1.so.3 (0x00007f93d4c48000)
        libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x00007f93d4a36000)

$ ldd /usr/lib/boinc-app-seti/setiathome_enhanced
        linux-vdso.so.1 =>  (0x00007fff5ef25000)
        libboinc_api.so.7 => /usr/lib/libboinc_api.so.7 (0x00007f5f886f5000)
        libboinc.so.7 => /usr/lib/libboinc.so.7 (0x00007f5f884a6000)
        libfftw3f.so.3 => /usr/lib/x86_64-linux-gnu/libfftw3f.so.3 (0x00007f5f880a2000)
        libssl.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f5f87e44000)
        libcrypto.so.1.0.0 => /usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f5f87a60000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f5f87758000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f5f874d6000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f5f872c0000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f5f870a3000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f5f86d1c000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f5f86b18000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f5f86900000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f5f88933000)



More information about the pkg-boinc-devel mailing list