SWT[5]#3

SLS
Beiträge: 77
Registriert: So 26. Okt 2008, 20:11
Wohnort: Karlsruhe

Re: SWT[5]#3

Beitrag 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?
When we say that two functions are almost always used together, we should remember that "almost" is a euphemism for "not."
-- David L. Parnas, "Designing Software for Ease of Extension and Contraction"
markusj
Beiträge: 164
Registriert: Do 23. Okt 2008, 22:07

Re: SWT[5]#3

Beitrag 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
Christian S.
Beiträge: 225
Registriert: Sa 25. Okt 2008, 12:48

Re: SWT[5]#3

Beitrag 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 ;))?
Benutzeravatar
Cauchy
Beiträge: 108
Registriert: So 30. Nov 2008, 17:08

Re: SWT[5]#3

Beitrag 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
Christian S.
Beiträge: 225
Registriert: Sa 25. Okt 2008, 12:48

Re: SWT[5]#3

Beitrag 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 ^^.
Christian S.
Beiträge: 225
Registriert: Sa 25. Okt 2008, 12:48

Re: SWT[5]#3

Beitrag 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
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: SWT[5]#3

Beitrag 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?
Tankwart
Beiträge: 133
Registriert: Do 20. Nov 2008, 13:56

Re: SWT[5]#3

Beitrag von Tankwart »

Hab das einfach als Kommentare in den Quelltext, den müssen wir ja eh mit abgeben.
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: SWT[5]#3

Beitrag von Thomas »

ja mir gings darum in welche klasse in die start klasse dann oder in die neue klasse die du geschrieben hast?
Tankwart
Beiträge: 133
Registriert: Do 20. Nov 2008, 13:56

Re: SWT[5]#3

Beitrag von Tankwart »

In Start, SequentialMandelbrot & ParallelMandelbrot.

/e: Ahjo und in AbstractMandelbrot natürlich noch.
Zuletzt geändert von Tankwart am Di 30. Jun 2009, 23:51, insgesamt 1-mal geändert.
Antworten

Zurück zu „Übung“