Auf den Weg zum stärksten Schach-Programm der Welt

ChessBrain, Chess960@home und andere Schachprojekte
Nachricht
Autor
ChristianB
Vereinsvorstand
Vereinsvorstand
Beiträge: 1914
Registriert: 23.02.2010 22:12

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#25 Ungelesener Beitrag von ChristianB » 22.08.2013 18:23

Da blicke ich auch noch nicht so richtig durch. Wie soll der Benutzer sicher stellen das nur der freie Kern durch das BS belegt wird? Da habe ich keinen wirklichen Einfluss drauf. Wenn der Algorithmus wirklich so empfindlich ist dann sind die ganzen bisherigen Ergebnisse nicht aussagekräftig. Wenn ich also dem Projekt was böses tun will dann setze ich einfach BOINC und Stockfish auf allen Kernen ein. Wenn das nicht erkannt wird dann sind demzufolge auch die Ergebnisse verwässert. Das kann man dann nur noch durch eine hohe Replikation erschlagen aber wer garantiert das alle sich an die Regeln halten?

Patrick22
Mikrocruncher
Mikrocruncher
Beiträge: 24
Registriert: 16.08.2013 22:03

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#26 Ungelesener Beitrag von Patrick22 » 22.08.2013 18:45

ChristianB hat geschrieben:Da blicke ich auch noch nicht so richtig durch. Wie soll der Benutzer sicher stellen das nur der freie Kern durch das BS belegt wird?
Wenn das OS Leistung braucht, nimmt es sich automatisch den im Leerlauf befindlichen freien Kern.

Wenn jemand bewusst versucht, das Projekt zu schädigen, wird es gestört werden, es gibt aber Möglichkeiten das zu erkennen, worauf ich jetzt aber nicht weiter eingehen möchte.

Es gibt aber in jeden Fall auch regelmäßige Regressionstests in dem der Gesamtfortschritt geprüft wird. Wenn es da negative Auffälligkeiten gibt, werden alte Verbesserungen erneut geprüft und gegebenenfalls auch wieder entfernt.

Auch von außen gibt es interessierte Tester die den Fortschritt des Projekts unabhängig Testen und den bisherigen Erfolg bestätigen.

Benutzeravatar
Dunuin
Vereinsmitglied
Vereinsmitglied
Beiträge: 1743
Registriert: 23.03.2011 12:59
Wohnort: Hamburg

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#27 Ungelesener Beitrag von Dunuin » 22.08.2013 18:51

Ich weiß ja nicht was eure Rechner machen, aber bei mir verteilt Windows die Rechenleistung gleichmäßig auf alle Kerne. So 20-40% von allen Kernen sind im Leerlauf ausgelastet.
Wenn ich da dann noch BOINC zuschalte, dann schluckt BOINC halt 70% von allen 4 Kernen und die restlichen 30% nehmen sich dann Browser und Co.

Und wie läuft es dann bei Intel mit Hyperthreading oder AMD? Mit HT kann ja niemand mehr unterscheiden, ob da nun das Schachprogramm oder was anderes auf dem Kern läuft, da sich ja 2 virtuelle Kerne die Leistung des einen psysischen Kernes teilen. Und Bei AMD klauen sich ja je 2 Kerne gegenseitig die Ressourcen.
Bild

Patrick22
Mikrocruncher
Mikrocruncher
Beiträge: 24
Registriert: 16.08.2013 22:03

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#28 Ungelesener Beitrag von Patrick22 » 22.08.2013 19:08

Dunuin hat geschrieben:Ich weiß ja nicht was eure Rechner machen, aber bei mir verteilt Windows die Rechenleistung gleichmäßig auf alle Kerne.
Sorry, da habe ich mich falsch ausgedrückt.
Das Schachprogramm muss nicht nicht einen einzigen Kern komplett für sich haben, sondern es gehen auch zwei zu 50% oder 3 zu 33%, wichtig ist nur das am Ende ca. 100% raus kommen. Daher ist die Belastung des OS (oder andere geringe Belastungen) kein Problem.

ChristianB
Vereinsvorstand
Vereinsvorstand
Beiträge: 1914
Registriert: 23.02.2010 22:12

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#29 Ungelesener Beitrag von ChristianB » 22.08.2013 19:18

Patrick22 hat geschrieben:Wenn das OS Leistung braucht, nimmt es sich automatisch den im Leerlauf befindlichen freien Kern.
Das ist in der Theorie zwar richtig aber die Umsetzung ist selbst für Linux nicht so ideal wie du das schreibst.

