PRPnet
Download/Entpacken
Installation
Erklärung für Quadcore-Prozessoren:
- 1. 4-quad-install-prpclient.bat ausführen
- Verzeichnisstruktur sollte jetzt so aussehen...
- programs
- prpclient-1
- prpclient-2
- prpclient-3
- prpclient-4
Jedes Verzeichnis jeweils für 1 Kern
- prpclient.ini bearbeiten
- email=
- userid=
clientid=(bis prpnet 5.2.8)- machineid= (ab prpnet 5.3.0)
- instanceid= (ab prpnet 5.3.0)
- teamid=BOINC_Confederation
- Server Bsp:
- FPS:0:1:prpnet.primegrid.com:12002
- Erklärung:server=Projekt:ResourceShare:Anzahl Arbeitspakete:ServerIP:Port
- Wichtig! Der ResourceShare muss immer 100 ergeben, will man nur 2 Server ansteuern, kann man einen auf 100 und einen auf 0 setzen, 0 bedeutet, falls keine Arbeit da ist auf den nächsten wechselt.
- Falls keine 100 erreicht werden, öffnet sich kurz das Fenster und es schließt sich gleich wieder!
Start
- 4-quad-start-prpclient.bat ausführen
- Es öffnen sich 4 Fenster, Arbeit wird angefordert und er rechnet los. Man sollte die Datei nur einmal anklicken ansonsten gehen wieder 4 Fenster auf und man rechnet mit 8.
- Trick für BOINC nebenher laufen lassen: BOINC=1 Kern rechnen lassen, alle anderen WUs pausieren
- PRPnet vorher beenden lassen
- 1-single-start-prpclient.bat kopieren (insgesamt 4x)
Inhalte sollte dann so aussehen:
ECHO
cd prpclient-1
start "prpclient-1" /MIN prpclient.exe
EXIT
- 1-single-start-prpclient - 2.bat
ECHO
cd prpclient-2
start "prpclient-2" /MIN prpclient.exe
EXIT
- 1-single-start-prpclient - 3.bat
ECHO
cd prpclient-3
start "prpclient-3" /MIN prpclient.exe
EXIT
- 1-single-start-prpclient - 4.bat
ECHO
cd prpclient-4
start "prpclient-4" /MIN prpclient.exe
EXIT
Somit kann man einzelne freie Kerne, die in BOINC nicht benötigt werden dem PRPnet client zuweisen.
Update
- 4-quad-update-prpclient-ini.bat ausführen
- Alle Änderungen die man in der "master_prpclient.ini" macht werden in alle 4 Verzeichnisse in Echtzeit übertragen (prpclient.ini)
- instanceid= muss danach in den Verzeichnissen aktualisiert werden. Es können keine zwei Instanzen mit den gleichen ID laufen.
Beenden
- prpclient.ini im jeweilige Verzeichnis bearbeiten
- Startoptionen:
- // 0 - prompt
- // 1 - Return completed work units, abandon the rest, then get more work
- // 2 - Return completed work units, abandon the rest, then shut down
- // 3 - Return completed, then continue
- // 4 - Complete in-progress work units, abandon the rest, then get more work
- // 5 - Complete in-progress work units, abandon the rest, then shut down
- // 6 - Complete all work units, report them, then shut down
- // 9 - Continue from where client left off when it was shut down
startoption=9 einstellen
- Stopoptionen:
- // 0 - prompt
- // 2 - Return completed work units, abandon the rest, then shut down
- // 3 - Return completed work units (keep the rest), then shut down
- // 5 - Complete in-progress work units, abandon the rest, report them, then shut down
- // 6 - Complete all work units, report them, then shut down
- // 9 - Do nothing and shut down (presumes you will restart with startoption=9)
stopoption=9 einstellen
- Stop erweitert:
- // 0 - Continue processing work units
- // 2 - Return completed work units and abandon the rest
- // 3 - Return completed work units (keep the rest)
- // 6 - Complete all work units and return them
stopasapoption=6, für alles fertigrechnen dann Client beenden, es werden keine neuen Pakete gezogen
Wenn der Client in diesem Verzeichnis später wieder starten soll, einfach stopasapoption=0 setzen bevor der Client gestartet wird.
GPU (CUDA und OpenCL)
- Es können nur Double Precision Karten (CUDA Compute Capability 1.3 und höher) verwendet werden.
- llrCUDA kann nur auf 64bit Betriebssystemen eingesetzt werden.
- Minimum Nvidia-Treiber: 260.99
- Sinnvoll ist, analog zur Installation für die CPU, ein weiteres Verzeichnis für die Grafikkarte anzulegen. Es ist aber auch möglich, ein vorhandenes CPU-Verzeichnis zu nutzen (indem dann allerdings nicht mehr mit der CPU gerechnet werden kann).
- Folgende Dateien müssen aus dem programs-Ordner (oder von hier und hier) bei der Nutzung von genefercuda in das Verzeichnis kopiert werden:
- cudart32_32_16.dll, cufft32_32_16.dll (x86, ab Nvidia Treiber 260.99 mit CUDA 3.2 Unterstützung)
- cudart64_32_16.dll, cufft64_32_16.dll (x64, ab Nvidia Treiber 260.99 mit CUDA 3.2 Unterstützung)
- cudart32_40_17.dll, cufft32_40_17.dll (x86, ab Nvidia Treiber 270.64 mit CUDA 4.0 Unterstützung)
- cudart64_40_17.dll, cufft64_40_17.dll (x64, ab Nvidia Treiber 270.64 mit CUDA 4.0 Unterstützung)
- cudart32_50_35.dll, cufft32_50_35.dll (x86, ab Nvidia Treiber 306.97 mit CUDA 5.0 Unterstützung)
- cudart64_50_35.dll, cufft64_50_35.dll (x64, ab Nvidia Treiber 306.97 mit CUDA 5.0 Unterstützung)
- cudart32_55.dll, cufft32_55.dll (x86, ab Nvidia Treiber 320.18 mit CUDA 5.5 Unterstützung)
- cudart64_55.dll, cufft64_55.dll (x64, ab Nvidia Treiber 320.18 mit CUDA 5.5 Unterstützung)
- Außerdem müssen die Dateien cufft64_32_16.dll und cudart64_32_16.dll für llrCUDA verwendet werden.
- Einige Projekte benötigen leider trotzdem einen vollen CPU-Kern, bei diesen sollte man also entsprechend einen Kern freihalten.
- Die prpclient.ini im Verzeichnis muss folgendermaßen geändert werden:
- // geneferexe=geneferopencl.exe --> geneferexe=geneferopencl.exe (Kommentare entfernen, aktivieren)
- llrexe=llr.exe --> // llrexe=llr.exe (auskommentieren, deaktivieren)
- darunter: llrexe=llrCUDA.exe (hinzufügen)
- wwwwexe=wwwwcl32.exe oder wwwwexe=wwwwcl64.exe
- Folgende Projekte können nun prinzipiell gerechnet werden:
PRPnet-Projekt | Anwendung | Status |
---|---|---|
CPU Only -> Migrated to BOINC | ||
CPU Only -> Migrated to BOINC | ||
genefercuda.exe geneferopencl.exe |
Limit mit beiden Anwendungen erreicht, CPU Only -> Migrated to BOINC | |
genefercuda.exe geneferopencl.exe |
Cuda benötigt nahezu keine CPU-Last, OpenCL einen halben CPU-Kern -> Migrated to BOINC | |
wwwwcl32.exe wwwwcl64.exe |
OpenCL -> Migrated to BOINC | |
wwwwcl32.exe wwwwcl64.exe |
OpenCL -> Migrated to BOINC | |
llrCUDA.exe | nutzt vollen CPU-Kern -> Ended Apr 2021 | |
llrCUDA.exe | nutzt vollen CPU-Kern -> Ended Mar 2022 | |
Riesel Prime Search (NPLB) | llrCUDA.exe | nutzt einen halben CPU-Kern |
TPS (NPLB) | llrCUDA.exe | nutzt einen halben CPU-Kern |
Multithreading LLR
Windows
Ab der LLR Version 3.8.20 ist es möglich, das ein Prozess mehrere CPU Kerne nutzt. Über einen kleinen Umweg, kann man das auch für PRPNet nutzen.
Die entsprechende LLR (Console Application) findet man bei Jean Penné
1.) Man erstellt im Client-Verzeichnis eine bat-Datei, z.b. cllr64.bat:
Inhalt:
@cllr64.exe -t2 %*
Wobei t die Anzahl der zu verwendenden Threads ist.
2.) Dann in der prpclient.ini folgende Line anpassen:
llrexe=cllr64.bat
Anstatt die llr.exe wie vorher direkt aufzurufen, wird die .bat Datei ausgeführt und der Thread-Parameter mit übergeben.
Linux
Hier ist das vorgehen ähnlich. Man erstellt im Client-Verzeichnis eine .sh Datei.
Inhalt:
./llr64 -t2 "$@"
Wobei t die Anzahl der zu verwendenden Threads ist.
2.) Die sh. Datei ausführbar machen: chmod +x scriptname.sh
3.) In der prpclient.ini folgende Line anpassen:
llrexe=./scriptname.sh
LLR2
Mit diesem Weg ist es somit auch möglich, LLR2 mit PRPNet zu nutzen, was bei der Nutzung des Gerbicz-Check (um Hardware-Fehlern vorzubeugen) eine erheblich bessere Performance hat. Hierbei ist aber zu achten, das neben den llr2 Binaries (Download aus dem zugehörigen LLR2 Github Repository) auch der Aufruf angepasst werden muss, da bei LLR2 im Gegensatz zu LLR (seit Version 4.0.1) der Gerbicz Check standardmäßig nicht aktiv ist:
Die Zeile müsste dann unter Windows heißen: @llr2.exe -t2 -oGerbicz=1 %*
Die Zeile müsste dann unter Linux heißen: ./llr2_64 -t2 -oGerbicz=1 "$@"
Aufgrund eines Parsing Erros sollte bei der Nutzung von LLR2 die PRPNet-Client Version auch mindestens auf 5.5.1 angehoben werden. Die PRPNet-Binaries findet man auf Sourceforge.
Multithreading PFGW
Gleiches gilt für PFGW. Hier muss mindestens die Version 4.0.0 genutzt werden. Der Download ist im Projektordner auf Sourceforge zu finden: OpenPFGW Files
1.) Das Prinzip ist hier gleich (bat-Datei erstellen), aber die Notation etwas anders:
Inhalt:
@pfgw64.exe %* -T4
Wobei T die Anzahl der zu verwendenden Threads ist.
2.) Dann ebenso in der prpclient.ini folgende Line anpassen:
pfgwexe=pfgw64.bat
PRPNet Server List
PRPnet-Projekt Server:Port |
Laufzeit/ Runtime |
Deadline | Status |
---|---|---|---|
Riesel Prime Base 2 Search k=601-1001 noprimeleftbehind.net:2000 |
24h | 18th Drive / Server von NPLB | |
Riesel Prime Base 2 Search k=401-599 noprimeleftbehind.net:9000 |
24h | 17th Drive / Server von NPLB | |
Riesel Prime Base 2 Search k=311-399 noprimeleftbehind.net:1468 |
24h | 19th Drive / Server von NPLB | |
Riesel Prime Base 2 Search k<300 for n>2M noprimeleftbehind.net:4000 |
24h | Server für RPS | |
Twin Prime Search (n=480480) tps.dnshome.de:7100 |
24h | Server von TPS-Projekt | |
Twin Prime Search (n=1.7M) noprimeleftbehind.net:12000 |
24h | Server von TPS-Projekt | |
Twin Prime Search (n=3.322M) noprimeleftbehind.net:13000 |
24h | Server von TPS-Projekt |
Stats/Statistik
PRPNet Statistiken von Primegrid
PRPNet Statistiken von NPLB (Port Report)
Primegrid Credits/PSA-Badge
- PRPNet Credits bei Primegrid werden nur selten im Monat gutgeschrieben, normalerweise 1x pro Woche. Gesamtcredits für PRPnet stehen dann ganz unten unter PSA im Account. Wie bei den Sieve-Projekten gibt es Bronze erst ab 20000, die Credits werden hier manuell umgerechnet.
Tipps
- Zuweisung bestimmter Projekte auf einen Kern/Client: Hierzu muss lediglich die "prpclient.ini" des jeweiligen Clients bearbeitet werden + Server aktivieren, somit könnte man 2 Projekte pro Client zuweisen
- Ausrechnen aller WUs dann Fenster schließen: Besser als das ständige Umändern der start/stop Optionen ist einfach die Server alle deaktivieren.