Das Glossar der Crunchers@Freiburg rund um BOINC

Wir erklären hier einige immer wieder auftauchende Begriffe rund um BOINC. Falls etwas fehlen sollte, eine Erklärung falsch ist  oder einfach eine weitere gewünscht wird, teilt uns dies bitte mit: Kontakt

A

Account(< zurück)

Ein Account ist ein Konto eines Crunchers bei einem Projekt. Unter diesem Account werden die Hosts geführt, die ein User bei diesem Projekt verwendet.

Account key(< zurück)

Der Account key ist ein innerhalb eines Projektes eindeutiger Kontoschlüssel, der bei Clients vor Version 5 für die Anmeldung eines Projektes im Boinc-Client benötigt wird. Bei einigen Projekten kann er auch statt eMail mit Passwort für die Anmeldung auf den Projektseiten im Internet verwendet werden.

Anonymous platform(< zurück)

Möglichkeit zum Einbinden von optimierten Anwendungen zu einem am Hosts angemeldeten Projekt. Siehe "Optimized applications".

APP Treiber (Accelerated Parallel Processing Driver)(< zurück)

Dieser APP Treiber ermöglicht es, die ATI-Karten per OpenCL anzusprechen und zu nutzen. Das konnte man mit dem ATI Stream SDK wohl auch schon, mit dem neuen Treiber ist es jedoch einfacher.

B

Badge(< zurück)

Manche Projekte bieten verschiedene Anwendungen für unterschiedliche "Unter-Projekte". Meist kann man einstellen, von welchen dieser Unter-Projekte man Results geschickt bekommen möchte. Für das Erreichen eines bestimmten Creditwertes erhält man dann ein Badge, also sowas wie eine Medaille. Diese gibt es in unterschiedlichen Werten je nach erreichten Credits.

BOINC(< zurück)

Berkeley Open Infrastructure for Network Computing (BOINC) ist eine Entwicklung der University of California, Berkeley. Boinc ist aus dem ersten großen Verteiltes-Rechnen Projekt SETI@home I entstanden. SETI@home I (Search for ExtraTerestrial Intelligence) war eine Anwendung, die sowohl die Infrastruktur für verteiltes Rechnen bot als auch die wissenschaftliche Anwendung beinhaltete.
Der Infrastrukturteil wurde herausgelöst und so entstand Boinc, welches nun alle Funktionen für das Verteilen und Verwalten von Projektdaten und -programmen als auch für eine Teilnehmerverwaltung usw. bietet. Die ursprüngliche wissenschaftliche Anwendung wurde nach SETI@home II portiert und bedient sich nun der durch Boinc bereitgestellten Infrastruktur.

C

CAL(< zurück)

CAL ist die Abkürzung von Compute Abstraction Layer. ATI verwendet das, um seine GPU als Coprozessor zu nutzen. CAL bietet eine C-ähnliche Programmiersprache namens Brook+ als auch die Möglichkeit der Low-Level Programmierung der Hardware.

Bisher gibt es leider nur wenige Projekte, die ATI-GPUs verwenden können: Milkyway, DNETC und Collatz. Bei Milkyway können Karten aus den Reihen 38xx, 48xx, 58xx verwendet werden. Bei DNETC und Collatz finden auch viele andere Karten Verwendung.

 Seti und PrimeGrid benutzen OpenCL, also am besten den APP Treiber installieren.

GPUgrid untersucht die Möglichkeit, ATI-Karten zu verwenden. Wenn überhaupt, dann kommt aus Performancegründen wohl nur die 5870 zum Einsatz.

CC_Config.xml(< zurück)

In der CoreClient-Configuration Datei cc_config.xml können viele Konfigurationsmöglichkeiten eingetragen werden, die zum Beispiel für Tests und Fehlersuche verwendet werden, aber auch, um Optionen unterschiedlich zum voreingestellten Standardwert einzustellen.