Ich habe die letzten Tage mit einer VirtualBox VM getestet und dafür mein komplettes BOINC ausgemacht und auch sonst nicht am Rechner gearbeitet. Die VM war so eingestellt nur einen Kern zu nutzen. In meiner Anzeige der Kernauslastungen habe ich gesehen das alle paar Sekunden die Auslastung der Kerne wechselte. Einer war immer bei 7-8% der andere bei 100% das hat sich immer so abgewechselt. Will man einen bestimmten Prozess auf einen bestimmten Kern festnageln muss man das ja dem Kernel irgendwie mitteilen. Ansonsten ist das reines Glücksspiel welcher Prozess auf welchem Kern läuft und der Kernel macht das wie er denkt.

Bitte nicht falsch verstehen, ich will Stockfish hier nicht schlechtreden.

Patrick22
Mikrocruncher
Mikrocruncher
Beiträge: 24
Registriert: 16.08.2013 22:03

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#30 Ungelesener Beitrag von Patrick22 » 22.08.2013 19:59

ChristianB hat geschrieben:
Patrick22 hat geschrieben:Wenn das OS Leistung braucht, nimmt es sich automatisch den im Leerlauf befindlichen freien Kern.
Einer war immer bei 7-8% der andere bei 100% das hat sich immer so abgewechselt. Will man einen bestimmten Prozess auf einen bestimmten Kern festnageln muss man das ja dem Kernel irgendwie mitteilen
Genau das habe ich versucht in meinem letzten Beitrag auszudrücken.
Das Stockfish nicht einen Kern exklusiv für sich braucht. Es ist kein Problem wenn er mehrmals pro Sekunde den Kern wechselt, wenn das OS versucht die Last gleichmäßig zu verteilen.
Das funktioniert solange sehr gut wie nicht alle CPUs voll ausgelastet sind, erst wenn das Gesamtsystem (alle Kerne) mit 100% ausgelastet ist, muss man damit rechnen, dass das Schachprogramm ausgebremst, was nicht passieren sollte.
Die Entwickler des Projekts haben in diesem Bereich langjährige Erfahrungen und Expertenwissen, wenn auch nur mit wenigen PCs, aber das Prinzip bleibt immer gleich und man kann Ihnen vertrauen das es so wie es jetzt ist sehr gut funktioniert.

Benutzeravatar
Norman
Vereinsmitglied
Vereinsmitglied
Beiträge: 2188
Registriert: 20.03.2003 14:34
Wohnort: Saarland
Kontaktdaten:

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#31 Ungelesener Beitrag von Norman » 22.08.2013 20:31

es scheint so daß die berechnungen zeitabhängig sind und ein komplett ausgelastetes system die berechnungen in der zeit verzerrt.
hier müssen x züge in zeit y anscheinend berechnet werden und wenn base und stockfish nicht nahezu zeitgleich "spielen" können wird das ergebnis verfälscht.
so habe ich das verstanden :roll2:
demnach sollte ein quadcore mit 4 kernen mit HT 7 cores aktivieren können und ohne HT 3 cores sofern der rechner sonst nix rechenintensives macht. richtig ?!

errinnert mich irgendwie an chessbrain damals. das war auch ganz interessant. schade nur das keine weiterentwicklung mehr stattfindet.

Patrick22
Mikrocruncher
Mikrocruncher
Beiträge: 24
Registriert: 16.08.2013 22:03

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#32 Ungelesener Beitrag von Patrick22 » 22.08.2013 20:49

Hi Norman, schön dass Du die RKN Flagge beim Stockfish Testing hochhältst :-)

Bezüglich HT verhält es sich so wie bereits auf Seite 1 geschrieben:
"--concurrency <cores> ist die Anzahl Kerne die zur Verfügung gestellt werden (ohne Hyperthreaded Kerne), ein Kern muss für das Betriebssystem übrig gelassen werden.
Für i5 und i7 CPUs wäre das also "--concurrency 3"

Warum HT nicht genutzt werden soll weiß ich nicht, dass müsste man die Entwickler fragen, ich vermute das die Ressourcenverteilung mit HT nicht mehr gerecht und gleichmäßig stattfindet.

Benutzeravatar
Norman
Vereinsmitglied
Vereinsmitglied
Beiträge: 2188
Registriert: 20.03.2003 14:34
Wohnort: Saarland
Kontaktdaten:

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#33 Ungelesener Beitrag von Norman » 22.08.2013 21:05

danke ;)

HT ?!
mmh, dann haben aber leute probleme die keinen zugriff auf ihr BIOS haben.
speziell remotesysteme und server wären dann betroffen und somit "nicht erwünscht".
das müsste mal erläutert werden, warum, weshalb und wieso.
kann ich mir nicht so recht vorstellen.
ich sehe in der liste scott mit 23 und sharaf mit 63 cores ( vermutlich serversysteme ) die wie ich denke ebenfalls mit HT arbeiten.
zumal scott einer der entwickler zu sein scheint dürfte er das ja nicht verantworten :lol:

Patrick22
Mikrocruncher
Mikrocruncher
Beiträge: 24
Registriert: 16.08.2013 22:03

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#34 Ungelesener Beitrag von Patrick22 » 22.08.2013 21:58

Norman hat geschrieben:danke ;)
mmh, dann haben aber leute probleme die keinen zugriff auf ihr BIOS haben.
HT an ist Okay, man darf dann aber trotzdem nur die "echten Kerne"-1 für das Stockfish testing zuteilen.
Also auch auf einen i7 in jedem Fall nur 3 Kerne, dann macht es keinen Unterschied ob HT an oder aus ist.
Bei scott gehe ich definitiv davon aus, das es sich um 24 echte Kerne handelt und bei sharaf aus Dubai (Abu Dhabi) denke ich auch, dass er einen echten 64 Kern Rechner nutzt.

Benutzeravatar
Norman
Vereinsmitglied
Vereinsmitglied
Beiträge: 2188
Registriert: 20.03.2003 14:34
Wohnort: Saarland
Kontaktdaten:

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#35 Ungelesener Beitrag von Norman » 22.08.2013 22:13

nun gut, ziemlich strange das ganze aber funktioniert jedenfalls ;)
wenn ich unter nem I7 HT nur --concurrency 3 eingebe rechnen definitv nur 1.5 echte cores, da das OS die virtuellen kerne als echte ansieht und auch so behandelt.
dann müsste man 6 cores angeben damit 3 echte auch wirklich ausgelastet rechnen und 1 core (2 virtuelle) frei ist.

ich habe gelesen das man dieses 'python worker.py --concurrency 3 username password' nur beim ersten start eingeben muss oder bei veränderungen z.b. der anzahl der cores.
ansonsten reicht unter windows einfach eine verknüpfung z.b. auf den desktop zu erstellen oder sonst wo hin.
das programm startet dann auch so. unter linux sollte es sich ähnlich verhalten.
vielleicht könnte man das noch auf seite 1 ergänzen.
nachzulesen hier

Patrick22
Mikrocruncher
Mikrocruncher
Beiträge: 24
Registriert: 16.08.2013 22:03

Re: Auf den Weg zum stärksten Schach-Programm der Welt

#36 Ungelesener Beitrag von Patrick22 » 22.08.2013 22:51

wenn ich unter nem I7 HT nur --concurrency 3 eingebe rechnen definitv nur 1.5 echte cores,
Wieso definitiv? Ich denke das sieht nur auf OS Ebene so aus als ob nur 1.5 echte Kerne arbeiten, aber in Hardware arbeiten 3 echte Kerne unter Vollast.
Erkennen kann man das am besten an der Geschwindigkeit, schau mal bei tzipproth, der nutzt auf einen i7 genau 4 HT Kerne (sollte man eigentlich nicht, aber er meint er hat den Rechner nur fürs Testing abgestellt, sonst läuft da nichts drauf und mit HT geht dann 4 statt 3).
tzipproth hat eine Geschwindigkeit von 1.85 Mps. Das ist eine Geschwindigkeit die nur die echten Kerne schaffen, wenn sie voll ausgelastet sind. Würde er 7 HT Kerne nutzen, würde die Geschwindigkeit um ca. 40% (Erfahrungswert) auf 1,11 Mps einbrechen.
Aber warum HT tatsächlich nicht erwünscht ist weiß ich nicht, deswegen habe ich die Frage an Gary Linscott weitergeleitet.

Nachtrag
hier die Antwort von Gary Linscott:
"HT with engine matches generally doesn't work so well, since engines use the CPU so efficiently. That being said, the newer HT implementations it might be okay. For safety, we decided to not go with HT on."

In Kurzform:
neuere HT Ausführungen könnten gehen, aber sicherheitshalber wurde entschieden ohne HT zu arbeiten.

Antworten

Zurück zu „Schach“