Fidelity Elite Avant Garde Versionen

aus Schachcomputer.info Wiki, der freien Schachcomputer-Wissensdatenbank

Im Jahr 1989 wurde der Avant Garde neu aufgelegt. Die Versionen 1 bis 10 des Elite Avant Garde beinhalteten nun 16 bzw. 32 Bit Hardware.


Technische Daten:
Prozessor: 68000 bis 68060, 16 - 72 MHz, 16 / 32 Bit
Speicher: 128 KB bis 1024 KB ROM, 128 KB bis 2048 KB RAM
Programmierer: Spracklen, Dan & Kathe
Zugeingabe: Magnetsensoren
Zugausgabe: 2x 4-stellige 7-Segment Anzeige (LED), 64 Feld-LEDs
Stromversorgung: 9V~ / 1,1A
Spielstufen: beliebig viele
Maße (BxTxH): 48,3 x 45,7 x 6,2 cm; Spielfeld = 36 x 36 cm
Sonstiges: Lernfähigkeit, Elo Bewertung


Elite Avant Garde
Displays


Ausstattung

Fidelity Werbung aus dem Jahr 1989

Werbeanzeige der Firma Fidelity aus dem Jahr 1989

Das sind die Ausstattungsmerkmale des Elite Avant Garde:

Ein Schachcomputer, der aus seinen Fehlern lernt!

Fidelity hat seine berühmte Hash-Table-Software mit der allerneuesten Permanentspeicher-Hardware verbunden. Das geradezu unglaubliche Ergebnis ist ein Computer, der lernen kann! Wenn der Computer beispielsweise aufgrund eines brillianten Zuges seines Gegners einen Bauern verliert, behält er diesen Fehler in seinem Dauerspeicher. Beim nächsten Mal "sieht" er, daß in dieser Stellung ein Bauer verlorenging und sucht nach einem besseren Zug. Bedenken Sie; Wenn zwei menschliche Gegner miteinander spielen, und einer dem anderen eine Falle stellt, ist es unwahrscheinlich, daß dieser auf dieselbe Falle noch einmal hereinfällt - wir Menschen können aus unseren Fehlern lernen. Normalerweise kann ein Mensch, dem es gelungen ist, einem Computer eine Falle zu stellen, diese Schwäche des Gerätes immer wieder ausnutzen, da er weiß, daß ein gewöhnlicher Schachcomputer den gleichen Fehler immer wieder begeht. Der neue Elite hingegen wird nie denselben Fehler zweimal begehen! Er vermag die schachlichen Fähigkeiten eines menschlichen Spielers in noch nie dagewesenem Ausmaß zu simulieren. Versuchen Sie es - Sie werden verblüfft sein!

Machen Sie Ihren Elite durch vergrößerte Speicherkapazität noch schneller!

Tatsache ist; Je mehr Züge ein Schachprogramm analysieren kann, desto besser ist seine Leistung. Fidelity hat im Wettlauf um noch schnellere Programme vor kurzem neue Wege beschritten; Es wurde eine Möglichkeit gefunden, um die Geschwindigkeit softwaremäßig zu erhöhen - diese Technik ist als "Hash-Table-Transpositions" (Zugumstellungstabellen) bekannt. Eine Hash-Funktion ist eine Formel, nach welcher der Computer blitzschnell Informationen abrufen kann, die aus einer vorangegangenen Berechnung in seinem Speicher enthalten sind. Auf diese Weise braucht der Computer dieselbe Berechnung nicht noch einmal durchzuführen, da er ihr Ergebnis bereits im Speicher hat. Durch die Verwendung von Hash-Funktionen kann der Computer bestimmte Informationen in weitaus kürzerer Zeit als durch Rechnen erhalten, was es ihm gestattet, Analysen wesentlich schneller durchzuführen. Darüber hinaus speichert er auch Zugumstellungen, die zu den in den Hash Tables gespeicherten Information geführt haben. Die Hash-Table-Technik ist nur erfolgreich, wenn möglichst viele Brettstellungen gefunden werden. Daher gilt: je mehr Stellungen, desto größer ist der Geschwindigkeitszuwachs. Um eine Stellung in den Hash Tables zu speichern, braucht man 8 Bytes RAM. Demnach lassen sich in 128 KByte RAM volle 16.000 Hash-Table-Stellungen unterbringen. Mit jeder Verdoppelung der Hash-Table-Größe wächst die Prozessorgeschwindigkeit Ihres Computers also um acht Prozent! Je mehr RAM Ihr Elite für die Hash Tables hat, desto schneller "denkt" er. Wo liegt die nächste Grenze der Schach-Software-Entwicklung? Versuchen Sie es doch mall mit Muli-Processing.

Der erste kommerzielle Schachcomputer mit Multi-Processing!

Durch einen losen Verbund von Prozessoren wird die Brute Force-Suche erheblich verbessert. Jeder Prozessor übernimmt eine bestimmte Aufgabe, und obwohl das nicht mit einer Verdoppelung der Leistung einhergeht, rechnen wir doch insgesamt mit einem deutlichen Zuwachs an Geschwindigkeit, Leistung und Spielstärke.

Die Prozessoren und ihre Leistungsmerkmale:

  • 68000 - Ein von Motorola entwickelter 16/32-Bit-Prozessor, der über einen 16-Bit-Bus verfügt und auf 2 Byte gleichzeitig zugreift. Zugleich ein Vier-Zyklen-Prozessor.
  • 68020 - Ein von Motorola entwickelter 32-Bit-Prozessor, der über einen 32-Bit-Bus verfügt und auf 4 Byte gleichzeitig zugrieft. Zugleich ein Drei-Zyklen-Prozessor.
  • 68030 - Ein von Motorola entwickelter 32-Bit-Prozessor, der über einen 32-Bit-Bus verfügt und auf 4 Byte gleichzeitig zugreift. Zusätzlich hat er sowohl einen Befehls- als auch Daten-Cache-Speicher für wesentlich schnellere Informationsverarbeitung. Es ist ein Zwei-Zyklen-Prozessor.
  • 68040 - Ein von Motorola entwickelter 32-Bit-Prozessor, der über einen 32-Bit-Bus verfügt und auf 4 Byte gleichzeitig zugreift. Zusätzlich hat er sowohl einen Befehls- als auch Daten-Cache-Speicher, der 20-mal größer ist als der des 68030. Es ist ein Ein-Zyklus-Prozessor.

Avant Garde Versionen

Auszug aus einem Fidelity Werbeprospekt
(Vielen Dank an W.Bucke und A.Gruber für die Bereitstellung)

CUSTOMIZED VERSIONS of the ELITE AVANT GARDE

VERSION 1, BASIC MODEL ELITE: Certified rating of 2265. Hash Table Memory is twice the size of the original MACH III MASTER (Model 6098). This model, therefore, runs 8% faster than the 6098 model.

VERSION 2, IT LEARNS!: Same as Version 1, with additional feature that allows it to learn from its mistakes.

VERSION 3, MORE HASH TABLES!: Same as Version 2, running 24% faster than the 6098 model. This increase in hash table size makes a marked difference in the capability of your Elite versus the basic version. For the absolute ultimate in hash table performance, see Version 4.

VERSION 4, MOST HASH TABLES!: Same as Version 2, running 32% faster than the 6098 model. For the Elite owner demanding optimal hash table capability available, this model stores 128K POSITIONS.

VERSION 5, OWN FIRST COMMERCIALLY AVAILABLE MULTI-PROCESSOR!: What else can we say, except that the increase in hash table size for this model accomodates the second processor added to this unit, and two 68000's are better than one!

VERSION 6, CERTIFIED RATING OF 2325!: The absolutely highest rating ever awarded a commercial product in toumament play against rated human players in 48 games. This model Elite uses a 68020 process6r running at 20 megahertz—the same hardware used to achieve the 2325 rating. Due to the certified 2325 rating, this unit requires °:) a minimum hash table size of 512K, or 64K positions.

VERSION 7, 2325 PLUS MEGA HASH TABLES!: Same as Version 6, with OVER ONE MEGABYTE OF RAM! The result of the increase in memory is an 8% increase in processing speed.

VERSION 8, THE BEST COMMERCIALLY AVAILABLE MULTI-PROCESSOR!: Certified rated 2325 program using TWO 68020 MICROPROCESSORS and the efcessary amount of RAM to support both processors.

VERSION 9, ORLANDO REVISITED!: Own an Elite similar to the unit that BEAT CRAY BLITZ, HI-TECH, AND DREW DEEP THOUGHT. Uses 68030 processor running at 32 megahertz with 1 megabyte RAM capabilitiy,