Die Liste der Optionen und Schalter ist recht lang und kann bei Berkeley unter Client configuration nachgelesen werden.

Änderungen an der Datei können ohne Neustart des BoincClients mit dem Befehl "Extras -> Konfigurationsdatei lesen" übernommen werden.

Claimed credit(< zurück)

Claimed credit ist der Credit, den ein Host nach Fertigberechnen eines Results fordert. Meist ermittelt der Host diesen Wert aus den Benchmarks und der für das Result benötigten CPU time.
Siehe auch Granted credit.

Client(< zurück)

Mit Client bezeichnet man den Softwareteil "Boinc" von Berkeley. Dieser Client stellt all die Funktionen zur Verfügung, die ein Projekt benötigt, um Arbeitspakete (Results) an User zu verteilen.

Boinc.exe ist der Core-Client. Das ist ein im Hintergrund laufendes Programm. Der Core-Client steuert die Projektprogramme entsprechend der Vorgaben durch den User und kommuniziert mit den Projektservern.

Boincmgr.exe, der Boinc-Manager, stellt eine Benutzeroberfläche zur Verfügung, mit der der Core-Client gesteuert wird.

Cloud Computing(< zurück)

Cloud Computing ist ein Begriff aus dem IT-Management. Es bezeichnet ein Konzept, nach dem Anwendungen und Daten nicht mehr auf dem lokalen PC oder Server liegen, sondern irgendwo im Netzwerk, also in der "Wolke". Der Zugriff erfolgt über ein Netzwerk, üblicherweise also das Internet oder das Intranet.

Credits(< zurück)

Die Basis für das Boinc Credit System ist:
ein Rechner mit 1000 doppeltgenauen MIPS gemäß dem Whetstone Benchmark (hauptsächlich Fließkommaberechnungen) und 1000 VAX MIPS gemäß dem Dhrystone Benchmark (hauptsächlich Ganzzahlberechnungen) soll für einen Tag Rechenzeit 100 Credits erhalten.
Diese Benchmarkwerte werden für jeden Host alle 5 Tage neu ermittelt und bei den Computer-Details unter "Measured floating point speed" bzw. "Measured integer speed" gespeichert.
Aus diesen Benchmarks und der benötigten Rechenzeit für ein Result werden die Claimed Credits ermittelt.

Diese Credits hießen ursprünglich Cobblestones nach einem SETI-Mitarbeiter Jeff Cobb.

Auch wenn das Wort Credits den Eindruck vermittelt: kaufen kann man nichts dafür. Der SInn liegt einfach darin, zu zeigen, wieviel man für ein oder mehrere Projekte geleistet hat, also symbolische Anerkennung für erledigte Arbeit. Das fördert den Wettbewerbsgedanken und führt häufig wiederum dazu, noch mehr zu crunchen.

Cross Project Identifier (CPID)(< zurück)

Eine CPID wird verwendet, um Accounts verschiedener Projekte dem gleichen User zuordnen zu können. Dafür hätte auch die E-Mail Addresse benutzt werden können, aber das hätte Spammern Tür und Tor geöffnet.

Boinc verwendet folgendes System:

  • jedem Account wird beim Erzeugen des Accounts eine Zufallszeichenkette als interne CPID zugeordnet.
  • der Scheduler schickt in einer Antwort an den Client diese Account CPID, die E-Mail Adresse und den Erzeugungszeitstempel. Das wird in der Datei client_state.xml gespeichert.
  • wenn ein Boinc Client eine Anfrage an einen Scheduler schickt, durchsucht dieser die Accounts mit der der gleichen E-Mail Adresse, nimmt den Eintrag mit dem ältesten Erzeugungsdatum und schickt die dort gespeicherte CPID zurück.
  • erhält der Scheduler eine andere CPID als die bei ihm gespeicherte, speichert er diese neue CPID.
  • Benutzerdaten in den Statistikdateien enthalten einen Hash der E-Mail Adresse und der CPID. Diese externe CPID dient als eindeutige Zuordnung aller Accounts zu einer E-Mail Adresse.

Dieses System bietet somit eine Projekt-übergeordnete Identification basierend auf der E-Mail Adresse, ohne Informationen zu veröffentlichen, aus denen die E-Mail Adresse abgeleitet werden könnte.

Crunchers(< zurück)

Beschreibt eine Geisteshaltung (manche sagen auch Verrücktheit dazu), die sich in Besessenheit verwandeln kann. Cruncher müssen ihre Rechner immer auslasten und missbrauchen diese dazu, Zahlen zu verdrehen, zu rechnen, solange bis das Ergebnis passt. Der Proz schuftet also und der Cruncher streicht die Credits ein.

Echte Arbeitsteilung eben.

CUDA(< zurück)

Die Compute Unified Device Architecture, kurz CUDA genannt, ist eine von Nvidia entwickelte Technik zur Beschleunigung wissenschaftlicher und technischer Berechnungen. CUDA nutzt die enorme parallele Rechenleistung der zahlreichen Recheneinheiten des Grafikprozessors, welcher durch die CUDA-API quasi als Co-Prozessor zum Einsatz kommt.

Eine Übersicht über die CUDA-fähigen Grafikkarten findet ihr hier: CUDA enabled products. BOINC unterstützt CUDA ab der Version 6.4.5 und ein NVIDIA Treiber > 181.x wird auch noch gebraucht.

Die Liste der unterstützenden Projekte wächst ständig. Derzeit sind uns bekannt: Einstein@home, GPUGRID, SETI@Home, CollatzConjecture, DNETC, Lattice, Milkyway, Primegrid (Unterprojekt PPS Sieve, früher auch AP26) [Liste wird fortgesetzt].
Früher auch mal PicEvolvr

Schaut auch mal in unserem Forumsthread vorbei, vielleicht finden sich da noch mehr Informationen.

D

Deadline(< zurück)

Die Deadline gibt den Zeitpunkt an, zu dem ein Result fertig berechnet zurückgemeldet sein muss, damit Credits vergeben werden. Für ein nicht rechtzeitig zurückgemeldetes Result wird in der Regel ein neues verschickt.

Wird das vermisste Result nach der Deadline zurückgemeldet, dann bekommt man meist keine Credits mehr, es sei denn, dass noch kein Ersatzresult verschickt wurde.

Duration correction factor (DCF)(< zurück)

Ein Projekt versucht, für einen Host anhand der Zeiten für schon gerechnete Results die voraussichtlich benötigte Zeit immer besser abzuschätzen. Die serverseitig vorab geschätzte Zeit kann so auf spezifische Eigenheiten des Hosts angepasst werden. Dadurch soll vermieden werden, dass ein Host zuwenig oder zuviel Arbeit bekommt.

DCF startet mit dem Wert 1 und kann Werte von 0,01 bis 100 annehmen. Der Faktor wurde mit Boinc Version 5 eingeführt.

E

Earliest deadline first (EDF)(< zurück)

Ist der Client mit Results überladen (Projekte temporär angehalten, falscher DCF,...), dann geht er in den EDF-Zustand. Das bedeutet, dass die Results zuerst abgearbeitet werden, deren Rückmeldezeitpunkte als erste erreicht werden. Beeinflusst wird das auch noch durch den Wert der Resource shares der Projekte. Normalerweise wird dann auch das Nachfragen nach neuen Results solange eingestellt, bis der EDF-Zustand wieder verlassen wird.

F

Fixed credits(< zurück)

Fixed credits bedeutet, dass der Wert für Granted credits nicht anhand der CPU-Zeit und der Benchmarks ermittelt wird, sondern ein vorher schon festgelegter Wert für ein Result vergeben wird.
Grund für die Einführung von Fixed credits war wohl die Manipulation der Benchmarks und damit auch der Credits.

G

GPU(< zurück)

