[BOINC] linux: compilazione ottimizzazione binari ottimizzati

Ho deciso di aprire un nuovo thread più ordinato e con più cose (piano piano aggiungerò il più possibile); pertanto se un mod rimuove dallo sticky l'altro thread e lo sostituisce con questo grazie . In questo thread compariranno guide di compilazione, chiarimenti sull'ottimizzazione e binari precompilati (spero di riuscire a compilarli staticamente) ottimizzati per diversi processori.

Per favore non fate danni!!! Soprattutto se operate da root e comunque non mi assumono alcuna responsabilità

Qualche domanda e risposta

  • E' necessario compilare il client e setiathome?
    No, si possono benissimo usare i binari che si trovano sul sito BOINC/Seti@home
  • Perché allora compilarsi il proprio client?!?
    Per due motivi principali: ottenere un calcolo più preciso dei claimed credits e ottenere un client che ragionevolmente sfrutti la potenzialità del proprio processore (i tempi di scaccolo non dipendono solo da questo però). Inoltre è istruttivo, è relativamente facile (provateci con winzoz se volete, personalmente prima o poi ci proverò); infine per un motivo sfizioso: si può!
  • Qualche paragone?
    Sono solo indicativi: su pentium3 733 MHz sono passato da una media di circa 33000 secondi con boinc 4.13 e setiathome 4.02 non compilati a circa 29000 con boinc 4.19 e setiathome 4.07 compilati a manina (12% in meno)
  • In questa guida c'è scritto il magico modo di nascondere i due processi boinc_client e setiathome?
    No, e non penso sia possibile se non con un'addomesticazione di un qualche rootkit che vada a modificare i programmi ps, uptime, top, etc, e di mezzo ci starebbe un exploit locale. Ricordo che comunque il client andrebbe fatto girare su pc su cui si ha il permesso (ottenetelo come volete - "è un software che controlla i virus sulle condivisioni samba per Windows" || "è un modo per non mandare la cpu in idle che altrimenti si rovina" || "è un programma di calcolo condiviso"). Un admin decente si accorge del processo in massimo due giorni...
  • Perché questa guida?
    E' il mio modo di dare una zampa al gruppo (oltre che a rullare )


Versioni BOINC e setiathome

boinc_client
4.19 stable

4.32 test

setiathome
4.07 stable

4.15 test


Ottimizzazioni (consigliate)

CFLAGS da passare a gcc: sono come scritto una riga più su consigliate da me quindi ognuno è libero di sceglierle/cambiarle/modificarle/suggerirle.
NOTA 1: -msse3 non è segnalato come un'opzione safe
NOTA 2: alcune opzioni potrebbero essere ridondanti ma specificarle non fa male

Athlon-xp (anche per Athlon64 32bit)

  • TOP: -march=athlon-xp -O3 -pipe -mmmx -msse -m3dnow -fomit-frame-pointer -ffast-math -funroll-loops
  • SICURE: -march=athlon-xp -O2 -pipe -mmmx -msse -m3dnow -fomit-frame-pointer

Athlon64/Opteron (solo 64bit e caldamente consigliato gcc 3.4)

  • TOP (gcc 3.4): -march=athlon64 -O3 -pipe -fomit-frame-pointer -ffast-math -funroll-loops
  • TOP (gcc 3.x): -march=k8 -O3 -pipe -fomit-frame-pointer -ffast-math -funroll-loops
  • SICURE (gcc 3.4): -march=athlon64 -O2 -pipe -fomit-frame-pointer
  • SICURE (gcc 3.x): -march=k8 -O2 -pipe -fomit-frame-pointer

Pentium4

  • TOP: -march=pentium4 -O3 -pipe -mmmx -msse -msse2 -fomit-frame-pointer -funroll-loops -ffast-math
  • SICURE: -march=pentium4 -O2 -pipe -mmmx -msse -fomit-frame-pointer
  • NOTA: se il pentium4 è un prescott e si usa gcc 3.4 è possibile specificare -march=prescott al posto di -march=pentium4

Intel EMT64 (non so come chiamarlo, la versione Intel di Athlon64 )

  • TOP (solo gcc 3.4): -march=nocona -O3 -pipe -mmmx -msse -msse2 -funroll-loops -fomit-frame-pointer -ffast-math
  • SICURE (solo gcc 3.4): -march=nocona -O2 -pipe -mmmx -msse -fomit-frame-pointer

Pentium-M (Centrino)

  • TOP (solo gcc 3.4): -march=pentium-m -O3 -pipe -mmmx -msse -msse2 -fomit-frame-pointer -ffast-math -funroll-loops
  • SICURE (solo gcc 3.4): -march=pentium-m -O2 -pipe -mmmx -msse -fomit-frame-pointer

Pentium3

  • TOP: -march=pentium3 -O3 -pipe -mmmx -msse -fomit-frame-pointer -ffast-math -funroll-loops
  • SICURE: -march=pentium3 -O2 -pipe -mmmx -msse -fomit-frame-pointer


Guide

  • Qui l'utente pippo senza acceso root compila boinc 4.19 e setiathome 4.07 sul suo pc athlon-xp ottimizzandolo al massimo e si fa un bello scriptino per startare e stoppare il client


Binari compilati

Per favore testateli (sono ottimizzati al massimo): per eventuali problemi mandatemi un pm, ma mandatemelo anche se vi funzionano giusto per avere un feed-back

BOINC 4.19 e setiathome 4.07 (linkati dinamicamente alle rispettive librerie libstdc++.so e libc): contengono 1) boinc_client 2) setiathome_4.07_$ARCH 3) relativo app_info.xml
Athlon64 (64bit) gcc 3.4 glibc 2.3.5


setiathome 4.07 con fftw3 (linkato staticamente libfttw3.so)
Questo client è compilato sfruttando le librerie Fast Fourier Transform: è come alimentare i criceti dei vostri pc a supernoccioline!!!
Pentium 4 gcc 3.2 glibc 2.3.1

Pentium 3 gcc 3.2 glibc 2.3.1

Athlon XP gcc 3.2 glibc 2.3.1
GRANDE !!

pregherei di discutere questo Topic in nuovi Topic, per cercare di sporcarlo il meno possibile

Cze
...questo thread è obsoleto... gli si può togliere l'attributo sticky...


Sono d'accordo.