Informationen zum Primzahlenberechnungsprogramm



Allgemeines

Das Primzahlenberechnungsprogramm ist ein Programm zum Berechnen von Primzahlen.
Es wurde von mir in Java programmiert und läuft daher auf (fast) allen Systemen.
Grundvoraussetzung ist allerdings ein PC mit mindestens einem Dualcore und mindestens 2GB RAM. Auf PCs mit schlechterer Hardware kann es zwar laufen, doch dann sind Abstürze möglich. Mit besserer Hardware können aber auch wesentlich bessere Leistungen erzielt werden.
Das Primzahlenberechnungsprogramm kann auf bis zu 8 CPU-Kernen bzw. Threads gleichzeitig rechnen.
Die Primzahlen werden in durchnummerierten Textdateien ausgegeben. Jede Textdatei beinhaltet bis zu 1.000.000 Primzahlen.
Derzeit habe ich mittels des PZBPs schon 11.293.471.501 Primzahlen berechnet (Stand 27.11.16 17:25:47).
Die derzeit aktuelle Version des PZBPs ist die Beta 6.2.1 DE. Diese kann hier heruntergeladen werden.

Vorgeschichte

Das Primzahlenberechnungsprogramm wurde zuerst garnicht in Java sondern in PHP geschrieben. Doch aufgrund der langen Ladezeiten der Seiten im Browser und ständigen Timeouts griff ich auf die Programmiersprache Python zurück. Dies war damals neben PHP die einzige Programmiersprache, die ich beherschte. Das Programm ließ ich lange Zeit als Python Programm laufen und nahm den Nachteil, das hierfür Python installiert sein muss, in Kauf. Doch das Programm wurde immer langsamer, je größer die Zahlen wurden. Außerdem konnte ich nicht gepuffert schreiben, was auch bei kleinen Zahlen schon sehr lästig war. Die letzte Version in Python entwickelte ich am 11.08.11. Anschließend wurde das Primzahlenberechnungsprogramm in Java entwickelt. Allerdings war es zunächst nur eine Kommandozeilenanwendung. Die letzte Version dieser erschien am 01.02.12.
Anschließend versuchte ich dem Programm eine GUI zu geben. Es gab große Probleme bei der Entwicklung, denn während das Programm lief, konnte man keine Button drücken. Doch am 13.09.12 17:25 schaffte ich es die erste GUI zu entwickeln, bei der diese Probleme behoben waren. Allerdings wurde nur "xxx" ausgegeben und es wurden keine Primzahlen berechnet.

Versionsgeschichte

Hier die Versionsgeschichte des Primzahlenberechnungsprogramms. Diese kann auch direkt im PZBP unter Hilfe > Versionsgeschichte eingesehen werden.

Alpha1.0

Anschließend versuchte ich dem Programm eine GUI zu geben. Es gab große Probleme bei der Entwicklung, denn während das Programm lief, konnte man keine Button drücken. Doch am 13.09.12 17:25 schaffte ich es die erste GUI zu entwickeln, bei der diese Probleme behoben waren. Allerdings wurde nur "xxx" ausgegeben und es wurden keine Primzahlen berechnet.

Alpha1.1

Diese Version erschien am 13.09.12 und war wie die Alpha1.0 hatte allerdings einige Bugs behoben.

Beta1.0

Diese Version erschien auch am 13.09.12.
Sie war die erste, die Primzahlen berechnete.

Beta1.1

Diese Version erschien auch am 13.09.12.
Es gab einige Bugfixes.

Beta1.2

Diese Version erschien auch am 13.09.12.
Es gab einige Bugfixes.

Beta1.3

Diese Version erschien am 14.09.12.
Hier wurde mein Name unten eingefügt. :)

Beta1.4

Diese Version erschien am 14.09.12.
Es wurde eingefügt, das angezeigt wird, wie viele Primzahlen insgesamt und bei diesem Durchlauf berechnet wurden.

Beta1.5

Diese Version erschien am 14.09.12.
Nun wir der Pfad im ausgegeben und es werden Statusmeldungen wie "Starting..." ausgegeben.

Beta2.0

Diese Version erschien am 20.09.12.
Der Berechnungsalgorithmus wurde überarbeitet und stark optimiert.

Beta2.1

