Rechenleistung zu niedrig für mathematische Berechnung. Lösung?

... komplette Frage anzeigen

11 Antworten

Ich weiß ja nicht, wie viele Rechner du zuhause hast und ob die sich nicht gegenseitig ausbremsen, aber angenommen, du kannst deine Rechenleistung verzehnfachen, dann wartest du immer noch 3 Wochen auf das Ergebnis.

Und falls du keinerlei Erfahrung damit hast, brauchst du sicher mehr als ein zwei Tage (eher Monate), um die Dinger zum Laufen zu bringen.

Wäre es nicht vielleicht geschickter am Algorithmus herumzufeilen?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ooga13
17.08.2016, 15:29

Naja es geht ja auch ein bisschen um das Basteln an sich und ich bräuchte so einen Pc bestimmt auch für die Zukunft. Der Algorithmus ist sehr simpel, ich denke deswegen nicht, dass es da viel dran zu feilen gibt.. Schickes Profilbild übrigens ;)

0

Da würde ich doch eher von Java zu C wechseln, das ganze multithreaded machen, und den Algorithmus optimieren.

Wenn du nen Faktor 10 rausholst bist du schon bei unter 2 Wochen Rechenzeit, das geht doch. Und, seien wir mal ehrlich: Die meisten Algorithmen sind erstmal unoptimiert. Da kann man meist viel mehr als Faktor 10 rausholen.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ooga13
17.08.2016, 15:32

Könnte tatsächlich sein, dass andere Programmiersprachen besser geeignet sind. Ich werde dazu wohl mal eine neue Frage aufmachen. 

0

Keine Ahnung ob du es schaffst das umzusetzen...aber für komplizierte Aufgaben(z.b. bitcoin Mining) werden statt der CPU Grafikkarten zur Lösung der Aufgabe verwendet...das dürfte die ganze Geschichte wesentlich beschleunigen (also wenn die ne anständige Grafikkarte hast)

Antwort bewerten Vielen Dank für Deine Bewertung

Das geht theoretisch. Du müsstest aber ein Server programmieren, der an die PCs schickt, in welchen Bereich sie rechnen müssen und die Ergebnisse geschickt bekommt.

Die Clients auf den anderen PCs sollten bestenfalls in mehreren Threads rechnen können. Die bekommen die einzelnen Bereiche, teilen das auf die Prozessorkerne auf und schicken dann das Ergebniss an den Server, der Server gibt dann den nächsten Bereich an.

Java an sich stellt dabei weniger das Problem dar, das ist recht schnell. Das Netzwerk-Zeug kannst du mit TCP-Sockets machen und für das Multithreading nimmst du einen Thread-Pool.

Antwort bewerten Vielen Dank für Deine Bewertung

Kannst du machen. Neben der Hardware ist aber entscheidend das du ein Betriebssystem hast das damit umgehen kann.

Antwort bewerten Vielen Dank für Deine Bewertung

Handelt es sich dabei um eine Monte-Carlo-Simulation ?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ooga13
17.08.2016, 15:42

Ganz genau ;)

1

So denken viele. ABER die Herangehensweise ist falsch.

Der Weltmeister der Pi-Berechnung hat gezeigt, dass man mit einem normalen PC unter 1000 Euro

1 Mrd. Nachkommastellen in unter 4 min berechnen kann, wenn:

§1: guter Algorithmus

§2: gute Programmiersprache

§3: gute Optimierung

Solange Du die Ergebnisse nicht auf 1 Mio. Nachkommastellen genau brauchst, sind Wahrscheinlichkeitsberechnungen kein Problem!

Antwort bewerten Vielen Dank für Deine Bewertung

Wärs nicht einfacher und günstiger einfach auf ne geeignetere programmsprache umzusteigen die das schneller und sparender hinbekommt zb cpp?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von rmnstr
17.08.2016, 23:10

Mit C++ wird er nicht viel schneller als mit Java werden.

0

Am einfachsten wäre es wohl einfach Rechenpower zu mieten, geht zum Beispiel mit Amazon EC2 ;)

https://aws.amazon.com/de/ec2/?tag=comput0b2-20

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ooga13
17.08.2016, 15:30

Das hört sich gar nicht schlecht an, aber ist ja keine Lösung auf dauer. 

0

Klar geht das, Du müsstest eine Anwendung finden/programmieren, die auf allen rechnern gleichzeitig rechnet (natürlich jeder einen anderen Teil der Gleichung) und diese dann z.B. per Netzwerk auf dem administrierenden Rechner zusammenführt.

Vielleicht hast du ja glück und jemand stellt das was du suchst kostenlos zur Verfügung.

Antwort bewerten Vielen Dank für Deine Bewertung

Ein halbes Jahr? Was zum Teufel berechnest du da?

Rechner "zusammenschalten" wird dir nicht viel bringen da zu langsame Verbindung. Ausserdem müsstest du selbst Software schreiben die die Lastverteilung vornimmt.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von ooga13
17.08.2016, 15:20

Esist eine Summe mit sehr breitem Intervall und ich denke, dass java vielleicht nicht die richtige Programmiersprache ist um mathematische Berechnungen zu lösen. Das hört sich sehr kompliziert an.. Ich bin kein großer Informatiker. 

0

Was möchtest Du wissen?