VERSION 10, THE BEST!: Our biggest engine-68040 MICROPROCESSOR. Own a chess computer that uses the same microprocessor sought after by the world's most high-tech companies. We have entered into a working relationship with MOTOROLA and will be entering the world computer toumament (Edmonton, Alberta—May, 1989) as a joint entry (FIDELITY/MOTOROLA). IMPORTANT NOTE: All optional units after the base unit have the built-in learning feature.

Please call Fidelity for a quote an any combination of processors, processing speed, or hash table memory capacity not listed above.


VERSION 1, BASIC MODEL ELITE: Zertifizierte Bewertung von 2265. Der Hash-Tabellen-Speicher ist doppelt so groß wie der des ursprünglichen MACH III MASTER (Modell 6098). Dieses Modell läuft daher 8% schneller als das Modell 6098.

VERSION 2, SIE LERNT!: Wie Version 1, mit einer zusätzlichen Funktion, die es ihm ermöglicht, aus seinen Fehlern zu lernen.

VERSION 3, MEHR HASH-TABELLEN!: Wie Version 2, aber 24 % schneller als das Modell 6098. Diese Vergrößerung der Hash-Tabellen macht einen deutlichen Unterschied in der Leistungsfähigkeit Ihres Elite gegenüber der Basisversion. Das absolute Nonplusultra an Hash-Tabellen-Leistung finden Sie in Version 4.

VERSION 4, DIE MEISTEN HASH-TABELLEN!: Wie Version 2, jedoch 32 % schneller als das Modell 6098. Für die Elite Besitzer anspruchsvollste optimale Hash-Tabellenleistung verfügbar, speichert dieses Modell 128K POSITIONEN.

VERSION 5, DER ERSTE KOMMERZIELL ERHÄLTLICHE MULTIPROZESSOR!: Was können wir sonst noch sagen, außer dass die Vergrößerung der Hash-Tabelle bei diesem Modell dem zweiten Prozessor, der diesem Gerät hinzugefügt wurde, Rechnung trägt, und zwei 68000er sind besser als einer!

VERSION 6, ZERTIFIZIERTE BEWERTUNG VON 2325!: Die absolut höchste Bewertung, die jemals für ein kommerzielles Produkt im Turnierspiel gegen menschliche Spieler in 48 Spielen vergeben wurde. Dieses Elite Modell verwendet einen 68020-Prozessor mit 20 Megahertz - dieselbe Hardware, mit der die Bewertung 2325 erreicht wurde. Aufgrund der zertifizierten 2325-Einstufung erfordert dieses Gerät eine Mindestgröße der Hashtabelle von 512K oder 64K Positionen.

VERSION 7, 2325 PLUS MEGA-HASHTABELLEN!: Wie Version 6, mit ÜBER E MEGABYTE RAM. Das Ergebnis der Erhöhung des Speichers ist eine Steigerung der Verarbeitungsgeschwindigkeit um 8 %.

VERSION 8, DER BESTE IM HANDEL ERHÄLTLICHE MULTIPROZESSOR!: Zertifiziertes, mit 2325 Punkten bewertetes Programm, das ZWEI 68020-MIKROPROZESSOREN und die erforderliche Menge an RAM zur Unterstützung beider Prozessoren verwendet.

VERSION 9, ORLANDO REVISITED!: Besitzen Sie eine Elite, die dem Gerät ähnelt, das CRAY BLITZ, HI-TECH und DREW DEEP THOUGHT geschlagen hat. Verwendet einen 68030er-Prozessor mit 32 Megahertz und 1 Megabyte RAM-Kapazität.

VERSION 10, DIE BESTE!: Unsere beste Engine - 68040 MICROPROZESSOR. Als Käufer besitzen Sie einen Schachcomputer, der denselben Mikroprozessor verwendet, der von den meisten High-Tech-Unternehmen der Welt gesucht wird. Wir sind eine Arbeitsbeziehung mit MOTOROLA eingegangen und werden am Weltcomputerturnier (Edmonton, Alberta-Mai 1989) als gemeinsamer Teilnehmer (FIDELITY/MOTOROLA) teilnehmen.

WICHTIGER HINWEIS: Alle optionalen Einheiten nach der Basiseinheit haben die eingebaute Lernfunktion.

Bitte rufen Sie Fidelity an, um ein Angebot für eine beliebige Kombination von Prozessoren, Verarbeitungsgeschwindigkeit oder Hash-Tabellen-Speicherkapazität die oben nicht aufgeführt sind.


Fidelity Elite Avant Garde Versionen
Version 1 2 3 4 5 6 7 8 9 10 11*
Nummer 2265 2265 2265 2265 2265 2325 2325 2325 2325 2325 2325
Model 6114-1 6114-2 6114-3 6114-4 6114-5 6117-6 6117-7 6117-8 6117-9 6117-10 6117-11
RAM 16KB 16KB 16KB 128KB 32KB (16KB+16KB) 64KB 128KB 80KB 128KB 128KB 128KB
RAM (Hash Tables) 128KB 128KB 512KB 1024KB 128KB 512KB 1024KB 640KB 1024KB 1024KB 2048KB
Hash Table Stellungen 16.000 16.000 64.000 128.000 16.000 64.000 128.000 80.000 128.000 128.000 256.000
Permanent Memory 16KB 16KB 16KB 16KB 16KB ? ? ? ? ? ?
Programmgröße 128KB 128KB 128KB 128KB 192KB (128KB+64KB) 128KB 128KB 128KB 128KB 1024KB 1024KB
Takt (MHz) 16 16 16 16 16 20 20 20 32 25 66 / 72
Prozessor 68000 68000 68000 68000 68000 68020 68020 68020 68030 68040 68060
Anzahl Prozessoren 1 1 1 1 2 1 1 2 1 1 1
Lernfähigkeit nein ja ja ja ja ja ja ja ja ja ja
* Bei der sogenannten Version "11", welche keine offizielle darstellt, handelt es sich um einen Eigen- bzw. Umbau durch Herrn Bucke. Weitere Informationen finden sich im Artikel von Alwin Gruber



Elite Avant Garde Versionen – Eprom Übersicht

(Auflistung von W.Bucke)

Version Nr. Chip Nummer Programmgröße Checksum Seriennr. Kaufdatum o.ä. WB
(nur f. interne Zwecke) (nur f. interne Zwecke)
1 U6 256 KB A89E 82055141 18. Feb 89
Modell 6098 U7 256 KB 32B5
2 U19 512 KB 4E65 1989
Modell 6114 U22 512 KB 0106
2 U19 512 KB 49AC 21. Jan 91
Modell 6114 U22 512 KB FD5C
3 U19 512 KB 4B3E 92570008
Modell 6115 U22 512 KB F66D
3 U19 512 KB 49AC
Modell 6115 U22 512 KB FD5C
4 U19 512 KB 4E65 1989
Modell 611X U22 512 KB 0106
5 MultiMaster V1.1:
Modell 6116 U19 0 512 KB 9CF2 1989
U22 E 512 KB 0140
MultiSlave V1.1:
U5 0 256 KB EF83
U2 E 256 KB 43B4
6 U19 512 KB 6939 92579943 13. Sep 89
Modell 6117 U22 512 KB 00D5
6 U19 512 KB 6863 93212683 Apr 90
Modell 6117 U22 512 KB F702
6 U19 512 KB 6969 Upgrade Kit 06. Apr 91
Modell 6117 U22 512 KB FCA0
7 U19 512 KB 6969 1991
Modell 6118 U22 512 KB FCA0
Version Nr. Chip Nummer Programmgröße Checksum Seriennr. Kaufdatum o.ä. WB
(nur f. interne Zwecke) (nur f. interne Zwecke)
8 Multiprozessor
Modell 6119
9 U19 512 KB 6AB7 92570002 10. Dez 89
Modell 6120 U22 512 KB 005D
9 U19 512 KB 6893 1170032 27. Apr 91
Modell 6120 U22 512 KB F702
10 U16 256 KB 1D61
Modell 6125 U17 256 KB CA62 31. Mrz 95
U18 256 KB D6AB
U19 256 KB CE57



Spracken Interview zur Version 5

DOPPELT HÄLT BESSER - DIE SPRACKLENS ÜBER MEHRPROZESSOR-SYSTEME

In PLY 1/90 berichten die Schweden über einen Geschwindigkeitsvergleich von 24 Teststellungen zwischen einem Elite Nr.2 und der Doppelprozessor-Version. Das Ergebnis: der Elite Nr.5 war einmal sogar um 8% langsamer, dann wieder bis zu 118% schneller als die Einprozessor-Version! (Der durchschnittliche Geschwindigkeitszuwachs betrug 59%.) Woher diese unterschiedlichen Werte? In der Bedienungsanleitung geben Dan und Kathe Spracklen selbst Antwort auf diese Frage. Wir haben ihre kurze Einführung in die Problematik der Mehrprozessor-Systeme so interessant gefunden, dass wir Fidelity um die Erlaubnis zum Nachdruck ersucht haben, die uns auch erteilt wurde. Wir danken der Firma für ihr Entgegenkommen.

Wenn Sie den Elite Nr.5 die gleichen Stellungen einmal im Einprozessor-Modus und dann im Doppelprozessor-Modus berechnen lassen, werden Sie feststellen, dass die Doppelprozessor-Version etwa 1,7mal so schnell ist die der Einfachprozessor. Vielleicht fragen Sie sich, warum sie nicht genau doppelt so schnell ist, wo sich doch zwei Prozessoren die Arbeit teilen. Daher wollen wir im Folgenden ein paar Anmerkungen zur Funktionsweise des neuen Elite-Doppelprozessors machen.

Beginnen wir mit ein wenig Terminologie! Der Prozessor, der bei einem Schachcomputer die Tasteneingaben registriert und die LEDs aufleuchten lässt, wird auch "Meister" genannt. Der Prozessor, der ihm bei. der Auswahl eines Zuges assistiert, heißt "Sklave". Den Vorgang, bei dem ein Zug ausgewählt wird, nennt man "Suche". Die Aufgabe des "Meisters" ist es, die Suche zu verteilen, d.h. die Sucharbeit gemeinsam mit dem "Sklaven" durchzuführen und über die Auswahl des besten Zuges zu entscheiden. In den meisten Stellungen gibt es viele mögliche Züge, und die suche muss darüber entscheiden, welcher der Beste ist.

Eine einfache und naheliegende Art, die Suche aufzuteilen, wäre, den Meister und den Sklaven an je einem Zug rechnen zu lassen. Sobald einer der beiden mit seinem Zug fertig ist, könnte er mit dem nächsten Zug auf der Liste beginnen und so weiter, bis alle Züge untersucht worden sind. Diese Methode ist durchaus anwendbar und ergibt eine Geschwindigkeitssteigerung von etwa 1,4 im Vergleich mit einem allein arbeitenden Prozessor. Warum so wenig? Der Grund liegt in der Natur des Alpha-Beta-Algorithmus. Ohne auf lange Erörterungen dieses Verfahrens einzugehen, kann man vereinfacht sagen, dass der erste Zug, der untersucht wird, wesentlich mehr Zeit in Anspruch nimmt als irgendeiner der übrigen Züge. Der Grund dafür ist, dass die Untersuchung des ersten Zuges eine Bewertung ergibt, die für die verkürzte Bearbeitung der folgenden Züge angewendet werden kann. Wenn die Zugliste aufgeteilt ist, wobei Meister und Sklave jeweils an verschiedenen Zügen arbeiten, dann fehlt beiden Prozessoren dieser Vergleichswert, und sie sind zu einer langen und schwierigen Arbeit verurteilt. Das bedeutet viel nutzlosen Aufwand, und das Endergebnis ist alles andere als beeindruckend. Es würde auch nichts helfen, den Sklaven untätig abwarten zu lassen, bis der Meister den ersten Zug durchgerechnet hat; das Ergebnis wäre in etwa das gleiche.

Eine weitaus effektivere Methode zur Aufteilung der Suche wurde von Professor Tony Marsland von der University of Alberta vorgeschlagen. Seine Methode, die auch von uns angewandt wird, beruht darauf, dass die Arbeit der langwierigen ersten Zugberechnung gemeinsam durchgeführt und erst dann der Rest der Züge aufgeteilt wird. Bei dieser Methode gibt der Meister dem Sklaven den Auftrag, gewisse Teile des Suchbaums zu bearbeiten, die für die Berechnung des ersten Zuges benötigt werden. Das Ergebnis ist die beachtliche Verschnellerung auf das 1,7-fache, die von unserem Doppelprozessor erreicht wird.