Diese Version erschien am 21.09.12.
Es gab einige Bugfixes und Optimierungen.

Beta2.2

Diese Version erschien am 23.09.12.
Es gab einige Bugfixes und Optimierungen.

Beta2.3

Diese Version erschien am 26.09.12.
Die Menüleiste wurde hinzugefügt. Sie ist allerdings noch funktionslos.

Beta2.4

Diese Version erschien am 27.09.12.
Die Menüleiste wurde überarbeitet und funktioniert nun.

Beta2.5

Diese Version erschien am 27.09.12.
Die Menüleiste wurde überarbeitet: Es gibt nun den Menüpunkt "Beenden".

Beta2.6

Diese Version erschien am 27.09.12.
Die Versions- und Copyrightangaben wurden unten aus dem Programm entfernt. Nun sind sie nur noch über den Menüpunkt "Info" zu finden.

Beta2.7

Diese Version erschien am 28.09.12.
Es gab einige Bugfixes und Optimierungen.

Beta2.8

Diese Version erschien am 28.09.12.
Es gab einige Bugfixes und Optimierungen.

Beta2.9

Diese Version erschien am 02.10.12.
Es gab einige Bugfixes und Optimierungen.

Beta2.10

Diese Version erschien am 02.10.12.
Es gab einige Bugfixes und Optimierungen.

Beta3.0

Diese Version erschien am 03.10.12.
Nun werden die Primzahlen nicht mehr in eine Datei geschrieben, sondern es werden nur 1.000.000 Zahlen in eine Datei geschrieben. Wenn diese voll ist, wird eine neue erstellt. Die Dateien werden durchnummeriert.

Beta3.1

Diese Version erschien am 03.10.12.
Es gab einige Bugfixes und Optimierungen.

Beta3.2

Diese Version erschien am 04.10.12.
Es gab einige Bugfixes und Optimierungen.

Beta3.3

Diese Version erschien am 05.10.12.
Nun kann man auswählen, wo die Primzahlen gespeichert werden sollen. Dafür gibt es nun den Menüpunkt "Einstellungen".

Beta3.4

Diese Version erschien am 09.10.12.
Das Fenster wurde vergrößert.

Beta3.5

Diese Version erschien am 09.10.12.
Es gab einige Bugfixes und Optimierungen.

Beta3.6

Diese Version erschien am 28.11.12.
Es gab einige Bugfixes und Optimierungen.

Beta3.7

Diese Version erschien am 28.11.12.
Es wurde ein Fortschrittsbalken eingefügt, der anzeigt, wie voll die derzeitige Primzahlendatei ist.

Beta3.8

Diese Version erschien am 28.11.12.
Der Fortschrittsbalken bekam eine Beschriftung.

Beta3.9

Diese Version erschien am 13.12.12.
Nun wird die zuletzt berechnete Primzahl auch noch in der Seitenleiste aufgelistet.

Beta3.10

Diese Version erschien am 13.12.12.
Der Test, ob die eingegebene Zahl eine Primzahl ist, wurde eingefügt.

Beta3.11

Diese Version erschien am 13.12.12.
Der Test, ob die eingegebene Zahl eine Primzahl ist, wurde optimiert und Bugs wurden behoben.

Beta4.0

Diese Version erschien am 17.12.12.
Die berechneten Primzahlen werden nicht mehr ausgegeben. Dadurch braucht das Programm nicht mehr ganz so viel Arbeitsspeicher. (Aber immer noch zu viel :) )

Beta4.1

Diese Version erschien am 17.12.12.
Es gab einige Bugfixes und Optimierungen.

Beta4.2

Diese Version erschien am 17.12.12.
Es gab einige Bugfixes und Optimierungen.

Beta4.3

Diese Version erschien am 17.12.12.
Es gab einige Bugfixes und Optimierungen.

Beta4.4

Diese Version erschien am 19.01.13.
Nun wird die Version auch im Fenstertitel ausgegeben.

Beta4.5

Diese Version erschien am 19.01.13.
Hier wurde diese Funktion der Versionsgeschichte eingefügt. Es war viel Arbeit, die Änderungen der älteren Versionen zu finden. Wenn ich nichts gefunden habe, habe ich nur "Es gab einige Bugfixes und Optimierungen." geschrieben, da ich oftmals auch nur irgendwelche "kleinen" Änderungen vorgenommen habe.

