ParallelRadixSort

sortByPos

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

ParallelRadixSort
Eine Frage zur Aufgabe sortByPos. Ich habe leider nicht genau verstanden, welche Arbeit hier die Threads übernehmen sollen.

Lg Anna


[m]sortByPos()[/m] erhält ja als Argument ein Array von Strings und soll diese nach der Stelle [m]n[/m] sortieren. Du hast also eine Aufgabe (zum Beispiel das Einsortieren in die Buckets) und viele Daten (die Strings aus dem Array). Also kannst du, wie in den vorherigen Aufgaben, die Daten wieder auf die Threads aufteilen, die die Aufgabe durchführen.


Wie soll man es denn anstellen, dass das verfahren auch in der parallelen Variante noch stabil ist?
Man kann ja jetzt nicht mehr davon ausgehen, dass die Strings in der richtigen Reihenfolge bearbeitet werden…
(muss man z.B. eine extra klasse machen, wo die ursprüngliche position im array gespeichert ist, und dann die buckets nachträglich danach sortieren?)


Nein, es reicht die Arbeit passend aufzuteilen und die Teilergebnisse richtig zusammenzufassen.


sehe ich anders…
bei meiner implementierung (ohne extra zeug) wurden beispielsweise in einem fall „fpdje“ und „foyso“ vertauscht, „dpdje“ kam fälschlicherweise zuerst, denn im letzten schritt, als sie beide gemeinsam ins bucket für f gekommen sind, war offensichtlich der zuletzt gestartete thread schneller als der vorher gestartete, deshalb ist der vorher im array früher vorkommende String später einsortiert worden…
ich weiß nicht wie man (abgesehen von meiner beschriebenen Variante) dieses indeterministische verhalten abfangen soll


Ahhh, ich glaub jetzt weiß ich wo das Problem liegt. Jeder Thread sollte seine eigenen Buckets haben.
Sich die Buckets zu teilen ist keine gute Idee ;).


ebenfalls Ahhh!
jetzt verstehe ich wie du das angehst xD
Aber meine Variante funktioniert jetzt auch :slight_smile: also gutes gelingen ^^

Edit: Trotz geteilter buckets :stuck_out_tongue:


Kannst du, nach ablauf der Abgabefrist, kurz schildern wie du geteilte Buckets sicher bekommst? Nur Interesse halber :slight_smile: