Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / rybka und co im c64 möglich?
- - By emilo reggio Date 2009-06-20 16:25
hi genossen,

ist es möglich schachprogramme für den c64 zu emulieren? wie geht das? hat es schon jemand gemacht?
und was kommt dabei heraus?

viele fragen, viele antworten??

emilo

p.s.

wenn schon der colossus 4 auf der hardware 1600-1700 nwz erreicht, was würde rybka dann erreichen??
Parent - By Werner Schüle Date 2009-06-20 23:23
Prima,
und dann könnten wir die Frage beantworten:

Wie stark ist Rybka mit 0,01 nps 

Werner
Parent - - By Harald Faber Date 2009-06-21 01:48
Naja, Rybka und Co werden kaum in einem C64-Emulator laufen. Aber es spricht nichts dagegen, einen C64-Emulator zu nehmen und darin die C64er-Programme von früher auszuführen. Programmsammlungen dazu gibt es en masse. Bei Schachprogrammen kann ich mich nur noch an Sargon erinnern, aber das war damals sehr schwach.
Gruß,
Harald
Parent - - By Benno Hartwig Date 2009-06-21 20:51 Edited 2009-06-21 20:54
[quote="Harald Faber"]Bei Schachprogrammen kann ich mich nur noch an Sargon erinnern, aber das war damals sehr schwach.[/quote]Colossus (ich hatte 2 Versionen. War das nun 1.0 und 2.0? Weiß nicht mehr. Die erste Version spulte noch in 10 Minuten von der Datasette, und dann *ploing* waren die 27 kB schon geladen...) spiele für mich als reiner Feierabend-hin-und-wieder-Spieler durchaus genügend stark.

Man könnte ja mal C-kompilate von hauptsächlich auf 16-bit-Integer basierender Logik betrachten.
Gibt es eigentlich ungefähre Schätzungen, um welchen Faktor dann z.B. ein Kern eines aktuellen Prozessors schneller ist als der 6510 mit seinem 1MHz und 8bit Wortbreite?
10000 oder so?

Benno
Parent - - By Wolfram Bernhardt Date 2009-06-22 15:31
Hallo!

Ja, das fände ich super interessant. Ich vermute, Rybka wäre auch auf dem guter alten 64er für Normalsterbliche unschlagbar.
Bekäme man Rybka auf den C64? Nunja. C-Compiler gibt es einige.

http://forum.fachinformatiker.de/c-compiler-ides-apis/12532-c64-c-compiler-c-c-interpreter.html

Allerdings ist C nicht gleich C und es wäre sicherlich sehr viel Arbeit damit verbunden, den SourceCode anzupassen.
Die nächste Frage ist tatsächlich, ob die geringere bit-Breite Probleme macht, vermutlich sorgt der Compiler aber dafür, daß das klappt.
Dann dürfte das Compilat natürlich auch nicht zu groß werden. 64k ist aber nur die theoretische Grenze, ich schätze in der Praxis steht gut die Hälfte davon zur Verfügung.

Jetzt bräucht man also nur jemanden, der zwei Wochen Zeit und Lust hat, das zu machen...

Ciao,
     Wolfram
Parent - - By Michael Scheidl Date 2009-06-22 15:43
Du träumst! Oder glaubst Du im Ernst, Vas Rajlich stellt seinen wertvollen Rybka-C-Code für irgend ein Freakexperiment zur Verfügung?!

P.S. Scheiß auf den C64; wir sind hier nicht im Museum.
Parent - By Wolfram Bernhardt Date 2009-06-22 19:59
Fein argumentiert, aber im Kern natürlich richtig.

Mir war so als gäbe es von einer früheren Version tatsächlich den Code frei. Aber für so ein Experiment reichen ja auch die anderen genannten.

Ciao,
     Wolfram
Parent - By Benno Hartwig Date 2009-06-23 08:27
[quote="Michael Scheidl"]P.S. Scheiß auf den C64; wir sind hier nicht im Museum.[/quote]Aber in einer Art Terrarium sind wir schon.
Und wenn man schon über Dinge nachdenkt, die einfach Spaß machen, dann ist der C64 nicht ausgegrenzt.
Finde ich.

