F: Was ist CUDA, Stream und OpenCL?
A: Programmierplattform u.a. für GPU (Grafikprozessor), wobei CUDA von NVIDIA, Stream von AMD(ATI) kommt und OpenCL plattformübergeifend ist.
F: Brauche ich spezielle Software für den Betrieb des Clienten mit einer Grafikkarte?
A: Ja, den Grafikkartentreiber vom jeweiligen Hersteller der Grafikkarte und den pasenden Dnetc-Clienten, momentan nur als Beta hier erhältlich: http://www.distributed.net/download/prerelease.php
F: Auf welchen BS laufen die GPU-Clienten?
A: Meistens zuerst auf Linux, fast immer auf Windows und ab und an bei Max OSX, ist ja alles noch Beta
F: Ist der Betrieb von mehreren Clienten möglich?
A: Ja!

Dazu ist es erforderlich, einen CPU-Kern möglichst exklusiv an den GPU-Clienten zu binden, nur so entfaltet er seine volle Leistung.
F: Wie genau geht das?
A: Siehe folgende Beispiele:
1. Beispiel Steuerung mit launch.exe
Den Cuda-Clienten an einen Kern binden und den CPU-Clienten an die restlichen 1-3 Kerne.
ftp://ftp.heise.de/pub/ct/ctsi/launch16.zip
Mit launch.exe kann man ein Programm starten und es an bestimmte CPU-Kerne binden.
Z.B. so:
d:\programme\rc5-cpu
d:\programme\rc5-cuda
d:\programme\rc5-stream
d:\programme\rc5-lotto
da immer die launch.exe rein kopieren und jeweils eine Batchdatei erstellen mit folgendem Inhalt:
cd D:\programme\rc5-cpu
Launch.exe dnetc.exe /p="-multiok=1" /a=7
cd D:\programme\rc5-cuda
Launch.exe dnetc.exe /p="-multiok=1" /a=8
D.H. der Cuda-Client bekommt CPU-Kern 4 und der CPU-Client CPU-Kern 1-3, siehe folgende Tabelle
"-multiok=1"ist der Parameter für dnetc, der besagt das mehrere Clienten gleicheitig laufen können.
launch.exe dnetc-cuda.exe /a=8
startet den client nur auf Proz 4, wobei gilt:
1: Prozessor 1 0001
2: Prozessor 2 0010
3: Prozessor 1+2 0011
4: Prozessor 3 0100
5: Prozessor 1+3 0101
6: Prozessor 2+3 0110
7: Prozessor 1+2+3 0111
8: Prozessor 4 1000
9: Prozessor 1+4 1001
10:Prozessor 2+4 1010
11:Prozessor 1+2+4 1011
12:Prozessor 3+4 1100
13:Prozessor 1+3+4 1101
14:Prozessor 2+3+4 1110
15:Prozessor 1+2+3+4 1111
Achtung: Bei Umbenennen der dnetc.exe muß die .ini auch umbenannt werden! Also z.B. dnetc-cuda.ini

Die beiden Batchdateien in den Autostartordner und fertig.
Man kann auch launch.exe in den Systemordner kopieren, dann muß man aber die Pfade zu den Clienten angeben, bleibt also gehuppt wie gesprungen. ;-)
Beispiel 2:Z.B. ein 'process -a explorer.exe 10' im HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run Key, das das beim Hochfahren erledigt; der Explorer vererbt die Affinität dann an alles, was von da gestartet wird.
Also bei Dualcore eine 10, bei Triplecore eine 110, bei Quadcore eine 1110, wobei dann alles Programme/Prozesse, die dann gestartet werden, CPU ab Nr. 2 benutzen und die 1. bleibt für den GPU-Clienten.
"process.exe" bekommt man hier:
http://www.beyondlogic.org/consulting/processutil/processutil.htm
Hier noch eine kleine Erläuterung für die Aufteilung der Kerne bei process.exe:
01>>>1. Kern
11>>>1.+2. Kern
111>>1.+2.+3. Kern
1111>1.+2.+3.+4. Kern
10>>>2. Kern
110>>2.+3. Kern
1110>2.+3.+4. Kern
100>>3. Kern
1100>3.+4. Kern
1000>4. Kern
Oder alternativ für Mausschubser: CPU-Control
http://ge.koma-code.de/index.php?option=com_content&task=view&id=79&Itemid=94
Beispiel 3 für Linux:Der Befehl "taskset" unter Linux macht die Zuordnung von Processen zu beliebigen CPUs möglich.
Wer noch Vorschläge hat für die FAQ, immer her damit!
Legende: ;-)
F: = Frage
A: = Antwort