Beta4.6

Diese Version erschien am 19.01.13.
Es wurden Tippfehler in der Versionsgeschichte korrigiert.

Beta4.7

Diese Version erschien am 21.01.13.
Nun wird beim Programmstart angegeben, wie groß das Primzahlenverzeichnis ist. (Also wie groß alle Primzahlendateien sind.)

Beta4.8

Diese Version erschien am 22.01.13.
Die Startroutine wurde verändert.

Beta4.9

Diese Version erschien am 22.01.13.
"Mehrere Prozessorkerne nutzen" zum Menü hinzugefügt. GC wird explizit aufgerufen.

Beta4.10

Diese Version erschien am 22.01.13.
GC wird nun nur noch alle 5 Sekunden aufgerufen.

Beta4.11

Diese Version erschien am 23.01.13.
Das Menü "Mehrere Prozessorkerne nutzen" wurde überarbeitet. Nun werden die dort vorgenommenen Einstellungen auch gespeichert. Diese Funktion funktioniert aber noch nicht.
Außerdem werden die Einstellungen dieser Funktion beim Start ausgegeben.

Beta4.12

Diese Version erschien am 24.01.13.
Der Dialog "Mehrere Prozessorkerne nutzen" wurde überarbeitet und der Text wurde etwas ausführlicher geschrieben.

Beta4.13

Diese Version erschien am 06.02.13.
Der Start des Programms wurde optimiert.

Beta4.14

Diese Version erschien am 06.02.13.
Nun kann das Pogramm auf 2 Prozessorkernen gleichzeitig rechnen.

Beta4.15

Diese Version erschien am 06.02.13.
Bugs wurden behoben und es wurde eine Animation hinzugefügt, die hinter dem Status beim Rechnen mit mehreren Prozessorkernen abläuft.

Beta4.16

Diese Version erschien am 07.02.13.
Nun kann das Pogramm auch noch auf 4 Prozessorkernen gleichzeitig rechnen und das Beenden des Programms wurde überarbeitet.

Beta4.17

Diese Version erschien am 07.02.13.
Nun wird angezeigt, wie weit die Threads mit ihren Aufgaben sind.

Beta4.18

Diese Version erschien am 07.02.13.
Die Anzeige, wie weit die Threads mit ihrer Aufgabe sind, wurde auf 8 erweitert und Bugs wurden behoben.

Beta4.19

Diese Version erschien am 07.02.13.
Nun kann das Pogramm sogar auf 8 Prozessorkernen gleichzeitig rechnen.

Beta4.20

Diese Version erschien am 08.02.13.
Der Start des Programms wurde optimiert.

Beta4.21

Diese Version erschien am 08.02.13.
Nun hat das Primzahlenberechnungsprogramm ein Icon.

Beta4.22

Diese Version erschien am 08.02.13.
Nun haben auch die anderen Fenster wie beispielsweise "Hilfe" ein Icon.

Beta4.23

Diese Version erschien am 08.02.13.
Nun wird auch angegeben, wie viele Primzahlen noch im Cache sind, also dann gespeichert werden, wenn alle Threads fertig sind.

Beta4.24

Diese Version erschien am 13.03.13.
Der Programmstart wurde überarbeitet.

Beta4.25

Diese Version erschien am 14.03.13.
Nun kann sich das Programm übers Netzwerk mit einem Client verbinden.

Beta4.26

Diese Version erschien am 14.03.13.
Nun kann sich das Programm übers Netzwerk mit einem Client verbinden und in beide Richtungen komunizieren.

Beta4.27

Diese Version erschien am 14.03.13.
Nun kann zusätzlich noch auf einem anderen Computer im Netzwerk gerechnet werden.

Beta4.28

Diese Version erschien am 14.03.13.
Die Anzeige "Im Cache" wird nun nicht mehr negativ. :)

Beta4.29

Diese Version erschien am 15.03.13.
Nun wird angezeigt, wie weit der Netzwerkclient schon ist.
Und der Bug, dass man den 2 Kerne Modus nicht ohne Netzwerkclient verwenden kann, wurde behoben.
Allerdings besteht seit Version Beta 4.25 oder 4.27 das Problem, dass die Primzahlen beim Berechnen auf einem zusätzlichen Client, nicht richtig gespeichert werden! Dies kann leider auch die primzahlenxxx.txt-Dateien beschädigen, daher ist von der Nutzung der Netzwerkfunktion derzeit noch abzuraten.

Beta4.30

Diese Version erschien am 15.03.13.
Der Bug beim Speichern (s.o.) wurde behoben.

Beta4.31

Diese Version erschien am 15.03.13.
Der Programmstart wurde hinsichtlich der Netzwerkeinstellungen überarbeitet. z.B.: Kommt eine Warnung, wenn der Netzwerkclient nicht gefunden wurde.
Außerdem wurde die Einstellung "Netzwerkclient einrichten" eingefügt.

Beta4.32

Diese Version erschien am 15.03.13.
Nun funktioniert der Netzwerkclient auch bei der Nutzung von 4 und 8 Prozessorkernen.

Beta4.33

Diese Version erschien am 20.03.13.
Die Multikernberechnung wurde optimiert.

Beta4.34

Diese Version erschien am 20.03.13.
Die Fenstergröße wurde verändert, damit das Ergebnis des Primzahlentests nicht außerhalb des sichtbaren Bereichs erscheint.

Beta4.35

Diese Version erschien am 21.03.13.
Nun kann man die Primzahlendateien auf Fehler hin analysieren lassen.

Beta4.36

Diese Version erschien am 12.04.13.
Nun gibt es die Funktion "Reparatur". Diese prüft die aktuelle Primzahlendatei und die Dateien "anzahl.txt" und "start.txt" auf mögliche Fehler. Solche können zum Beispiel auftreten, wenn das PZBP nicht korrekt beendet wurde.

Beta4.37

Diese Version erschien am 18.04.13.
Es wurde ein Bug behoben, der beim Berechnen auch 8 Kernen auftrat. "Thread_7" wurde als "Thread_3" bezeichnet.

Beta4.38

Diese Version erschien am 30.04.13.
Die Hilfeseite wurde korrigiert und ergänzt.

Beta4.39

Diese Version erschien am 08.05.13.
Der Netzwerkclient wurde in Remote umbenannt und stark überarbeitet. Nun wird RMI statt einer "normalen" Netzwerkverbindung verwendet.

Beta4.40

Diese Version erschien am 08.05.13.
Der Bug, dass das PZBP nach dem Ändern der Remote-Einstellungen nicht mehr startet wurde behoben.

Beta4.41

Diese Version erschien am 17.05.13.
Bugfix in der Versionsnummer.

Beta4.42

Diese Version erschien am 20.05.13.
Der Berechnungsalgorithmus wurde optimiert. Theoretisch sollte das PZBP nun doppelt so schnell rechnen. :)

Beta4.43

Diese Version erschien am 03.08.13.
Bugfix im Fenstertitel "Remote einrichten"
Nun gibt der Primzahltest bei falscher Eingabe eine Fehlermeldung aus.

Beta4.44

Diese Version erschien am 03.08.13.
Nun wird in der Seitenleiste angegeben, wie lange das PZBP schon läuft.

Beta4.45

Diese Version erschien am 05.08.13.
Tippfehler in der Versionsgeschichte wurden korrigiert.
Eine horizontale Scrollbar wurde für den Bereich der Startusmeldungen hinzugefügt.
Die Ausgabe beim Programmstart wurde ergänzt.
Die Funktion zum Ausblenden des Bereichs der Startusmeldungen wurde hinzugefügt.

Beta4.46

Diese Version erschien am 01.10.13.
Nun verbindet sich das PZBP beim Start mit der Webseite "www.primzahlenberechnungsprogramm.de".

Beta4.47

Diese Version erschien am 27.10.13.
Bugfix in der Einkernberechnung.

Beta4.48

Diese Version erschien am 07.11.13.
Das Fenster wurde vergrößert, damit das Ergebnis des Primzahltests nun wieder lesbar ist. Außerdem gab es noch Verbesserungen am Programmstart.

Beta5.0.0

Diese Version erschien am 14.11.13.
Die Dateien anzahl.txt, start.txt, dateinr.txt, settings.txt und netzwerk.txt sind nun durch die settings.pzbp ersetzt.
Die Reperatur wird nun aufgerufen, wenn das Programm zuvor nicht korrekt beendet wurde.
Die Fensterposition auf dem Bildschirm wird gespeichert.
Jedes Programm hat nun eine eigene ID, die es beim Start an www.primzahlenberechnungsprogramm.de meldet.
Viele Werte wurden durch Variablen ersetzt, die bereits in der settings.pzbp gespeichert werden. Daher kann man später immer mehr Einstellungen vornehmen.
Außerdem wurde ein großer Bug behoben, so dass das Programm nun wesentlich weniger CPU-Last im Leerlauf braucht. Zuvor war auch im Leerlauf immer ein Prozessorkern voll ausgelastet.
Des Weiteren ist die Versionsnummer nun dreiteilig.

Beta5.0.1

Diese Version erschien am 22.11.13.
Tippfehler in der Versionsgeschichte wurden korrigiert. Performanz-Einstellungen hinzugefügt.

Beta5.0.2

Diese Version erschien am 25.11.13.
Netzwerkkommunikation wurde überarbeitet.

Beta5.0.3

Diese Version erschien am 29.11.13.
Bugfix in Netzwerkkommunikation.
Nun wurden die "laufenden" Punkte hinter Running bei der Multikernberechnungs aus Leistungsgründen entfernt.

Beta5.1.0

Diese Version erschien am 05.12.13.
Nun sollte das Remote wieder funktionieren.
Außerdem wurde die Beschreibung der Funktion "Reparieren" korrigiert.

Beta5.1.1

Diese Version erschien am 04.04.14.
Nun kann die Blockgröße für das Remote von Hand eingegeben werden.
Daher kann man nun die Wartezeiten des PZBPs oder des Remotes verringern.
Außerdem wurde in der Seitenleiste "Netzwerk" in "Remote_1" umbenannt.

Beta6.0.0

Diese Version erschien am 04.11.15.
Das Programm wurde komplett neu gestaltet. Hierzu gehören sowohl die Oberfläche, als auch der Berechnungskern.
Das Fenster ist wesentlich größer geworden, um die neuen Status-Anzeigen der vier Remotes anzeigen zu können.
Das Statusausgabefeld wurde nun nach unten verlegt, da es nicht mehr so viel Platz benötigt.
Außerdem gibt es nun keine extra Dialoge mehr für weitere Einstellungen, sondern alles wurde in der Haupt-GUI eingebaut.
Der Status wird nun wesentlich größer und farbig hinterlegt ausgegeben, damit dieser auf einen Blick erkennbar ist.
Die Zahlen von den insgesamt berechneten Primzahlen, den Primzahlen im Cache etc. werden nun in 1000-er Blöcke unterteilt angezeigt.
Auch die Hilfeseite wurde komplett überarbeitet und zu großen Teilen neu geschrieben.
Das PZBP kann nun statt nur auf 8 auf 16 CPU-Kernen parallel rechnen. Hinzu kommt eine frei wählbare Blockgröße.
Statt nur eines Remotes, welche nur einen CPU-Kern nutzen konnte, gibt es nun die Möglichkeit, bis zu 4 Remotes mit jeweils bis zu 16 Threads zu nutzen.
Darüber hinaus wurde die Berechnung so optimiert, dass man statt durch jede ungerade Zahl zu teilen, auch Primzahlendateien einlesen
lassen kann, um die Primzahlen als Teiler zu verwenden.

Beta6.1.0

Diese Version erschien am 15.05.16.
Nun kann das Programm 6 Remotes verwalten.
Hierfür wurde das Fenster auf eine Breite von 1600px angepasst. Daher wird ein FullHD-Monitor empfohlen.

Beta6.1.1

Diese Version erschien am 15.05.16.
Fehler auf der Hilfeseite wurden behoben.

Beta6.1.2

Diese Version erschien am 16.05.16.
Berechnungsalgorithmus leicht optimiert. Hier werden einige Divisionen und eine if-Klausel gespart.

Beta6.1.3

Diese Version erschien am 13.07.16.
Tippfehler in der GUI behoben (hier hieß es "UID ausgaben" statt "ausgeben").
Außerdem wurde der Titel vergrößert.

Beta6.1.4

