PRPnet

Aus BC-Wiki
Zur Navigation springen Zur Suche springen

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
GFN=32768 CPU Only -> Migrated to BOINC
GFN=65536 CPU Only -> Migrated to BOINC
GFN=262144 genefercuda.exe
geneferopencl.exe
Limit mit beiden Anwendungen erreicht, CPU Only -> Migrated to BOINC
GFN=524288 genefercuda.exe
geneferopencl.exe
Cuda benötigt nahezu keine CPU-Last, OpenCL einen halben CPU-Kern -> Migrated to BOINC
WIEFERICH wwwwcl32.exe
wwwwcl64.exe
OpenCL -> Migrated to BOINC
WALLSUNSUN wwwwcl32.exe
wwwwcl64.exe
OpenCL -> Migrated to BOINC
121 llrCUDA.exe nutzt vollen CPU-Kern -> Ended Apr 2021
27 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
Factorial Prime Search (FPS)
prpnet.primegrid.com:12002
Migrated to BOINC
Primorial Prime Search (PRS)
prpnet.primegrid.com:12008
Migrated to BOINC
Riesel Prime Base 2 Search
noprimeleftbehind.net:2000
24h 18th Drive / Server von NPLB
Riesel Prime Base 2 Search
noprimeleftbehind.net:9000
24h 17th Drive / Server von NPLB
Riesel Prime Base 2 Search
noprimeleftbehind.net:1468
24h 19th Drive / Server von NPLB
Riesel Prime Base 2 Megaprime Search
noprimeleftbehind.net:1400
24h High-n Drive / Server von NPLB
CRUS misc work
noprimeleftbehind.net:1300
Offline Server von CRUS-Projekt
Twin Prime Search (n=333444)
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.