Benno
Parent - - By Benno Hartwig Date 2009-06-22 15:51
[quote="Wolfram Bernhardt"]Ja, das fände ich super interessant.[/quote]
Das das wirklich klappt, denke ich nicht. Schon der zur Verfügung stehende Hauptspeicher wäre seehhr eng.
Statt Rybka könnte man ja auch an Glaurung oder Toga denken. Da stehen die Sourcen zur Verfügung.

Der Faktor 10000 (so er denn ungefähr stimmt) bedeutet übrigens, dass bei Turnierzeit Rybka mit der Rechenpower auskommen muss, die sie jetzt bei durchschnittlich 0,018 Sekunden pro Zug zur Verfügung hat. Und ob das Programm so designed ist, dass dabei überhaupt gespielt werden kann, erscheint mir zweifelhaft.
Z.B. die Vertiefungen, die Vas ggf. implementiert hat, die auch bei kleinsten Grundrechentiefen angestoßen werden, sprengen dann womöglich bereits die Turnierbedenkzeit.
Stufe 1Ply wurde noch nicht durchgerechnet, da ist das Blättchen schon gefallen.

Benno
Parent - - By Wolfram Bernhardt Date 2009-06-22 20:08
Ja, das mit dem Speicher sei mal dahingestellt, wir wissen es schlicht nicht.
Den 64er sollte man allerdings auch nicht unterschätzen. Ich hab ihn seinerzeit direkt in Assembler programmiert und kann nur sagen: So ist die Kiste hölleschnell. 

Daß man den Faktor so direkt umrechnen kann glaube ich nicht. Die reine Taktzahl ist natürlich ein guter Anhaltspunkt, aber der 64er schleppt im Vergleich zu heutigen Rechnern und deren Betriebssystem sehr wenig overhead mit sich rum.

Ich würde meine Annahme andersherum begründen: Die Schachprogramme auf dem 64 waren schon auch nicht ganz schlecht. Und die Algorithmen haben sich in der Zwischenzeit ja nicht verschlechtert, im Gegenteil. Ich denke also, daß eine sehr gute Engine von heute (muss nicht Rybka sein) alle Schachprogramm auf dem 64er locker wegputzen würde, wenn sie gegeneinander auf zwei 64ern laufen würden.

Das Design ist ein guter Hinweis. Solange die Programme nicht irgendwas parallelisiert haben (was mit dem 64er fast unmöglich ist), würde es imho klappen.

Nunja, letztlich werden wir es aber nicht erfahren - ich hab für einen "Beweis" leider keine Zeit (bekomme aber gerade Lust) a

Ciao,
    Wolfram
Parent - - By Benno Hartwig Date 2009-06-23 09:07
[quote="Wolfram Bernhardt"] So ist die Kiste hölleschnell. [/quote] "Alles ist relativ."

[quote="Wolfram Bernhardt"] Daß man den Faktor so direkt umrechnen kann glaube ich nicht. Die reine Taktzahl ist natürlich ein guter Anhaltspunkt, aber der 64er schleppt im Vergleich zu heutigen Rechnern und deren Betriebssystem sehr wenig overhead mit sich rum.[/quote]

Dumpf erinnere ich mich, dass der 6510 höchstens vier(!) Takzyklen benötigte für seine 'kompliziertesten' Befehle.
Dass sieht heute sehr stark anders aus!
Allerdings sieht die Leistungsfähigkeit dieser einzelnen Befehle auch sehr stark anders aus :-o
Und die Wortbreite sowieso.
Taktzahlenvergleich ist nur ein sehr grober Einstieg in einen Leistungsvergleich, klar. Ich hatte aber nichts anderes
So kam ich auf 10000 als Faktor zwischen der Leistungfähigkeit zwischen C-Kompilaten auf C64 und einem aktuellen Prozessorkern.
Würdest du einen anderen Faktor vorschlagen? Welchen?

Um einen verlässlicheren Eindruck zu gewinnen könnte man ja eine kleine, hausbackene Benchmark-Routine schreiben.
Eine Routine, die eben auch von einem C64-C-Compiler akzeptiert wird.
Die würde dann einen Faktor liefern, der schon eine gewisse Aussagekraft hat.