Diese Version erschien am 01.10.16.
Der Fehler in der Berechnung sollte nun behoben sein, sodass keine Zahlen mehr doppelt berechnet werden.
Hierzu werden jedoch noch weitere Tests folgen.
Außerdem wird ein Alarmton ausgegeben, wenn etwas bei der Berechnung schief gehen sollte.
Dies wird aktuell daran erkannt, dass 60s lang keine Zahlen gespeichert wurden.
Diese Funktion ist noch in der Erprobung und wird später noch Einstellungen bekommen.

Beta6.2.0

Diese Version erschien am 03.10.16.
Das Programm kann nun 10 Remotes verwalten. Die Fensterbreite ist nun 1850px.
Außerdem gab es einige kleine Bugfixes.

Beta6.2.1

Diese Version erschien am 10.11.16.
Nun kann eingestellt werden, nach wie vielen Sekunden der Alarm ertönen soll.
Außerdem wurde der Alarm in die Hilfeseite aufgenommen.

Kompatiblität der verschiedenen Versionen des PZBPs und der PrimzahlenRemotes

Hier wird aufgelistet, welche Versionen des PZBPs untereinander hinsichtlich der Konfigurationsdateien sind und zu welcher Version welches PrimzahlenRemote bzw. welcher PrimahlenClient kompatibel ist.

Untereinander Kompatibel sind folgende Versionen des PZBPs

Alpha 1.0 DE bis Alpha 1.1 DE
Beta 1.0 DE bis Beta 2.10 DE
Beta 3.0 DE bis Beta 4.48 DE
Beta 5.0.0 DE bis Beta 6.2.1 DE

Folgende PrimzahlenRemotes/PrimzahlenClients sind mit folgenden PZBP Versionen kompatibel:

PrimzahlenClient Alpha 1.0 mit PZBP Beta 4.25 DE
PrimzahlenClient Alpha 1.1 mit PZBP Beta 4.25 DE
PrimzahlenClient Alpha 1.2 mit PZBP Beta 4.26 DE
PrimzahlenClient Alpha 1.3 mit PZBP Beta 4.27 DE
PrimzahlenClient Beta 1.0 mit PZBP Beta 4.28 DE
PrimzahlenClient Beta 1.1 mit PZBP Beta 4.29 DE
PrimzahlenClient Beta 1.2 mit PZBP Beta 4.30 DE
PrimzahlenClient Beta 1.3 mit PZBP Beta 4.31 DE
PrimzahlenClient Beta 1.4 mit PZBP Beta 4.32 DE bis Beta 4.34 DE
PrimzahlenClient Beta 1.5 mit PZBP Beta 4.35 DE bis Beta 4.38 DE
PrimzahlenRemote Beta 2.0 mit PZBP Beta 4.39 DE bis Beta 4.41 DE
PrimzahlenRemote Beta 2.1 mit PZBP Beta 4.42 DE bis Beta 4.48 DE
PrimzahlenRemote Beta 3.0.0 mit PZBP Beta 5.1.0 DE bis Beta 5.1.1 DE
PrimzahlenRemote Beta 4.0.0 mit PZBP Beta 6.0.0 DE
PrimzahlenRemote Beta 4.1.0 mit PZBP Beta 6.2.1 DE

Bekannte Bugs

Reperaturfunktion bis Beta 5.1.0

Nicht mehr aktuell, da es in der Beta 6.0.0 diese Funktion nicht mehr gibt, da die Speicherung sicherer gestaltet wurde.
Es gibt einen Bug in der Funktion "Reparatur": Wenn die Reparaturfunktion aufgerufen wird und Fehler findet, passiert es manchmal, dass, nachdem die Fehler behoben wurden, die Anzahl der bisher berechneten Primzahlen negativ wird. Daher funktioniert dann auch der Fortschrittsbalken "Datei voll" nicht mehr.
Falls jemand dieses Problem haben sollte, kann er mir eine E-Mail an support@primzahlenberechnungsprogramm.de schreiben, an welche die neuste primzahlen.txt und die settings.pzbp angehängt sind. Ich werde dann versuchen, die Werte so zu setzten, dass alles wieder funktionieren sollte.
Außerdem werde ich versuchen, diesen Fehler möglichst bald zu lösen, doch leider konnte ich ihn bisher nur auf die ziemlich komplexe Reparaturfunktion eingrenzen.