Prime95
| Prime95/MPrime
| |
|---|---|
| [[Datei:Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)|150px]] | |
| Datei:Prime95.PNG Prime95 bei der Probedivision | |
| Basisdaten
| |
| Maintainer | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Entwickler | George Woltman |
| Erscheinungsjahr | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Aktuelle Version | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Aktuelle Vorabversion | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) (Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value)) |
| Betriebssystem | Windows (Prime95), macOS (Prime95), Linux (MPrime), FreeBSD |
| Programmiersprache | Lua-Fehler in Modul:Wikidata, Zeile 1686: attempt to index field 'wikibase' (a nil value) |
| Kategorie | Primzahltester, besonders für Mersenne-Primzahlen; Benchmark |
| Lizenz | Freeware, aber Kopplung an PrimeNet falls Suche nach Mersenne-Primzahlen |
| deutschsprachig | ja |
| http://www.mersenne.org/ | |
Prime95 (prime95.exe) ist ein Programm für Windows und macOS zum Testen der Primalität einer Mersenne-Zahl mithilfe des sogenannten Lucas-Lehmer-Tests. Es wird von GIMPS angeboten und von George Woltman als Software für Volunteer-Computing entwickelt. Die Softwareversionen für GNU/Linux und FreeBSD werden MPrime genannt und besitzen im Gegensatz zu Prime95 keine grafische Benutzeroberfläche.
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 in der Programmiersprache C zur Verfügung und werden von einigen anderen Programmen eingesetzt. Die gwnum ist frei nutzbar, jedoch müssen bei der Suche nach Mersenne-Primzahlen die Projektbedingungen (Software End User License Agreements „EULA“)<ref name="EULA">GIMPS: Software End User License Agreement ("EULA")</ref> eingehalten werden.
Der Code für die Generierung von Prüfsummen ist aus Sicherheitsgründen nicht öffentlich vorhanden.<ref>mersenneforum.org - View Single Post - Error risk after doublecheck. Abgerufen am 15. November 2020.</ref>
Einsatzzwecke
Verteiltes Rechnen
Das Programm kann als Software-Client für das PrimeNet, einer von GIMPS betriebenen zentralen Datenbank für Mersenne-Primzahlen, 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 Mitte 2011 über rund 62 Teraflops Rechenleistung.<ref name="PrimeNetPower">GIMPS: PrimeNet Activity Summary PrimeNet Aggregate Computing Power 06-2011</ref>
Belastungstest
Prime95/Mprime kann unabhängig von der Teilnahme an PrimeNet und ohne Netzwerkverbindung als Belastungstest für Prozessoren verwendet werden, da interne Plausibilitätsprüfungen eventuell auftretende Rechenfehler oder Stabilitätsprobleme sichtbar machen. Die Intention der Programmverwendung ist dabei nicht die Suche nach Primzahlen, sondern eine möglichst intensive Auslastung der Prozessoren, welche zu einer hohen thermischen Belastung führt und so beispielsweise unzureichend montierte Kühlkörper am Prozessor nachweist. Neben der einfachen Prüfung von Standardhardware auf korrekte Funktion unter Belastung wird diese Funktion auch bei dem Übertakten und Betrieb von Prozessoren außerhalb der Herstellerspezifikation als Stabilitätstest eingesetzt.<ref>Christof Windeck: Hitzewelle, c’t 15/2010 vom 5. Juli 2010, Seite 174ff</ref>
Rechenleistung
Das Programm kann als Benchmark verwendet werden. Die Ergebnisse können der Öffentlichkeit automatisch durch den PrimeNet-Server<ref name="GIMPSbenchm">Prime95 Benchmarks</ref><ref name="mersenne-aries"><templatestyles src="Webarchiv/styles.css" />MPrime CPU Benchmarks und Durchsatz ( des Vorlage:IconExternal vom 21. August 2011 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.</ref> zum Vergleich dargestellt werden.
| Plattform/CPU-Modell | Takt- Frequenz (MHz) |
Kerne | FFT Länge: 2048k (ms) |
FFT Länge: 4096k (ms) |
Probedivision Faktorenlänge: 65 bit (ms) |
TDP (W) |
rel. Durchsatz<ref name="throughput">FFT throughput, FFTsize 1024K, Avg Exp M20,950,000, siehe <templatestyles src="Webarchiv/styles.css" />— ( des Vorlage:IconExternal vom 16. März 2011 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis..</ref> pro Kern und Tag<ref name="ghzdays">Gemessen in GHz-days per day per W, siehe <templatestyles src="Webarchiv/styles.css" />GIMPS CPU Throughput calculator ( des Vorlage:IconExternal vom 16. März 2011 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.; leichte Abweichungen bei anderen FFT-Faktorlängen, abweichende Leistungsbilder bei MPrime-Probedivision.</ref> | ||
|---|---|---|---|---|---|---|---|---|---|
| 1) | pro GHz Takt 2) | pro Watt 3) | |||||||
| Intel Atom D510 | 1664 | 2 | 585,91 | 1954,40 | 25,65 | 13<ref>Intel Atom D510 - AU80610004392AA. Abgerufen am 15. November 2020.</ref> | 0,23 | 0,14 | 0,0215 |
| AMD Fusion E-350 | 1596 | 2 | 222,03 | 491,02 | 15,18 | 18<ref>AMD E-Series E-350 - EME350GBB22GT. Abgerufen am 15. November 2020.</ref> | 0,40<ref>geschätzt</ref> | 0,25 | 0,0278 |
| Intel Pentium III | 1151 | 1 | 438,10 | 922,58 | 50,59 | 30<ref>Intel Pentium III 1200 - RK80530PZ009256 (BX80530C1200256). Abgerufen am 15. November 2020.</ref> | 0,31 | 0,27 | 0,0090 |
| AMD Athlon | 1054 | 1 | 457,40 | 774,49 | 56,08 | 60<ref>AMD Athlon 1100 - A1100AMS3B. Abgerufen am 15. November 2020.</ref> | 0,36 | 0,34 | 0,0057 |
| AMD Athlon XP 2000+ | 1640 | 1 | 201,21 | 448,28 | 32,80 | 70<ref>AMD Athlon XP 2000+ - AX2000DMT3C. Abgerufen am 15. November 2020.</ref> | 0,41 | 0,25 | 0,0036 |
| Intel Pentium 4 | 3078 | 1 | 72,40 | 162,02 | 14,91 | 82<ref>Intel Pentium 4 3.06 GHz - RK80532PE083512 / BX80532PE3066D. Abgerufen am 15. November 2020.</ref> | 1,50 | 0,49 | 0,0060 |
| AMD Phenom II X4 | 3414 | 4 | 34,86 | 76,27 | 4,59 | 125<ref>AMD Phenom II X4 965 Black Edition - HDZ965FBK4DGM / HDZ965FBGMBOX. Abgerufen am 15. November 2020.</ref> | 4,32 | 1,27 | 0,0406 |
| Intel Core2 Duo E8600 | 3334 | 2 | 34,15 | 73,07 | 4,89 | 65<ref>Intel Core 2 Duo E8600 - AT80570PJ0936M / BX80570E8600 / BXC80570E8600. Abgerufen am 15. November 2020.</ref> | 4,17 | 1,25 | 0,0385 |
| Sandy Bridge Pentium G620T | 2159 | 2 | 41,09 | 72,53 | 4,99 | 35<ref>SR05T (Intel Pentium G620T). Abgerufen am 15. November 2020.</ref> | 3,54 | 1,64 | 0,0937 |
| AMD Phenom II X6 1100T | 3310 | 6 | 32,68 | 69,54 | 3,85 | 125<ref>AMD Phenom II X6 1100T Black Edition - HDE00ZFBK6DGR / HDE00ZFBGRBOX. Abgerufen am 15. November 2020.</ref> | 4,03 | 1,22 | 0,0586 |
| Intel Core i5-2500K | 3330 | 4 | 23,94 | 53,24 | 3,49 | 95<ref>Intel Core i5-2500K - CM8062300833803 / BX80623I52500K / BXC80623I52500K. Abgerufen am 15. November 2020.</ref> | 5,90 | 1,77 | 0,0745 |
| Intel Core i7-2600K | 3463 | 4 | 21,75 | 45,35 | 3,67 | 95<ref>Intel Core i7-2600K - CM8062300833908 / BX80623I72600K / BXC80623I72600K. Abgerufen am 15. November 2020.</ref> | 6,17 | 1,78 | 0,0749 |
1) Durchsatz pro Zeitspanne, welche Zeitspanne das ist, ist irrelevant.
2) Durchsatz geteilt durch die Taktfrequenz in GHz, keine Messungen bei 1 GHz Taktfrequenz (ergibt andere Werte)
3) Durchsatz geteilt durch die Taktfrequenz in GHz und die TDP in Watt, multipliziert mit der Kernanzahl. Dieser Wert ist Unsinn, da höhere Taktfrequenzen zweimal „weggerechnet“ werden, einmal durch Division durch den Takt, ein zweites Mal durch Division der TDP bei diesem Takt. TDP ist weiterhin nicht die Leistungsaufnahme bei Prime95.
Faktorisierungsmethoden und Primzahltest
Prime95 kann zur Faktorisierung von Zahlen der Form <math>a \cdot b^{c} + d</math> benutzt werden. Im Normalfall sucht es jedoch nur nach Mersenne-Primzahlen, für die a = 1, b = 2, c = Primzahl und d = −1 gilt.
Das Programm unterstützt die Faktorisierungsmethoden:
- Probedivision
- Pollard-p − 1-Methode – P-1-Test
- Lucas-Lehmer-Test – LL-Test
- Elliptic Curve Method – ECM-Test
| Exponent bis zu |
Obergrenze | |
|---|---|---|
| CPU | GPU<ref>MersenneForum.org: Economic curves cross as far as TFing vs. LLing and DCing by James http://www.mersenneforum.org/attachment.php?attachmentid=9126&d=1358182815</ref> | |
| 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 | |
| 38.300.000 | 267 | |
| 48.800.000 | 268 | 273 |
| 60.940.000 | 269 | 274 |
| 77.910.000 | 270 | 275 |
| 96.830.000 | 271 | 276 |
| 120.000.000 | 272 | 277 |
| 153.400.000 | 273 | 278 |
| 199.500.000 | 274 | 279 |
| 253.500.000 | 275 | 280 |
| 322.100.000 | 276 | 281 |
| 408.400.000 | 277 | 282 |
| 516.800.000 | 278 | |
Probedivision
Bezüglich der Menge aller zu testenden Zahlen, wird die Faktorisierungsmethode Probedivision dem eigentlichen Lucas-Lehmer-Primzahltest vorgeschaltet, um vergleichsweise schnell kleine Faktoren q in einzelnen Zahlen zu finden. Die Faktorisierungsmethode Probedivision zeigt Zahlen auf, die zusammengesetzt sind und deshalb keine Mersenne-Primzahlen sind. Diese Zahlen werden mit Hilfe des PrimeNet-Servers administriert. Auf sie kann der ECM-Test angewendet werden, der mögliche weitere Faktoren mit einer Länge bis etwa 60 Dezimalstellen effektiv findet. Hiernach wird mit jenen Zahlen, welche diesen ECM-Test durchlaufen, bei Bedarf zum Zahlkörpersieb übergegangen, das vom BOINC-Projekt NFS@Home angeboten wird.
Probedivision mit Grafikkarten
Seit den Anfängen der programmierbaren Grafikprozessoren im Jahr 2000 besteht die Möglichkeit, die Rechenleistung von Grafikkarten zur Berechnung von parallelisierbaren Rechenoperationen zu nutzen (GPGPU). In Zusammenarbeit der Firmen AMD, IBM, Intel und Nvidia wurde der erste Entwurf für OpenCL, eine Programmierschnittstelle u. a. für Grafikprozessoren, ausgearbeitet und schließlich bei der Khronos Group eingereicht.<ref>Khronos OpenCL API Registry (englisch) – Spezifikation und Headerdateien</ref><ref>„[…] verkündete die Khronos Group am 9. Dezember 2008 die Veröffentlichung der OpenCL 1.0-Spezifikation […] Unmittelbar nach der Freigabe der OpenCL 1.0-Spezifikation kündigte AMD die beabsichtigte schnelle Übernahme des OpenCL 1.0-Programmierstandards sowie die Integration eines kompatiblen Compilers und einer kompatiblen Laufzeitumgebung in sein kostenloses ATI Stream SDK an […] Durch die enge Kooperation mit OpenCL-Content- und Softwareentwicklern konnte AMD eine Entwicklerversion des ATI Stream SDKs mit OpenCL 1.0-Unterstützung erstellen. Das offiziell freigegebene ATI Stream SDK v2.0 mit OpenCL 1.0-Unterstützung ist seit der zweiten Jahreshälfte 2009 verfügbar.“ <templatestyles src="Webarchiv/styles.css" />AMD – Die Geschichte des GPGPU-Computings in aller Kürze ( des Vorlage:IconExternal vom 27. Mai 2013 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.; Webzugriff am 2. Mai 2012</ref>
Durch den derzeitigen Überschuss an GIMPS-Rechenkapazität im Bereich Probedivision durch GPGPU-Unterstützung leistungsfähiger Grafikkarten mittels der mfaktc Software und OpenCL, werden seit August 2011 höhere Obergrenzen verwendet.<ref name="GIMPS_MF_Post">MersenneForum.org: Factoring bit depth?</ref> Da der Aufwand der Probedivision bei mfaktc proportional zur Faktorgröße ist, d. h. nur von der Größe des Faktors abhängt, wird diese Software für größere Faktoren zunehmend ungeeignet. Es wird im Vergleich zu den beiden anderen Faktorisierungsmethoden Probedivision und P1 Test jedoch kaum Arbeitsspeicher benötigt, d. h. geeignete Grafikkarten mit vergleichsweise geringem Grafikarbeitsspeicher reichen aus.
P-1-Test
Bezüglich der Menge aller zu testenden Zahlen, wird der P-1-Test dem eigentlichen Lucas-Lehmer-Primzahltest vorgeschaltet, um effektiv mittelgroße Faktoren q in einzelnen Zahlen zu finden. Er erfolgt im Anschluss an die Probedivision und findet Faktoren, die stark zusammengesetzt sind. Man weiß, dass mögliche Faktoren q von <math>2^p-1</math> den Aufbau <math>q=2*k*p+1</math> haben müssen.<ref name="GIMPS_Math">GIMPS: The Math</ref> 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). In seltenen Fällen können durch die sogenannte Brent-Suyama-Erweiterung aber auch Faktoren gefunden werden, die das B2-Kriterium eigentlich nicht erfüllen.<ref name="Brent-Suyama">mersenneforum.org - View Single Post - fond of a factor? Turn yourself in to become inane. Abgerufen am 15. November 2020.</ref> Der Berechnungsaufwand ist abhängig von der Größe des Exponenten sowie der Wahl von B1 und B2. Stufe B2 benötigt viel Arbeitsspeicher.
LL-Test
Der rechenaufwändige Lucas-Lehmer-Primzahltest wird dann nur noch auf die Untermenge alle Zahlen angewendet, für die obige Faktorisierungsmethode ergebnislos blieben. Im Normalfall erfolgt die Zuweisung von zu testenden Zahlen automatisch durch PrimeNet. Die Grenze, bis zu der Faktoren im Rahmen der Probedivision gesucht werden, ist abhängig von der zu testenden Zahl und steigt mit ihrer Größe an. Die aufwandsoptimalen Obergrenzen sind in der Tabelle Probedivision genannt. Sie werden empirisch ermittelt.
ECM-Test
Die „Elliptic Curve Method“ (ECM) wird auf Zahlen angewendet, die vom PrimeNet-Server zugewiesen werden. Der ECM-Test findet große Faktoren q mit einer Länge bis etwa 60 Dezimalstellen effektiv. Die Exponenten aus der automatischen ECM-Zuweisung des PrimeNet-Servers 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 B2 viel Arbeitsspeicher.
Programmoptionen
| Abkürzung | Bedeutung |
|---|---|
| GIMPS | was sinnvoll ist (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-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 |
| 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 (Prime95) bzw. Workers (MPrime) 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 vorgenommen 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-Nutzerkonto arbeiten. Das Nutzerkonto sowie der Computername müssen 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
Ausgewählte Haupt-Versionen:
- Version 28, letzte Version 28.9, 29. März 2016 (Beschleunigung für Multi-Thread-Fälle im Vergleich zu Version 27, erreicht durch Nutzung von Opcodes der Intel Haswell CPUs im FFT-Bereich und durch Reduzierung der Speichertransfers)<ref>http://www.mersenne.org/download/whatsnew.txt</ref>
- Version 27, letzte Version 27.9, 12. Dezember 2012, mit AVX-Unterstützung (~30 % Beschleunigung ab Intel-Sandy-Bridge-Mikroarchitektur (Core 2xxx / Core 3xxx) im Vergleich zu Version 26)<ref>Vorlage:Cite book/Name: [Internetquelle: archiv-url ungültig Prime95 version 27 released! Faster on Intel’s newer CPUs!] Mersenne Research, Inc., , archiviert vom Vorlage:IconExternal (nicht mehr online verfügbar) am Vorlage:Cite book/URL; abgerufen am 6. Juli 2012.Vorlage:Cite book/URLVorlage:Cite book/MeldungVorlage:Cite book/Meldung2Vorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/MeldungVorlage:Cite book/Meldung</ref>
- Version 26, letzte Version 26.6, 4. April 2011 (~20 % Beschleunigung für Core-i-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)
Weblinks
- Download von Prime95
- GIMPS – PrimeNet Activity Summary (englisch)
- FTP-Verzeichnis von GIMPS – enthält unterschiedliche Versionen von Prime95
- Benchmarks
- Forum
- NFS@Home
Einzelnachweise
<references />