Optimierter BOINC-Client

Aus Planet 3DNow! Distributed Computing Wiki
Zur Navigation springen Zur Suche springen

Wozu der optimierte Client gut ist

Projekte, die den BOINC Client nutzen, bauen ihr Creditsystem darauf auf, die Rechenleistung der CPU zu ermitteln, um die Arbeit, die euer System leisten kann, angemessen zu entlohnen. Das ist wie mit einem Restaurant: Je besser der Koch, und damit evtl. auch das Essen, desto teurer ist es.

Manche Projekte nutzen nun CPU spezifische Erweiterungen wie MMX, SSE, SSE2, SSE3, etc die es ihnen erlaub das Maximum aus eurer CPU herauszuholen. Damit einher geht natürlich, dass eure WUs schneller abgearbeitet werden.

Im Gegensatz hierzu nutzt der BOINC Client bei seinem Benchmark keinerlei CPU Erweiterungen. Er ermittelt also nicht die wahre Leistungsfähigkeit eures Systems.

So und jetzt die Auflösung, wie das miteinander zusammenhängt: Für gewöhnlich werden bei BOINC Projekten die claimed Credits - also die Credits, die ihr für eure Arbeit haben wollt - aus der Dauer und der Leistungsfähigkeit eurer CPU berechnet. Also ähnlich der Physik:

geleistete Arbeit = Leistung * Zeit

Wie die Formel für die einzelnen Projekte genau aussieht ist meist unbekannt. Aber allen gemein ist, dass man für weniger CPU-Zeit weniger Credits bekommt. Somit also auch ihr, da ihr ja schneller wart.

Und hier kommt nun der optimierte Client zum Zuge: Dieser passt den Benchmark an, so dass er auch die CPU Erweiterungen berücksichtigt.

Der optimierte Client, beschleunigt somit nicht die Berechnung, sondern sorgt lediglich für die "korrekte" Entlohnung.

Von Indiana_74 http://www.planet3dnow.de/vbulletin/showpost.php?p=3264241 >>> Diese Versionen wurden vor allem / ausschließlich dazu entwickelt, um die Creditsvergabe bei SETI "gerechter" zu gestalten. Wenn man eine von den selben Programmieren erstellte SETI-Anwendung nutzte welche die WUs erheblich schneller berechnete als die originale Version. Durch die schnellere Berechnung kommt hierbei das Benchmark zu Rechenzeitverhältnis aus dem Gleichgewicht und man bekam für eigentlich mehr geleistete Arbeit weniger Credits.

Nun ist SETI nicht das einzige Projekt welches eine Benchmarkbasierte Creditsvergabe vornimmt wohl aber mit das einzige für welches es auch die optimierten Anwendungen gibt. <<<

Bei Projekten welche keine CPU Erweiterungen unterstützten kommt es zur einer überzogenen Creditanfoderung welches im allgemeinen als Cheaten angesehen wird, da diese dann nicht korrekt ist.

Da die meisten User den Standard Boinc Client verwenden ergibt sich für die Nutzer des "Optimierten" Clients ein unfaire Vorteil. Die Aussage, es könnte jeder ihn verwenden, ist in sofern nicht akzeptabel, da einige Projekte die Verwendung nicht akzeptieren oder dulden. Aktive Gegenmaßnahmen werden nur selten getroffen wegen Zeitmangel bei den Verantwortlichen.

Meistens werden Fixed Credits oder eine Projekt eigene Art der Rechenleistungs ermittlung (z.B. FLOP-Zähler) dann eingeführt oder von Anfang an verwendet.


Noch eine Anmerkung

Da es immer mal wieder Diskussionen um die Verwendung des opt. Clients gibt hier nochmal der Hinweis:

Die Verwendung des Clients wird von P3D nicht empfohlen.

Empfohlen wird ausschließlich der offizielle Client, den man bei Berkeley herunterladen kann.

Auswahl der passenden Version des optimierten Clients

Nicht alle CPUs unterstützen alle SIMD-Erweiterungen. Welche CPU welche Erweiterungen unterstützt, ist im Detail bei Wikipedia nachzulesen.

Die SIMD-Unterstützung der wichtigsten CPUs:

  • MMX
    • AMD: ab AMD K6
    • Intel: ab Intel Pentium MMX
  • SSE
    • AMD:
      • alle Athlon XP
      • Duron: ab Morgan-Kern
    • Intel:
      • Pentium III: ab Coppermine-Kern
      • Celeron: ab Coppermine-Kern
  • SSE2
    • AMD:
      • alle Athlon 64
      • alle Opteron
      • Sempron: ab Paris-Kern
      • alle Turion 64
    • Intel:
      • alle Pentium 4
      • Celeron: ab Willamette-Kern
  • SSE3
    • AMD:
      • Athlon 64: ab Venice-Kern Revision E3 bzw. San Diego-Kern Revision E4
      • Opteron: ab Revision E4
      • Sempron: ab Palermo-Kern Revision E3
      • alle Turion 64
    • Intel:
      • alle Prozessoren der Core-Architektur
      • Pentium 4: ab Prescott-Kern
      • Celeron: ab Conroe-L-Kern
      • Celeron M: ab Yonah-Kern
      • Xeon: ab Nocona-Kern

Programme wie CPU-Z können ebenfalls ermitteln welche SIMD-Erweiterungen unterstützt werden.

Unter Linux reicht ein Blick in die CPU-Info:

cat /proc/cpuinfo

Interessant sind hierbei die Flags:

flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush 
mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni
cx16 lahf_lm cmp_legacy svm extapic cr8legacy ts fid vid ttp tm stc

Wenn das pni Flag vorhanden ist, unterstützt die CPU SSE3

Bezugsquellen für den optimierten Client

Installation des optimierten Clients

  1. Installiere BOINC (Anleitung)
  2. Lade den für deine CPU und die installierte BOINC-Version passenden Client herunter
  3. Beende BOINC
  4. Entpacke das Archiv und ersetzte mit den entpackten Dateien die Dateien im BOINC-Programmverzeichnis (unter Windows meist C:\Programme\BOINC\)
  5. Starte BOINC neu und führe den Benchmark erneut durch (Extras -> Benchmark ausführen)

Links