2010-12-27 4 views
2

Ich habe einen Forth Mandelbrot Fraktal Plotter geschrieben, und so viel wie eine technische Übung als alles andere möchte ich versuchen, es mit etwas Parallelverarbeitung zu beschleunigen.Gforth Parallelverarbeitung

Vorläufig wäre ich froh, wenn ich nur meine beiden Kerne verwenden könnte (einen Kern eine Hälfte des Bildes und die andere die andere Hälfte machen).

Ich habe festgestellt, dass Windows XP zwei Instanzen von Gforth ziemlich glücklich verwalten und versuchen wird, so viel Prozessorkapazität wie möglich zu verwenden, so dass zwei Prozesse laufen könnte ein Start sein. Ich bin mir jedoch nicht sicher, ob sie Speicher gemeinsam nutzen können oder ob sie beide gleichzeitig in eine Datei schreiben können (oder wie man einen Prozess anweist, mit dem Schreiben von x Bytes vom Anfang der Datei an zu beginnen).

Zusammenfassend, wie kann ich die parallele Verarbeitung mit Gforth unter Windows XP tun?

Antwort

0

Siehe GForth Pipes.

+0

Dies ist wahrscheinlich eine Lücke in meinem Verständnis, aber wie kann ich Pipes verwenden, um zu helfen? – sheepez

+0

@sheepez Sie können eine GForth-Instanz aus einem laufenden GForth spawnen, sie mit Pipes verbinden und durch die Pipes kommunizieren lassen. So können Sie den weniger zuverlässigen Shared Memory/File-Ansatz vermeiden. –

+0

@Vijay Mathew Bisher berechnet mein Code die Farbe eines Pixels und schreibt diese in eine Bitmap-Datei. Müsste ich die Art und Weise verändern, wie es arbeitet, um Rohre sinnvoll zu integrieren, so frage ich, wie das Synchronisieren der Dinge schwierig aussieht. – sheepez

2

Sie könnten jedes Programm ein Pixelraster anstelle eines einzelnen Pixels erstellen lassen und es am Ende neu kombinieren.

AFAIK, Pixel in Mandelbrot-Sets sind unabhängig voneinander (jemand korrigiert mich, wenn ich falsch liege), aber die Berechnung von jedem von ihnen ist nicht-deterministisch, so dass es ein schweres Problem, richtig zu parallelisieren, ohne irgendeine Art von zentralen Versandthread (dann wieder stoßen Sie auf mögliche Probleme mit der Konkurrenz).

+1

Ich denke, Sie haben Recht mit der Unabhängigkeit von Pixeln, obwohl ich nicht sicher bin, in welcher Weise sie nicht deterministisch sind. Auf jeden Fall, soweit ich das beurteilen kann, führt gforth keine Systemaufrufe unter Windows aus, also bin ich ein bisschen festgefahren. – sheepez

Verwandte Themen