Dass auf 6510 und modernen Prozessoren auch mit Performancegewinn in Assembler programmiert werden kann, kommt hinzu.
Allerdings würde solcher Vorteil schnell wieder kaputt gehen, wenn aufgrund der unhandlicheren Programmierweise in der Logik oder im Programmablauf Mängel bestehen blieben.

[quote="Wolfram Bernhardt"] Ich denke also, daß eine sehr gute Engine von heute (muss nicht Rybka sein) alle Schachprogramm auf dem 64er locker wegputzen würde, wenn sie gegeneinander auf zwei 64ern laufen würden.[/quote]Ich wäre skeptisch. Es könnte sein, dass moderne Engines so geschrieben sind, dass sie für Grundsätzliches (Initialisierungen etc.) mehr Rechenleistung benötigen, die sie bei C64-Power auch bei Turnierzeit einfach nicht haben.

Ausgehend von Faktor 10000:
Eine Turnierpartie könnte dem C64 z.B eine Rechenpower bieten, die 0,018 Sekunden pro Zug entspricht.
Für 60 Züge wäre das dann gut eine(!) Sekunde.
Bringen Rybka, Toga... in 1 Sekunde denn überhaupt soetwas wie eine komplette Partie zustande?

Soweit ich mich erinnere:
Colossus auf dem C64 hat bei Turnierzeiten eigentlich sehr sicher jedes Matt in 3 gesehen, und auch viele Matt in 4 konnte er in weniger als 3 Minuten finden.
Immerhin.
Könnte Rybka das auch in 18/1000 Sekunden?

Benno
Parent - - By Wolfram Bernhardt Date 2009-06-23 20:48
Zitat:
Taktzahlenvergleich ist nur ein sehr grober Einstieg in einen Leistungsvergleich, klar. Ich hatte aber nichts anderes
So kam ich auf 10000 als Faktor zwischen der Leistungfähigkeit zwischen C-Kompilaten auf C64 und einem aktuellen Prozessorkern.
Würdest du einen anderen Faktor vorschlagen? Welchen?


Nunja... ähm... für diese Frage... so ca. 30.000.000 Jedenfalls hab ich das hier gefunden:

http://www.wer-weiss-was.de/theme15/article4802250.html

[quote="Wolfram Bernhardt"] Ich denke also, daß eine sehr gute Engine von heute (muss nicht Rybka sein) alle Schachprogramm auf dem 64er locker wegputzen würde, wenn sie gegeneinander auf zwei 64ern laufen würden.


Zitat:
Ich wäre skeptisch. Es könnte sein, dass moderne Engines so geschrieben sind, dass sie für Grundsätzliches (Initialisierungen etc.) mehr Rechenleistung benötigen, die sie bei C64-Power auch bei Turnierzeit einfach nicht haben.


Ne, ich glaube nicht. Mir fällt nichts ein, was an "Initialisierungen" spürbar Zeit kostet - außer des Leeren von Hashtables. Aber Hashtables sind vermutlich ohnehin raus aus der ganzen Betrachtung, da im 64er nicht mehr viel speicher für sie übrig sein dürfte.

Zitat:
Ausgehend von Faktor 10000:
Eine Turnierpartie könnte dem C64 z.B eine Rechenpower bieten, die 0,018 Sekunden pro Zug entspricht.
Für 60 Züge wäre das dann gut eine(!) Sekunde.
Bringen Rybka, Toga... in 1 Sekunde denn überhaupt soetwas wie eine komplette Partie zustande?


Ich habs gerade mal ausprobiert: Ja. (Hashtables auf 0, bzw 1MB.) Und gar nicht mal sooo schlecht die Partien. Für mich hätte es wahrscheinlich gereicht.

Also tja... ich glaube immernoch, daß - sofern man den Sourcecode portiert bekommt - aktuelle Programme auch auf dem C64 verdammt stark spielen würden.

Ciao,
    Wolfram
