TiS 100
- Cybermancer
- Beiträge: 5268
- Registriert: 04.09.2015, 17:35
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 70 Mal
TiS 100
Wer hilft mir beim parallelisieren des folgenden Problems:
https://pasteboard.co/IkNayWU.jpg
Während mein Instruction Count und die Anzahl benutzter Nodes optimal zu sein scheinen, ist es mein Cycle Count nicht:
https://pasteboard.co/IkNbzgI.jpg
Hat wer Ideen diesen zu optimieren?
Wer wissen will, worum zum Teufel es hier überhaupt geht:
https://www.youtube.com/watch?v=TxJVH5TZQFY
https://pasteboard.co/IkNayWU.jpg
Während mein Instruction Count und die Anzahl benutzter Nodes optimal zu sein scheinen, ist es mein Cycle Count nicht:
https://pasteboard.co/IkNbzgI.jpg
Hat wer Ideen diesen zu optimieren?
Wer wissen will, worum zum Teufel es hier überhaupt geht:
https://www.youtube.com/watch?v=TxJVH5TZQFY
You cannot win, only break even.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
-
- Beiträge: 8221
- Registriert: 26.08.2015, 13:56
- Hat sich bedankt: 52 Mal
- Danksagung erhalten: 121 Mal
Re: TiS 100
Ich bin mir zwar nicht sicher, was der cycle-count so countet,Cybermancer hat geschrieben: ↑23.06.2019, 22:20 Wer hilft mir beim parallelisieren des folgenden Problems:
https://pasteboard.co/IkNayWU.jpg
Während mein Instruction Count und die Anzahl benutzter Nodes optimal zu sein scheinen, ist es mein Cycle Count nicht:
https://pasteboard.co/IkNbzgI.jpg
Hat wer Ideen diesen zu optimieren?
Wer wissen will, worum zum Teufel es hier überhaupt geht:
https://www.youtube.com/watch?v=TxJVH5TZQFY
habe aber die Vermutung, das hat was mit der Gesamtzahl der auugeführten Instruktionen zu tun,
oder ist das der Instruction count, dafür wär der aber zu klein, das ist wohl eher für eine Inputzeile.

Na wie auch immer, das Video ist mir einfach zu lange.

Da Prozess(?) 1 und 3 ja mal hautpsächlich nichts tun haben, bzw. drauf warten,
dass Prozess 2 fertig wird (ist das so?), wärs ja eine Idee wenn der 1'er und der 3'er was vom 2'er übernehmen könnten.
Falls ich völlig daneben lieg, kannst jetzt aufhören zu lesen.

Da wäre ganz grob meine Idee IN.S nicht vom 2'er sondern vom 1'er und vom 3'er gleichzeitig auswerten zu lassen
Der 1'er liefert 0 falls IN.S >0 sonst IN.A
Der 3'er liefert 0 bei IN.S <0 sonst IN.B
Der 2'er oder sonst ein x'er zählt "dann" einfach zusammen und gibt das aus.
Oder so ähnlich.

Den Rest überlass ich dir, weil ich eigentlich keine Idee davon hab was da abgeht,
meine Vermutung ist jedoch dass eine Verminderung des Cycle-Counts dann zulasten des Node-Count geht,
und für alle 3 Werte Minimas gar nicht gleichzeitig erreicht werden können.

Physik ist keine grüne Ideologie.
- Cybermancer
- Beiträge: 5268
- Registriert: 04.09.2015, 17:35
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 70 Mal
Re: TiS 100
Hast du schon mal von den Connection Machines gehört ?
Das Spiel hat eine davon inspirierte Architektur. Ich dachte eigentlich, den ein oder anderen könnte das interessieren.
Naja, Pech, wenn die meisten hier eh aus der Informatik kommen.
Cycle Count ist die Anzahl der verbrauchten Zyklen, wenn in jedem Zyklus ein Befehl abgearbeitet wird.
Das nächste Mal spiele ich dann wieder Killerspiele.

Das Spiel hat eine davon inspirierte Architektur. Ich dachte eigentlich, den ein oder anderen könnte das interessieren.
Naja, Pech, wenn die meisten hier eh aus der Informatik kommen.
Cycle Count ist die Anzahl der verbrauchten Zyklen, wenn in jedem Zyklus ein Befehl abgearbeitet wird.
Das nächste Mal spiele ich dann wieder Killerspiele.


You cannot win, only break even.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
-
- Beiträge: 8221
- Registriert: 26.08.2015, 13:56
- Hat sich bedankt: 52 Mal
- Danksagung erhalten: 121 Mal
Re: TiS 100
Zu unserer Zeit (Anfang der 990'er des letzten Jahrtausends) hießen bei uns Transputer.Cybermancer hat geschrieben: ↑24.06.2019, 18:59 Hast du schon mal von den Connection Machines gehört ?
https://de.wikipedia.org/wiki/Transputer
Damit haben wir auf selbstgestrickter 386'er Architektur eine Anwendung für grafische Bildbearbeitung
inkl. "Zauberstab" zum Freistellen von Vordergründen in Echtzeit in Bilddateien mit hoher Auflösung realisiert.

Die Dinger kosteten ein Vermögen.

Aber das Spielchen ist nett.

Ich bin bei deinem Problem (am Papier) im Schnitt auf 4 Zyklen je Input-Zeile (ohne Vor- und Nachlauf im Beginn und Ende der Liste)
Allerdings mit 7 Nodes und 18 Instructions.
Physik ist keine grüne Ideologie.
- Cybermancer
- Beiträge: 5268
- Registriert: 04.09.2015, 17:35
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 70 Mal
Re: TiS 100
Da hast du gegenüber meiner Lösung noch ein paar Instruktionen abknapsen können.
Meine Lösung
https://pasteboard.co/Il2Pdrw.jpg
Die Statistik:
https://pasteboard.co/Il2QgFx.jpg
Magst deine Lösung auch präsentieren?
Meine Lösung
https://pasteboard.co/Il2Pdrw.jpg
Die Statistik:
https://pasteboard.co/Il2QgFx.jpg
Magst deine Lösung auch präsentieren?
You cannot win, only break even.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
-
- Beiträge: 8221
- Registriert: 26.08.2015, 13:56
- Hat sich bedankt: 52 Mal
- Danksagung erhalten: 121 Mal
Re: TiS 100
Sorry ich hab beim Zählen der Instruktionen wohl die 3 Nodes mit den einzelnen Moves vergessen.Cybermancer hat geschrieben: ↑25.06.2019, 14:09 Da hast du gegenüber meiner Lösung noch ein paar Instruktionen abknapsen können.
Meine Lösung
https://pasteboard.co/Il2Pdrw.jpg
Die Statistik:
https://pasteboard.co/Il2QgFx.jpg
Magst deine Lösung auch präsentieren?

Also sinds bei mir dann 21.
Ich hoffe das hat dir keinen schlaflosen Vormittag gekostet.

Meine Lösung ist grundsätzlich ident mit zwei kleinen Unterschieden
1) im Additionsnode (mitte, mitte)
Du:
ADD LEFT ACC
ADD RIGHT ACC
MV ACC DOWN
MV NIL.ACC
Ich:
MV LEFT ACC
ADD RIGHT
MV ACC DOWN
-> 1 Instruction weniger
-> 1 Cycle weniger im Gesamtlauf ganz am Schluss.
Mitendrin spielts keine Rolle, weil dieser Node eh meist 1 Zyklus auf Input wartet.
Aber vielleicht geht das auch nur bei mir am Zettel.

2) In den Vergleichs-Nodes Links und Rechts oben, hab ich die letzten beiden Zeilen andersrum,
dann wirds noch schneller, da A oder B auch im S<>0 Fall 1 Zyklus "früher" weitergereicht werden.
Praktisch macht das im Gesamtlauf auch wieder genau 1 Zyklus aus und auch nur ganz am Schluss,
wenn das letzte S <> 0 ist, also durchschnitlich in 2 von 3 Fällen.
Also insgesamt -1 Instruktion und -1,66 Zyklen.
Aber Kleinvieh macht auch Mist.

Spannend wäre, ob die beiden Vergleichsnodes links und rechts auch auf 3 OPS reduziert werden könnten.
Dann hätten wir in jedem Node maximal 3 OPS.
Wär eine schöne Lösung: 4 Nodes unter Volldampf eng ineinander verzahnt und 3 faule Wasserträger.

Ich bin da aber gescheitert.

Physik ist keine grüne Ideologie.
- Cybermancer
- Beiträge: 5268
- Registriert: 04.09.2015, 17:35
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 70 Mal
Re: TiS 100
Wenn du den Wert im Akkumulator runterreichst, dann bleibt der da drin stehen.
Du musst dir die 0 aus /dev/zero ziehen, sonst werden die folgenden Werte einfach draufaddiert.
Du musst dir die 0 aus /dev/zero ziehen, sonst werden die folgenden Werte einfach draufaddiert.
You cannot win, only break even.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
-
- Beiträge: 8221
- Registriert: 26.08.2015, 13:56
- Hat sich bedankt: 52 Mal
- Danksagung erhalten: 121 Mal
Re: TiS 100
Ja eh, aber ich starte ja nicht mit ADD LEFT ACC sondern ein MV LEFT ACC.Cybermancer hat geschrieben: ↑25.06.2019, 16:04 Wenn du den Wert im Akkumulator runterreichst, dann bleibt der da drin stehen.
Du musst dir die 0 aus /dev/zero ziehen, sonst werden die folgenden Werte einfach draufaddiert.
Da ist es doch dann egal, was vorher drinnen stand, oder?

Physik ist keine grüne Ideologie.
- Cybermancer
- Beiträge: 5268
- Registriert: 04.09.2015, 17:35
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 70 Mal
Re: TiS 100
Stimmt,ist heute einfach zu warm.
1 Instruction weniger, aber der Cycle Count bleibt bei 204.
1 Instruction weniger, aber der Cycle Count bleibt bei 204.
You cannot win, only break even.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
- Cybermancer
- Beiträge: 5268
- Registriert: 04.09.2015, 17:35
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 70 Mal
Re: TiS 100
Und die nächste Aufgabe samt meiner Lösung.
https://pasteboard.co/Il5A6og.jpg
Ziehst noch mit giffi?
https://pasteboard.co/Il5A6og.jpg
Ziehst noch mit giffi?
You cannot win, only break even.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
You can only break even at 0K.
You can never reach 0K.
Denk ich an Deutschland in der Nacht,
Dann bin ich um den Schlaf gebracht,
Ich kann nicht mehr die Augen schließen,
Und meine heißen Tränen fließen.
-
- Beiträge: 8221
- Registriert: 26.08.2015, 13:56
- Hat sich bedankt: 52 Mal
- Danksagung erhalten: 121 Mal
Re: TiS 100
Schöne LösungCybermancer hat geschrieben: ↑25.06.2019, 21:05 Und die nächste Aufgabe samt meiner Lösung.
https://pasteboard.co/Il5A6og.jpg
Ziehst noch mit giffi?

Spontangedanke 1:
Die Weitergabe von B ist eigentlich obsolet,
da B aus A + Diff (=acc) berechnet werden kann.
Der Rechnungsnode wäre dann aber komplexer weil A zweimal verwendet wird
also zwischengespeichert werden müsste. BACC, SWAP etc..
->weniger Nodes aber mehr Zyklen
Spontangedanke2:
MIN (A,B) und MAX(A,B) auf 2 Pfaden berechnen und in dieser Reihenfolge ausgeben
um Vergleiche und Jumps zu eliminieren.
S=A+B
D=Abs(A-B)
MIN(A,B) = (S-D)/2
MAX(A,B) = (S+D)/2
Aber Abs() und durch 2 Teilen kann das Ding wohl nicht.

Da du aber schon bei Maximallänge 4 bist wird das aber schwierig,
da eine Optimierung auf Max 3 je Node zielen müßte.

Physik ist keine grüne Ideologie.
-
- Beiträge: 8221
- Registriert: 26.08.2015, 13:56
- Hat sich bedankt: 52 Mal
- Danksagung erhalten: 121 Mal
Re: TiS 100
Ja, hast recht.Cybermancer hat geschrieben: ↑25.06.2019, 16:46 Stimmt,ist heute einfach zu warm.
1 Instruction weniger, aber der Cycle Count bleibt bei 204.
Deine 4. Instruction ja läuft parallel zum letzen move, bringt also insgesamt nichts.
Physik ist keine grüne Ideologie.