GPU ist die Abkürzung für Graphics Processor Unit, das ist die Hauptrecheneinheit auf einer modernen Grafikkarte. Eine GPU kann die CPU entlasten, indem Rechenarbeit nicht nur von der CPU, sondern auch von der Grafikkarte erledigt wird. Hat bei uns also nix zu tun mit Glawnoje Polititscheskoje Uprawlenije, einen Geheimdienst der Sowjetunion.

Die hauptsächlich verwendeten GPUs sind die CUDA-fähigen Grafikprozessoren von nVidia und die CAL-fähigen Grafikprozessoren von ATI.

Granted credit(< zurück)

Granted credit ist der vom Projekt für das Result vergebene Credit.

H

Host(< zurück)

Der Host ist der PC, auf dem Boinc und ein oder mehrere Projekte laufen.

I

Initial replication(< zurück)

Das ist die Anzahl Results, die für eine WU anfänglich verschickt wird.

K

Konto(< zurück)

Ein deutscher Begriff für Account.

Kontoschlüssel(< zurück)

Siehe Account key.

L

Long term debt (LTD)(< zurück)

Für jedes Projekt führt Boinc einen Wert für Long_term_debt mit, zu deutsch Langzeitschuld. Wenn für ein Projekt gerechnet wurde, dann wird der Wert verringert und die Werte der anderen Projekte entsprechend erhöht. Das passiert immer bei einem Ereignis wie z. B. Umschalten von einem Projekt auf ein anderes oder beim Beenden bzw. Starten eines Results.
Ist LTD für ein Projekt negativ, wird keine neue Arbeit angefordert, es sei denn, der Client hat keine Arbeit mehr und kein anderes aktives Projekt.

Die Summe der Long_term_debt aller Projekte eines Hosts ist immer 0. Die Werte verändern sich in Abhängigkeit von den Resource shares evtl. für jedes Projekt unterschiedlich. Die Long_term_debt-Werte stehen in der Datei client_state.xml jeweils bei den Projekt-Daten.

O

OpenCL(< zurück)

OpenCL ist die Kurzform von Open Computing Language. Damit soll man unabhängig von der Hardware werden, sodass eine Applikation ohne Änderungen CPUs und GPUs verschiedener Hersteller nutzen kann.
Seti und PrimeGrid nutzen diese Schnittstelle.

Optimized applications(< zurück)

Manche Projekte geben den Source ihrer Anwedung heraus, die dann von Tüftlern verbessert werden. Möglichkeiten hierbei sind Umstellungen in der Anwendung selbst, die Benutzung von CPU-spezifischen Befehlssätzen wie z. B. die verschiedenen SSE-Versionen mit den entsprechenden Compiler-Schaltern oder auch das Miteinbeziehen einer GPU.
Bei manchen Projekten werden diese optimierten Anwendungsprogramme automatisch installiert, oft müssen diese aber auch getrennt heruntergeladen werden. Das sind in der Regel zumindest eine .EXE, die getunte Anwendung, und eine Datei app_info.xml, in der ein paar Informationen zu der neuen Anwendungen stehen. Dieser Mechanismus wird beim Boinc-Start erkannt und gemeldet als "anonymous platform".
Zur Installation der optimierten Anwendung wird Boinc gestoppt, die heruntergeladenen Dateien werden ins entsprechende Projektverzeichnis kopiert (z. B. nachD:\Boinc_Data\projects\setiathome.berkeley.edu) und danach Boinc wieder gestartet.

P

Punkte(< zurück)

Ein deutscher Begriff für Credits.

Q

Quorum(< zurück)

Das Quorum beschreibt die erforderliche Anzahl Results, deren Ergebnisse übereinstimmen müssen. Ein Quorum von zwei bedeutet, dass zwei gültige Results zurückgemeldet werden müssen, die im Ergebnis gleich sein müssen, damit die WU als erfolgreich berechnet gilt.

R

RAC(< zurück)

Recent average credits, kurz RAC, zeigt die Credits an, die ein User, ein Host oder auch ein Team durchschnittlich an einem Tag erarbeitet. Bei der Berechnung werden aktuell erhaltene Credits stärker gewichtet als ältere. Die Halbwertszeit ist eine Woche.
Einige Statisikseiten errechnen jeweils eigene RACs mit evtl. abweichenden Parametern.

Resource share(< zurück)

Auf den meisten Hosts laufen mehrere Projekte. Mit Hilfe des Parameters "Resource share" kann gesteuert werden, wieviel Zeit ein Projekt bekommt im Vergleich zu den anderen.

Result(< zurück)

Ein Result ist ein Arbeitspaket eines Projektes für einen Host. Häufig wird auch der Begriff WU dafür verwendet, was jedoch nicht immer korrekt ist. Siehe WU.

S

Scheduler(< zurück)

Der Scheduler ist ein Programm auf dem Projektserver, welches die Kommunikation mit den Clients steuert, also z. B. Results an den Client verschickt oder von diesem zurückgemeldet bekommt.

Short term debt (STD)(< zurück)

Für jedes Projekt führt Boinc einen Wert für Short_term_debt mit, zu deutsch Kurzzeitschuld. Projekte mit hoher Short_Term_debt werden beim Umschalten von einem Projekt auf ein anderes bevorzugt.

Short_term_debt ist 0 für Projekte ohne Results.

Die Summe der Short_term_debt aller Projekte eines Hosts ist immer 0. Die Werte verändern sich in Abhängigkeit von den Resource shares evtl. für jedes Projekt unterschiedlich. Die Short_term_debt-Werte stehen in der Datei client_state.xml jeweils bei den Projekt-Daten.

T

Team(< zurück)

Ein User kann ein Team gründen, dem dann andere User beitreten können. Alle Credits, die ab dem Beitritt zu einem Team erarbeitet werden, werden auch dem Teamkonto gutgeschrieben.
Das Team gilt jeweils für das Projekt, in dem es gegründet wurde. Das heißt auch, dass ein Benutzer einem Team bei jedem neuen Projekt neu beitreten muss.
Zu einem Team können eine Beschreibung und auch eine URL angegeben werden.

Durch Einführung von Teams wird der Wettbewerbsgedanke vom User auf Teams erweitert.

Team founder(< zurück)

Der User, der ein Team gründet. Er kann die Teaminfos speichern und ist der einzige, der die E-Mail Adressen der Teammitglieder einsehen kann.
Die Eigenschaft "Team founder" kann auch auf ein anderes Teammitglied übertragen werden.

Trickle(< zurück)

Mit Hilfe von Trickles kann ein Client dem Server Informationen über den Fortschritt eines Results mitteilen. Dies ist inbesondere bei sehr lange laufenden Results wie z. B. von Climateprediction hilfreich, damit zum einen der Projektserver weiß, dass der Client das Result noch bearbeitet und wie weit er damit ist, zum anderen bekommt der User nach einer Trickle-Meldung auch entsprechende Credits gutgeschrieben und muss nicht warten, bis das Result komplett fertig ist.

V

Validator(< zurück)

Der Validator ist ein Prozess auf dem Projektserver. Er überprüft die zurückgemeldeten Results auf Gültigkeit, indem er z. B. die Results einer WU miteinander vergleicht.

W

Walltime(< zurück)

Die Walltime ist die Zeit, die während des Bearbeitens eines Results vergeht. Das entspricht bei einer 100% Auslastung eines Prozessorkerns auch der CPU time. Jedoch haben nicht alle Projekte diese Vollauslastung, insbesondere bei Projekten, die eine GPU verwenden, ist die Walltime größer als die CPU time.

Work Unit (WU)(< zurück)

Eine Work Unit besteht aus einem oder mehreren Results. Die Anzahl Results hängt ab vom benötigten Quorum und wird größer, wenn ein Result ungültig ist oder nicht innerhalb der Deadline zurückgemeldet wurde.