Seite 3 von 7

Re: SWT[5]#3

Verfasst: Do 25. Jun 2009, 19:46
von SLS
markusj hat geschrieben:Bezüglich des Praktikums - du meinst nicht zufällig ICPC?
Yup :)
markusj hat geschrieben:PS: Deine Beschleunigungswerte sehen sehr gut aus, ich erreiche auf meinem T7200 auch Werte im Bereich zwischen 1,9 und 2,0X
Danke. Besser geht es ja nicht, ohne auf QuadCore zu wechseln, oder zu cheaten (etwa nur die obere Hälfte berechnen, und die Symmetrie ausnutzen) :) Hast du eine Ahnung, woran es liegen könnte, dass 8 Threads bei mir langsamer sind als mehr oder weniger?
Und ich bin neugierig, ob deine Idee ("Teile ich den Task auf deutlich mehr Pakete als ich Threads habe") tatsächlich geholfen hat - bei mir laufen ja immer bei großer Anzahl Threads und kleine Dimensionen viele leer, tun also nichts und kosten nur Overhead (ich verwende ja die Formel aus der Vorlesung). Kurz: hast du so wie ich Beschleunigung unter 1.0x in diesem Fall?

Re: SWT[5]#3

Verfasst: So 28. Jun 2009, 15:14
von markusj
Respekt dass du bei ICPC dabei geblieben bist - wir sind nach der ersten Woche ausgestiegen, weil es nicht in die restliche Zeitplanung passen wollte.

Meine Idee hat funktioniert, ich erreiche eigentlich eine relativ gute Auslastung schon ab einer Seitenlänge von 100 (zumindest bis 32 Threads oder so).
Ich habe aber die Größe der Arbeitseinheiten nach unten hin gedeckelt (momentan mit 25 Pixel), man könnte vermutlich bei den sehr kleinen Testfällen (<=200) noch etwas mehr herausholen, wenn man kompromisslos in kleinste Einheiten teilen würde.
Das ganze wirkt sich aber nur bei kleinen Seitenlängen aus und zieht bei 64>= Threads die Kurve dann halt erst Mal unter Faktor 1, wenn später mehr Threads beschäftigt werden, verbessert sich das Verhältnis.

Optimal scheint meine Implementierung bei 4-8 Threads zu laufen, mein Anlaufverhalten (bei kleinen Seitenlängen) ist aber eigentlich immer etwas schlechter wie bei dir, vermutlich aus den oben angegebenen Gründen.

mfG
Markus

Re: SWT[5]#3

Verfasst: So 28. Jun 2009, 17:45
von Christian S.
Cauchy hat geschrieben:Interessante Diskussion!
Leider bin ich ein Threadneuling und habe lediglich ein wenig rumexperimentiert und bin auf den Threadpool gestoßen.

Da hier ja anscheinend viele Leute mit Skripten um sich schmeissen, komme ich hier auch mal mit einer etwas längeren Lösung an:
...
Hey, vielen Dank schon mal! Ich habe das ganze Mal in eine .py-Datei gespeichert und ausgeführt, doch so recht will es nicht ;). Habe die .jar-Datei im selben Ordner und auch eine ausgabe.txt angelegt. Übersehe ich was (ich habe leider keine Ahnung von Python ;))?

Re: SWT[5]#3

Verfasst: Mo 29. Jun 2009, 09:20
von Cauchy
Unter welchem Betriebsystem arbeitest du?
Die .jar Datei musst du mandelbrot.jar nennen
Starte mal die python Datei über die Kommandozeile, also
Start->Ausführen: cmd
dann zu deinem Ordner, wo du die py Datei und die mandelbrot.jar Datei gespeichert hast
und geb dann "python namederpythondatei.py" ein.

Schau dann mal welche Fehlermeldung du bekommst und poste sie hier.
Falls du das Script auf Linux benutzen willst, musst du noch ne Kleinigkeit umändern,
ich warte aber erstmal auf deine Antwort.

Grüße,
Cauchy

Re: SWT[5]#3

Verfasst: Mo 29. Jun 2009, 17:52
von Christian S.
Cauchy hat geschrieben:Unter welchem Betriebsystem arbeitest du?
Die .jar Datei musst du mandelbrot.jar nennen
Starte mal die python Datei über die Kommandozeile, also
Start->Ausführen: cmd
dann zu deinem Ordner, wo du die py Datei und die mandelbrot.jar Datei gespeichert hast
und geb dann "python namederpythondatei.py" ein.

Schau dann mal welche Fehlermeldung du bekommst und poste sie hier.
Falls du das Script auf Linux benutzen willst, musst du noch ne Kleinigkeit umändern,
ich warte aber erstmal auf deine Antwort.

Grüße,
Cauchy
Nochmal vielen Dank, ging wohl auf meine eigene Dummheit /die "Alles Markieren"-Funktion im Forum zurück, die automatisch Tabs einzufügen scheint. Jetzt funktioniert es - ohne die Tabstopps ^^.

Re: SWT[5]#3

Verfasst: Mo 29. Jun 2009, 22:10
von Christian S.
Nochmal zu euren Laufzeiten: Verwendet ihr irgendwelche Optimierungstricks oder teilt ihr die zu berechnende Bildfläche in Teile ähnlich wie in der Vorlesung (Math.min(...)) in gleich Große teile auf? Ich mache letzteres und bei mir kommt es bei der parallelen Variante zu teils größeren Laufzeitschwankungen, jedoch bin ich mir nicht sicher ob es an meinem System oder an der Implementierung liegt. Hat jemand mit demselben Ansatz ähnliche Erfahrungen gemacht oder ist meine Angehensweise ungeeignet?
Vielen Dank,
Christian

Re: SWT[5]#3

Verfasst: Mo 29. Jun 2009, 22:50
von Thomas
wo schreibtn ihr die rollen der interfaces hin? die befinden sich ja im jar und da kann ich sie ja nicht verändern oda? habt ihr dann einfach die rollen auch in start geschrieben oder kann man die vllt doch lesbar machen?

Re: SWT[5]#3

Verfasst: Mo 29. Jun 2009, 22:56
von Tankwart
Hab das einfach als Kommentare in den Quelltext, den müssen wir ja eh mit abgeben.

Re: SWT[5]#3

Verfasst: Mo 29. Jun 2009, 23:15
von Thomas
ja mir gings darum in welche klasse in die start klasse dann oder in die neue klasse die du geschrieben hast?

Re: SWT[5]#3

Verfasst: Mo 29. Jun 2009, 23:41
von Tankwart
In Start, SequentialMandelbrot & ParallelMandelbrot.

/e: Ahjo und in AbstractMandelbrot natürlich noch.