Unter "Overhead" versteht man den Zeit- bzw. Leistungsverlust, der bei der Anwendung eines bestimmten Programmierverfahrens auftritt. Bei einem Mehrfachprozessor-System gibt es vier Arten von "Overhead", die alle dazu beitragen, dass die ideale Geschwindigkeitssteigerung um den Faktor 2 nicht erreicht werden kann.

1. Bei der KOMMUNIKATION: Das ist die Zeit, die verloren geht, weil die beiden Prozessoren miteinander in Kontakt treten und Informationen austauschen müssen. Der eine Prozessor muss Meldungen erstellen, die den anderen über die Richtung und die Ergebnisse der Sucharbeit informieren sollen. Der andere Prozessor muss diese Meldungen entgegennehmen und darauf reagieren. Das nennt man den "COMMUNICATION OVERHEAD".

2. Bei der SYNCHRONISATION: Um diesen Begriff zu verstehen, müssen wir uns überlegen, was passiert, wenn die Suche beinahe zu Ende ist. Nehmen wir an, dass der Meister gerade über den letzten und der Sklave über den vorletzten Zug nachdenkt. Einer von den beiden wird früher fertig sein als der andere und danach "arbeitslos" sein. Die Zeit, die ein Prozessor untätig damit verbringen muss, auf den anderen zu warten, nennt man den "SYNCHRONIZATION OVERHEAD"

3. Bei der ARBEITSTEILUNG: Denken wir noch einmal an das, was wir über die Aufteilung der Sucharbeit nach der Methode "Du nimmst einen, ich nehm' einen" gesagt haben. Wir haben erwähnt, dass der Grund für die relativ geringe Effizienz dieser Methode darin liegt, dass die Bewertung, die bei der Untersuchung des ersten Zuges gefunden wird, die Bearbeitung der folgenden Züge beschleunigt. Je besser dieser erste Wert ist, desto schneller werden die anderen Züge abgearbeitet. Wenn z.B._ unser erster Zug die Dame des Gegners gewinnt, brauchen wir uns nicht lange mit den übrigen Zügen aufzuhalten, die entweder weniger Material oder gar keines gewinnen. Wenn hingegen unser erster Zug nur dazu führt, dass eine Figur ein wenig besser positioniert wird, dann müssen wir uns ausführlicher mit den anderen Zugmöglichkeiten befassen.

Infolge der ständigen Sortierung der Zugliste ist der erste Zug in vielen Fällen auch der beste. Manchmal kommt es aber vor, dass ein Zug, der auf der Liste weiter hinten steht, sich als besser erweist. Wenn das geschieht, ist die Bewertung, die im ersten Zug gefunden wurde, für die Bearbeitung der weiteren Züge weniger nützlich als die Bewertung des neuen Zuges. Der Prozessor, der den besseren Zug gefunden hat, wird daher sofort mit der neuen Bewertung weiterarbeiten. Der andere Prozessor muss hingegen mit dem alten Wert weitermachen, bis er mit der Bearbeitung des laufenden Zuges fertig ist. Der Leistungsverlust, der dadurch entsteht, dass die neue Bewertung nicht sofort beiden Prozessoren zur Verfügung steht, wird als "DIVIDED SEARCH OVERHEAD" bezeichnet.

Ein interessanter Nebeneffekt dieses Overheads zeigt sich bei Tests, die auf dem Lösen von Mattaufgaben beruhen. Der Grundgedanke bei der Verwendung von Mattproblemen zur Messung der Leistung von Schachcomputern ist, daß es einen eindeutigen, aber schwer zu findenden Gewinnzug gibt. Der Tester kann die Zeit messen, die der Computer braucht, um den Gewinnzug zu finden, und erhält dadurch einen meist recht vernünftigen Maßstab dafür, wie schnell und effizient der Schachcomputer arbeitet. Schachprobleme bestehen jedoch naturgemäß aus Stellungen, bei denen der beste Zug fast nie mit dem ersten untersuchten Zug übereinstimmt. Es sind daher Positionen mit künstlich erhöhtem Arbeitsteilungs-Overhead! Aus diesem Grund sollten Programmierer, die die Leistungsfähigkeit ihrer geteilten Suche testen wollen, besser beliebige Stellungen aus Meisterpartien verwenden als mit Mattproblemen zu arbeiten, bei denen sich der Mehrfachprozessor nicht von seiner besten Seite zeigt.