Parent - By Benno Hartwig Date 2009-06-24 08:30
[quote="Wolfram Bernhardt"]Nunja... ähm... für diese Frage... so ca. 30.000.000 Jedenfalls hab ich das hier gefunden:
http://www.wer-weiss-was.de/theme15/article4802250.html[/quote]Ich schätzte halt so gaaanz ungefähr.
Allerdings halte ich solch eine FLOPs-Angabe hier für irreführend.
Natürlich war der 6510 hier elendig schwach. Natürlich hatte er keine Floating -Einheit.
Da wurde halt für jede einzelne Rechnung Programme bemüht.
Soweit ich mich erinnere hatte er noch nicht mal Integer-Multiplikation oder -Division.
Selbst dafür wurden Programme bemüht.

Für Anwendungen, die schwerpunktmäßig sowas brauchen, mag der Vergleich stimmen.
Schachprogramme bleiben meist bei Integer-Arithmetik, und auch Multiplikationen und Divisionen werden nicht wirklich oft eingesetzt.

Benno
Parent - By Michael Scheidl Date 2009-06-24 14:10
--> Der C64 verfügt über 64 kB RAM. Kilobyte, nicht Megabyte.

--> Die Rybka-Excecutable von (beispielsweise) Rybka 2.3.2a ist 3.504 kB groß. Da sehe ich schon mal ein Grundproblem.

Ich mache natürlich keine Gleichsetzung von Exe-Größe und Speicherbedarf; es ist mir klar daß das nicht dasselbe ist. Aber es ist sicherlich ein deutlicher Anhaltspunkt. Tendenziell ist wohl der RAM-Mindestbedarf sogar deutlich größer!

Der, soweit mir bekannt derzeit kleinste Sourcecode für eine Engine, Toledo Nanochess führt zu einer Exe mit 74 KB. Engines wie micro-Max 4.8 (13 kB) oder pikoSzachy 2.3 (8 kB) kämen vermutlich für so ein Experiment in Frage, aber die sind auch schon auf heutiger Hardware um "Lichtjahre" schwächer als Rybka. Das ist dann vielleicht nicht so interessant. Daß auf einem C64 "prinzipiell" ein Schachprogramm laufen kann, weiß man ja schon.

Ich kann mir aber vorstellen, daß dieses angedachte Experiment realistisch wäre wenn man die nächste Computergeneration heranzieht. Die Grundmodelle Amiga 500 oder Atari ST hatten 512 kB RAM, was jedoch bis zu einigen MB erweiterbar war. - Die Togas die ich gerade sehe, haben alle weniger als 300 kB, wobei ich aber nicht weiß was der Mindestbedarf an RAM ist, um zu laufen.

http://home.hccnet.nl/h.g.muller/dwnldpage.html (micro-Max)

http://www.kalisz.mm.pl/~pic/nanochess/ (pikoSzachy)

Technische Einzelheiten über die genannten Homecomputer findet man u.a. auf Wikipedia.
Parent - - By emilo reggio Date 2009-06-21 20:55
hi harald,

von scid liegen ja die sourcen vor, ein compiler für c64 sollte es dann richten?! welcher?

emilo
Parent - - By Horst Wandersleben Date 2009-06-22 11:29
Wenn du kein troll bist, dann wird Donald Duck demnächst sprecher bei der tagesschau.

Siehe auch deine anfrage zum betriebssystem os/2:
http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=9252#pid9252
http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=9256#pid9256

Der anklang deines pseudonyms zum Reggio Emilia in Italien hat mich von anfang an stutzig gemacht, zumal der italienische vorname korrekt "Emilio" lautet.
Parent - - By Emilo Reggio Date 2009-06-22 18:38
Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch)

w/o comment

Emilo
Parent - - By Horst Wandersleben Date 2009-06-23 12:14
[quote="Emilo Reggio"]Dumme Gedanken hat jeder, nur der Weise verschweigt sie. (Wilhelm Busch)
w/o comment
Emilo[/quote]

Vollkommen richtig!
In diesem fall bin ich überhaupt nicht auf weisheit erpicht, sondern schüttele den kopf in emotionalem unverständnis.
Da könnte man genauso trefflich darüber diskutieren, ob man mit armbrüsten, wenn man heutige moderne materialien beim bau verwenden würde, einen bolzen in die erdumlaufbahn schießen könnte.
Parent - By emilo reggio Date 2009-06-29 12:33
hallo horst,

jetzt gibt es was zu rechnen:

willst du die erdumlaufbahn in niedriger höhe erreichen, dann musst du eine geschwindigkeit von ca. 28 000 kilometern pro stunde, der "ersten kosmischen Geschwindigkeit" erzielen.

Rezept:

man nehme:

- eine stecknadel, sie ist etwas leichter als eine ,56 mm steyr flechette als nadelgeschoss

- klettere auf den höchsten berg der welt damit

- nehme ein kanonenrohr der dora, deren innerer duchmesser der stecknadel angepasst worden ist

und ab geht die post

wichtige daten:

die mündungsgeschwindigkeit des  ursprünglich verwendeten abfeuerungsmodules bei
einer beschleunigungstrecke von ca. 60 cm beträgt ca: 1.500 m/s entsprechend 5.400 km/s
die rohrlänge der 80 cm kanone (E) "Dora" beträgt ca. 4100 cm

die benötigte rohrlänge kann sich jeder selber ausrechnen! 

emilo

p.s.

hab ich dabei etwas vergessen?
Parent - - By Michael Scheidl Date 2009-06-22 19:14
Ich glaube Deine Analyse ist richtig.

Man könnte es auch daran messen, ob jemand im Laufe von vielen Monaten jemals irgend etwas von Substanz(*) einbringt, oder immer nur "BlaBla". An letzterem lassen sich die Trolle ganz klar erkennen.

*) zum Beispiel:

Klar dokumentiertes Engine vs. Engine-Testergebnis
(Tabelle, Partiebeispiele, etc.)

Computerschach-Datenproduktionen
(z.B. Eröffnungsdatenbanken in diversen Formaten)

Wer auf Dauer nur Blabla abliefert aber NIE solche konkreten Leistungen beisteuert, ist eben ein Troll. Daher, good-bye Emilo such Dir eine andere Gemeinschaft der Du auf den Sack gehen kannst...
Parent - - By Roland Rösler Date 2009-06-23 03:06
Eigentlich stimme ich ja überein, aber die Beispiele gefallen mir nicht:

zu 1) Es gab hier schon jemand en, der hat uns Bulletpartien geliefert! Es sollte schon so was sein wie von Klemens Keck (mehr als 300 5 Stunden Partien auf 8-core; ~ Fide klassisch) oder von Ingo Bauer (1000 Partien von Onno kurz nach Neuerscheinung oder noch besser 100 Partien von S12 beta gegen Onno!).

zu 2) Eröffnungsdatenbanken sind nie was von Substanz (sie welken schneller als die Blumen auf der Fensterbank! ) Ich weiß, dass ich Harry Schnapp damit unrecht tue! Und ohne EB sollte man keine Partie beginnen. Ich werde aber nie einen Fuß auf den morastigen Boden der EB setzen (ich bin auch kein guter Schachspieler!).

Wir sind hier im Computerschachforum! Und Rybka ist die Nummer 1 und die Fernschachspieler werfen die Brocken weg, ob der Überlegenheit. Das kann doch nicht wahr sein! Ich sehe nur Fehler bei der #1!
Okay, ich kann Elo 2700 Turnieren (4-6 Partien gleichzeitig!) locker folgen im 3-Varianten Modus auf 1-cpu w32. Das geht mit keiner anderen engine! Aber wenn es zum Endspiel kommt, ist von Engine- (Rybka-) Seite nur noch stochern im Nebel! Gott hilf, daß die tablebases bald greifen. Das ist doch kein Schach! Spielt wie ein Weltmeister, weiß aber nicht ein gewonnenes Endspiel auch anständig zu gewinnen (die Top-GM können es (meistens)!). Die Engine-Gucker lachen nur, wenn sie Tablebases in der GUI (vorschnell wenn sie tbs-hits in der Analyse) sehen.
Es kann doch nicht sein, daß die #1 im CS mit Top-GM Mimikry durchkommt!

Fragen?
Parent - By Wolfram Bernhardt Date 2009-06-26 15:29
Ja.

Heisst das, man muss sich gegen Rybyk nur irgendwie durch Eröffnung und Mittelspiel wurschteln und gewinnt dann locker das Endspiel? Verdammt, daß da noch keiner drauf gekommen ist... 

Ciao,
    Wolfram
Up Topic Hauptforen / CSS-Forum / rybka und co im c64 möglich?

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill