Prime95

Prime95/MPrime


Prime95 bei der Probedivision
Basisdaten

Entwickler George Woltman
Aktuelle Version 26.6
(9. April 2011)
Betriebssystem Windows (Prime95), Mac OS X (Prime95), Linux (MPrime), FreeBSD
Programmier­sprache C, ASM86
Kategorie Primzahltester, besonders für Mersenne-Primzahlen; Benchmark
Lizenz Freeware, aber Kopplung an PrimeNet falls Suche nach Mersenne-Primzahlen
deutschsprachig nein
http://www.mersenne.org/

Prime95 [praɪmˈnaɪntifaɪv][1] (prime95.exe) ist ein Programm für Windows und Mac OS X zum Testen der Primalität einer Mersenne-Zahl mit Hilfe des sogenannten Lucas-Lehmer-Tests. Es wird von GIMPS, der großen Internet Mersenne-Primzahl Suche, angeboten und von George Woltman entwickelt. Die Linux-basierte Version wird MPrime [empraɪm][1] genannt.

Die neun größten bekannten Primzahlen wurden mit Hilfe von Prime95 gefunden[2]. Rekordhalter ist die am 23. August 2008 gefundene und mit 100.000 US-Dollar von der Electronic Frontier Foundation prämierte erste bekannte Primzahl mit mehr als 10 Millionen Stellen: . Ein Teil dieser Prämie wird an die Teilnehmer ausgeschüttet.[3]

Das Programm verfügt über eine der schnellsten bekannten Implementierungen für Multiplikationen, in dem es hochoptimierten Prozessor-Code zur Durchführung von schnellen Fourier-Transformationen verwendet. Die zugehörigen Routinen stehen als gwnum-Bibliothek zur Verfügung und werden von einigen anderen Programmen eingesetzt. Die Bibliothek ist frei nutzbar, jedoch müssen bei der Suche nach Mersenne-Primzahlen die Projektbedingungen eingehalten werden.[4]

Einsatzzwecke

Das Programm kann als Client für das PrimeNet, einer von GIMPS betriebenen zentralen Datenbank für Mersenne-Zahlen, betrieben werden. Es verbindet sich dann in regelmäßigen Abständen mit dem PrimeNet-Server, um neue Arbeit anzufordern und fertige Ergebnisse abzuliefern. Die Berechnung erfolgt auf der CPU, während diese ungenutzt ist. Eine offizielle Unterstützung für GPUs existiert noch nicht, mit CUDALucas (Lucas-Lehmer-Test) und mfaktc (Probedivision) existieren allerdings zwei CUDA-fähige Programme, deren Ergebnisse vom Server ebenfalls akzeptiert werden. Das PrimeNet verfügt mit Stand vom Herbst 2010 über etwa 50 Teraflops Rechenleistung[5].

Des Weiteren wird es gerne bei Overclocking als Stabilitätstest eingesetzt, da das Programm die CPU maximal auslastet und über interne Plausibilitätsprüfungen verfügt, die hardwarebedingte Rechenfehler offenbaren.

Zudem kann das Programm als Benchmark verwendet werden. Die Ergebnisse können allen zum Vergleich öffentlich gemacht werden.

Faktorisierungsmethoden und Primzahltest

Prime95 kann zur Faktorisierung von Zahlen der Form benutzt werden. Im Normalfall sucht es jedoch nur nach Mersenne-Primzahlen, für die a=1, b=2 und d=-1 gilt, mit Exponent c prim.

Das Programm unterstützt drei Faktorisierungsmethoden:

  1. Probedivision
  2. P-1
  3. Elliptic Curve Method
Probedivision
Exponent bis zu Obergrenze Faktoren
3.960.000 260
5.160.000 261
6.515.000 262
8.250.000 263
13.380.000 264
23.390.000 265
29.690.000 266
37.800.000 267
47.450.000 268
58.520.000 269
75.670.000 270
96.830.000 271

Die ersten beiden Faktorisierungsmethoden werden dem eigentlichen Primzahltest, dem sogenannten Lucas-Lehmer-Test, vorgeschaltet, um vergleichsweise kleine Faktoren zu finden und somit den rechenaufwendigen Primzahltest zu vermeiden. Sollte dieser Test ergeben, dass die Zahl zusammengesetzt ist, kann mit der ECM-Methode weiter nach Faktoren mit einer Länge bis etwa 60 Stellen gesucht werden. Hiernach wird zum Zahlkörpersieb übergegangen, das vom BOINC-Projekt NFS@Home angeboten wird.

Im Normalfall erfolgt die Zuweisung von zu testenden Zahlen automatisch durch PrimeNet. Die Grenze, bis zu der Faktoren im Rahmen der der Probedivision gesucht werden, ist abhängig von der zu testenden Zahl und steigt mit ihrer Größe an (siehe Tabelle). Derzeit (April 2011) liegen die Zuweisungen für Probedivisionen im Bereich von 56 Millionen als Exponent mit einer Obergrenze für Faktoren bei 269 (ca. 21 Stellen). Da der Aufwand der Probedivision nur von der Größe des Faktors abhängt, ist das Verfahren durch die Verdopplung der Testintervalle für größere Faktoren ungeeignet. Es benötigt im Vergleich zu den beiden anderen Verfahren jedoch kaum Arbeitsspeicher.

Das P-1-Verfahren erfolgt im Anschluss an die Probedivision und findet mittelgroße Faktoren, die stark zusammengesetzt sind. Man weiß, dass mögliche Faktoren q von den Aufbau haben müssen.[6] Der Teil k ist hierbei meist selbst zusammengesetzt. Das Verfahren findet den Faktor q, solange alle Faktoren von k kleiner als die sogenannte B1-Grenze sind (Stufe 1) oder alle bis auf einen kleiner als B1 und der verbleibende letzte Teilfaktor von k kleiner als die sogenannte B2-Grenze ist (Stufe 2, mit B2≈30*B1). Der Aufwand ist abhängig von der Größe des Exponenten sowie der Wahl von B1 und B2. Stufe 2 benötigt viel Arbeitsspeicher.

Die ECM erfolgt nach dem Lucas-Lehmer-Test und findet große Faktoren. Die Exponenten aus der automatischen ECM-Zuweisung sind derzeit siebenstellig. Eine Zuweisung erfolgt nur nach entsprechender Einstellung in Prime95 oder manueller Anforderung über die Projekt-Webseite. Es verfügt ebenfalls über eine B1- und B2-Grenze (B2=100*B1). Auch hier benötigt Stufe 2 viel Arbeitsspeicher.

Programmoptionen

Arbeitstypen unter Worker Windows
Abkürzung Bedeutung
GIMPS was Sinn macht (Serverwahl, Standardeinstellung)
TF Probedivision
TF-LMH Probediv. LMH(Lone Mersenne Hunters), kleine Faktoren
PM1-L Faktorisierung P-1, große Expon. (vor Lucas-Lehmer)
PM1-S Faktorisierung P-1, kleine Exponenten (zukünftig)
LL LL (Lucas-Lehmer) Ersttest
LL-WR LL Test, Weltrekordgröße
LL-10M LL Test, mehr als 10 Millionen Stellen
LL-100M LL Test, mehr als 100 Millionen Stellen
LL-NF LL Test ohne vorherige Faktorisierung
D LL Zweittest
ECM Faktorisierung per ECM, kleine Exponenten
ECM-F Faktorisierung per ECM von Fermatzahlen
Ergebnistypen
Abkürzung Bedeutung
F faktorisiert durch Probedivision
F-PM1 faktorisiert durch P-1
F-ECM faktorisiert durch ECM
NF kein Faktor durch Probedivision
NF-PM1 kein Faktor durch P-1
NF-ECM kein Faktor durch ECM
C LL Test zusammengesetzt
P LL Test prim

Auf der Projekt-Webseite kann in den Worker Windows festgelegt werden, welche Art von Arbeit man erhalten möchte, zum Beispiel ein Faktorisierungsverfahren oder den Lucas-Lehmer-Test. Dies kann auch im Programm selbst vergenommen werden. Unter Status sieht man die Arbeiten, die man erhalten hat, sowie die erwarteten Vervollständigungsdaten. Die Arbeiten werden in der Datei worktodo.txt gespeichert. Bei Unreserve Exponent kann man einen Exponenten freigeben. Die Prozentzahl einer erledigten Arbeit wird automatisch an GIMPS weitergeleitet, man kann sie jedoch auch im Programm bei Manual PrimeNet Communication (Advanced → Manual Communication...) manuell zur Website schicken, indem man ein Häkchen bei Send new expected completion dates to server setzt. Dabei werden die neuen Vervollständigungsdaten zum Server geschickt.

Man kann mit dem Programm anonym oder mit einem GIMPS-Account arbeiten. Der Account sowie der Computername muss im Fenster Configure PrimeNet (Test → PrimeNet...) eingegeben werden. Will man anonym arbeiten, muss man die Felder leer lassen. Die Ergebnisse sind in der Datei results.txt ersichtlich, die Erneuerungen in Versionen in der Datei whatsnew.txt.

Versionen

Prime95 v26.3 beim Start
  • Version 26 (Stabil), letzte Version 26.6, 4. April 2011 (~20% Beschleunigung für Core-iX-Generation im Vergleich zu Version 25)
  • Version 25, letzte Version 25.11, 13. Juli 2009 (PrimeNet 5.0 Protokoll)
  • Version 24, letzte Version 24.14, Februar 2006 (PrimeNet 4.0 Protokoll)

Referenzen

  1. a b Oxford Advanced Learner's Dictionary: prime, ninety, five und M
  2. The "Top Ten" Record Primes [1]
  3. GIMPS: Research Discovery Awards [2]
  4. GIMPS: Software End User License Agreement ("EULA") [3]
  5. GIMPS: PrimeNet Activity Summary [4]
  6. GIMPS: The Math [5]

Siehe auch