4. Bei der Aufteilung der HASH TABLES: eine Hash Table ist ein großer Speicherbereich, in dem ein Prozessor Informationen ablegen kann, die er während des Suchvorgangs gewonnen hat. Wenn die gleiche Stellung in einer anderen Variante wiederauftaucht, kann der Prozessor das Ergebnis in der Hash Table nachschlagen, statt mit der Berechnung von vorne beginnen zu müssen. Hash Tables sind besonders in Endspielen wirksam, wo die Suche mit ihrer Hilfe um ein Vielfaches schneller abläuft als ohne sie. Der Grund dafür ist, dass im Endspiel besonders oft Stellungswiederholungen auftreten. Der „SPLIT HASH OVERHEAD“ entsteht dadurch, dass jeder Prozessor seine eigene Hash Table hat. Der Meister kann nicht in die Tabelle des Sklaven schauen und der Sklave nicht in die des Meisters. Wenn einer von beiden daher eine Stellung erreicht, die in der Hash Table des anderen bereits gespeichert ist, muss er dennoch mit der Berechnung von vorne beginnen. In der Eröffnung, dem Mittelspiel und sogar dem frühen Endspiel macht das keinen entscheidenden Unterschied aus. Wenn aber die Anzahl der Figuren auf dem Brett stark reduziert ist, kann der Hash-Table-Overhead die Wirksamkeit eines Mehrfachprozessor-Systems drastisch verringern. In manchen Fällen brauchen Doppelprozessor-Systeme für Bauernendspiele sogar länger als Einfachprozessoren!

Eben diese lähmende Auswirkung des SPLIT TADLE OVERHEAD hat uns dazu veranlasst, nach Leibeskräften nach einem Ausweg zu suchen. Während wir uns die Verkaufsabteilung mit einem Arm vom Leibe hielten, suchten und fanden wir eine Lösung: wenn die Aufteilung der Hash Tables das Problem verursacht, so überlegten wir, warum dann nicht mit GEMEINSAMEN Hash Tables arbeiten? In dieser Ausführung würde nur eine einzige Tabelle verwendet werden (und zwar die des Meisters, weil sie größer ist). Der Nachteil dabei wäre ein erhöhter Kommunikations-Overhead, weil die beiden Prozessoren mehr Informationen über die Hash-Tables austauschen müssten. In der Hardware-Konfiguration, die ursprünglich für den Doppelprozessor vorgesehen war, wäre diese Methode nicht anwendbar gewesen, weil keiner der beiden Prozessoren die Möglichkeit hatte, dem anderen sozusagen "auf die Schulter zu klopfen" und ihm zu sagen: "Ich brauche Informationen über die Hash Tables" oder "Ich habe Informationen über die Hash Tables für dich". Jeder Prozessor hätte so viel Zeit damit verschwendet, darauf zu warten, dass der andere seine Aufforderung zur Kenntnis nimmt, dass der dadurch entstehende Kommunikations-Overhead schlimmer gewesen wäre als der durch die geteilten Hash Tables verursachte. Die Methode könnte aber funktionieren, wenn der Sklave eine Möglichkeit hätte, den Meister jederzeit durch einen "Interrupt" zu unterbrechen, um Hash-Tables-Informationen abzurufen oder zu speichern.

Während wir mit der Vertriebsabteilung um Terminaufschub kämpften, setzten wir uns mit der Technischen Abteilung zusammen. Ja, durch eine genial einfache Modifizierung des Designs würde es uns möglich sein, Interrupts zu verwenden! Wie man so sagt: the rest is history! Statt im Endspiel langsamer zu werden, kann der Doppelprozessor nunmehr stolz auf eine Verschnellerung um den Faktor 1,5 bis 1,6 verweisen.

Jetzt haben Sie eine Vorstellung davon, wie intensiv die Soft- und Hardware-Experten von Fidelity gearbeitet haben, um Ihnen noch mehr Freude am Computerschach zu vermitteln. Wir hoffen, dass Ihnen die aufregenden Fortschritte auf dem Gebiet der Mehrfachprozessoren genauso viel Spaß machen werden, wie es uns Spaß gemacht hat, sie Ihnen näherzubringen.

Dan & Kathe Spracklen

Originalprospekt