9.05.2009| Optimierung in dynamischer Umgebung| 87
C o m p u te rs ch a ch D ie l et zt e R u n d e im M en sc h -M as ch in e S ch ac h w et tk am p f is t b ee n d et A n m er k u n g : D ie se s K ap it el e n th äl t A u ss ag en , d ie m an z u R ec h t al s „n ic h t- w is se n sc h af tl ic h “ b ez ei ch n en s o ll te . E s h an d el t si ch d ab ei u m re in e S p ek u la ti o n , u n d s ie w u rd en d es h al b a ls s o lc h e g ek en n ze ic h n et . D ie s g il t in sb es o n d er e fü r d ie F o li en 1 0 9 u n d 1 1 0 .
29.05.2009| Optimierung in dynamischer Umgebung| 88
C o m p u te rs c h a c h h a t e in e a te m b e ra u b e n d e G e s c h ic h te 1 9 4 0 -1 9 7 0 : V e rs u c h e , m e n s c h lic h e s S c h a c h s p ie l n a c h z u a h m e n , v e rs a n d e n 1 . 1 9 7 0 s : C h e s s 4 .5 i s t d a s e rs te 's ta rk e ' P ro g ra m m . E s l e g t W e rt a u f S u c h e ff iz ie n z . E rs te r C o m p u te rs ie g e in e s M e n s c h e n tu rn ie rs , M in n e s o ta O p e n 1 9 7 7 . 2 . 1 9 8 3 : B e lle w u rd e 'N a ti o n a l M a s te r' , 2 1 0 0 E L O . 3 . 1 9 8 8 : H it e c e rr in g t e in e n e rs te n S ie g g e g e n e in e n G ro ß m e is te r 4 . 1 9 8 8 : D e e p T h o u g h t a u f G ro ß m e is te rn iv e a u 5 . 1 9 9 2 : D ie C h e s s M a c h in e g e w in n t d ie o ff e n e C o m p u te rs c h a c h w e lt m e is te rs c h a ft , e in k o n v e n ti o n e lle s P C -P ro g ra m m v o n E d S c h rö d e r. 6 . 1 9 9 7 : D e e p B lu e s c h lä g t K a s p a ro v i n e in e m 6 -S p ie le W e tt k a m p f. 7 . V o n d e r Z e it a n , d o m in ie re n P C -P ro g ra m m e d ie W e lt , m it e in e r jä h rl ic h e S p ie ls tä rk e - s te ig e ru n g v o n c a . 3 0 E L O . I m I n te rn e t g ib t e s v ir tu e lle R ä u m e , in d e n e n T u rn ie re a b g e h a lt e n w e rd e , in d e n e n m a n j e d e rz e it g e g e n G ro ß m e is te r o d e r s ta rk e M a s c h in e n s p ie le n k a n n . E L O : s ta ti s ti s c h e s M a ß ; 1 0 0 P k te D if fe re n z e n ts p re c h e n e in e r 6 4 % G e w in n c h a n c e A n fä n g e r 1 0 0 0 E L O In te rn a ti o n a le r M e is te r > 2 4 0 0 G ro ß m e is te r > 2 5 0 0 M e n s c h lic h e r W e lt m e is te r > 2 8 0 0
9.05.2009| Optimierung in dynamischer Umgebung| 89
D a s Z ie l 4 P ro g ra m m e l ie fe rt e n s ic h b is 2 0 0 5 e in R e n n e n : • S h re d d e r v o n S te fa n M e y e r- K a h le n , • F ri tz v o n F ra n s M o rs c h , • J u n io r v o n A m ir B a n u n d S h a y B u s h in s k y • B ru tu s /H y d ra v o n C h ri lly D o n n in g e r, U lf L o re n z ( 2 0 0 3 -2 0 0 6 ), C h ri s to p h e r L u tz , N a s ir A li • R y b k a , F ru it s e it 2 0 0 5 D ie o b e re n v ie r P ro g ra m m e h o lt e n z .B . a u f d e r C o m p u te rs c h a c h -W e lt m e is te rs c h a ft i n G ra z , 2 0 0 3 , m e h r a ls 9 5 % d e r P u n k te g e g e n d a s r e s tl ic h e F e ld .
N u r e in B IG P O IN T fe h lt e n o c h : s tä rk e r s p ie le n a ls d ie b e s te n M e n s c h e n .
29.05.2009| Optimierung in dynamischer Umgebung| 90
W a s m a c h t e in S c h a c h p r o g r a m m e ig e n tl ic h ? (I ) S te llu n g s b e w e rt u n g H a lb o ff e n e L in ie : + 5 0 T u rm : + 5 0 0 G e g n e ri s c h e r T u rm : -5 0 0
G e g n e ri s c h e r D o p p e lb a u e r: + 3 0 G e g n e ri s c h e r is o lie rt e r B a u e r: + 2 0
F e ld u m g e g n e ri s c h e n K ö n ig i s t a n g e g ri ff e n : + 1 4
9.05.2009| Optimierung in dynamischer Umgebung| 91
L o n d o n : D ie K o n tr a h e n te n A d a m s : g e b o re n 1 7 .1 1 .1 9 7 1 , le b t in L o n d o n . • W u rd e 1 9 8 9 G ro ß m e is te r , m it d e m G e w in n d e r B ri ti s c h e n M e is te rs c h a ft e n , im A lt e r v o n 1 7 J a h re n . • 1 9 9 7 b ri ti s c h e r M e is te r. • 1 9 9 0 u n d 2 0 0 5 z u m S p ie le r d e s J a h re s g e k ü rt u n d • g e w a n n z w is c h e n 1 9 9 3 u n d 2 0 0 2 r e k o rd v e rd ä c h ti g v ie le T u rn ie re . Z u d e r Z e it N r. 1 i n E n g la n d , N r. 7 d e r W e lt , m it e in e r S p ie ls tä rk e v o n 2 7 4 1 E lo .
29.05.2009| Optimierung in dynamischer Umgebung| 92
L o n d o n : D ie K o n tr a h e n te n H y d ra : • D ie e in z ig e 'S c h a c h e in h e it ', d ie j e m a ls ( b is 2 0 0 9 ) d e u tl ic h ü b e r 3 0 0 0 E lo s p ie lt . • 1 5 0 M ill io n e n S c h a c h s te llu n g e n p ro S e k u n d e • ty p is c h e R e c h e n ti e fe n a c h d e r E rö ff n u n g : 1 9 b is 2 0 H a lb z ü g e • C lu s te r m it 3 2 P e n ti u m P ro z e s s o re n , je w e ils m it e in e m X ili n X V ir te x P ro I I 7 0 0 0 a ls S c h a c h -K o p ro z e s s o r (f in a n z ie rt u n d d u rc h g e fü h rt v o n P A L C o m p u te r S y s te m s , V A E , A b u D h a b i) - G e w in n e r d e s 1 3 . IP C C C 2 0 0 4 m it 6 .5 a u s 7 - G e w in n e r g e g e n S h re d d e r in A b u D h a b i m it 5 .5 : 2 .5 - G e w in n e r g e g e n G M V la d im ir o v ( 2 6 3 0 E lo ) m it 3 .5 : 0 .5 - M e n s c h -M a s c h in e M a n n s c h a ft s w e lt m e is te r m it 3 .5 : 0 .5 g e g e n S c h n it t v o n 2 6 9 0 E L O - G e w in n e r d e s 1 4 . IP C C C 2 0 0 5 m it 8 a u s 9
9.05.2009| Optimierung in dynamischer Umgebung| 93
H y d ra s g lo b a le A rc h it e k tu r F P G A : V ir te x I I: V P 7 0 - > c a . 5 ,4 M ill io n e n S u c h k n o te n p ro S e k u n d e p ro P ro z e s s o r b is z u 3 2 C P U s : 3 .0 G H z - > S p e e d u p 1 7 u n d s o m it 1 0 0 M ill io n e n S u c h k n o te n p ro S e k u n d e
D u a l P C s m it M y ri n e t V e rb in d u n g s n e tz w e rk
29.05.2009| Optimierung in dynamischer Umgebung| 94
Z e rl e g u n g d e s S u c h b a u m s o b e re r T e il d e s B a u m s in S o ft w a re -> g ro b g ra n u la re P a ra lle lit ä t d ie l e tz te n 4 E b e n e n i n F P G A - > f e in g ra n u la re P a ra lle lit ä t, F P G A K a rt e w ir d c a . 1 0 0 0 0 0 m a l p ro S e k u n d e a n g e s to ß e n
P ro c e s s o re n 1 , 2 , 3 , 4
9.05.2009| Optimierung in dynamischer Umgebung| 95
P a ra ll e le r S u c h a lg o ri th m u s • Z e rl e g u n g d e s S u c h b a u m s • ‘W o rk S te a lin g ‘: P ro z e s s o re n o h n e A rb e it s e n d e n r a n d o m is ie rt A n fr a g e n in d e n C lu s te r; e in s p e z ie lle r P ro z e s s o r b e g in n t d ie B e re c h n u n g e n w ie i m s e q u e n ti e lle n F a ll • e in P ro z e s s o r, d e r A rb e it h a t u n d e in e A rb e it s a n fr a g e e in fä n g t, g ib t e in T e ilp ro b le m a n d e n S e n d e r d e r A n fr a g e a b , d e r A n fr a g e n d e w ir d ' w o rk e r‘ , d e r a n d e re ‘ m a s te r‘ • m a s te r/ w o rk e r B e z ie h u n g e n s in d d y n a m is c h , o ft g e k n ü p ft u n d w ie d e r g e lö s t • N a c h ri c h te n : R E Q U E S T , W O R K , N O -W O R K , W IN D O W _ U P D A T E , C U T O F F , R E S U L T • P ro b le m a u s w a h l fü r A b g a b e n : n a h a n d e r W u rz e l, Y B W C
29.05.2009| Optimierung in dynamischer Umgebung| 96
9 .3 1 2 2 0 1 1 1 6 8 0 * 1 7 1 4 2 4 * 3 2
-1 6 .5 3 4 8 8 8
3 .6 3 .5 6 8 8 8 4
0 1 .9 9 1 2 1 3 9 2
0 1 2 4 2 1 3 1
S O % S P E Z e it (s )
S p e e d u p s * g e s c h ä tz t, d a a n d e re V e rs io n e n v o n H y d ra z u g ru n d e l ie g e n
9.05.2009| Optimierung in dynamischer Umgebung| 97
F P G A ( F ie ld P ro g ra m m a b le G a te A rr a y ) H a u p tv o rt e il e ( fü r H y d ra ): 1 . D a s H in z u fü g e n v o n m e h r S c h a c h w is s e n e rf o rd e rt z u s ä tz lic h e n P la tz , k o s te t a b e r n a h e z u k e in e z u s ä tz lic h e B e re c h n u n g s z e it 2 . F P G A C o d e k a n n g e -d e b u g g e d u n d s c h n e ll w ie i n S o ft w a re g e ä n d e rt w e rd e n , o h n e l a n g w ie ri g e A S IC E n tw ic k lu n g s z e it e n 3 . fe in g ra n u la re P a ra lle lit ä t k a n n g e n u tz t w e rd e n - > g e n M o v e , d o M o v e , e v a l, u n d o M o v e i n 9 T a k tz y k le n , b e i e in e r c lo c k -r a te v o n 5 0 M H z
• is t re k o n fi g u ri e rb a re L o g ic f ü r ra p id p ro to ty p in g u n d fü r d ie I m p le m e n ti e ru n g d ig it a le r S y s te m e • is t e in e A rt i n R A M s im u li e rt e r H a rd w a re , d ie f e in -g ra n u la re P a ra ll e li tä t e rh a lt e n d • is t e in e M ö g li c h k e it L o g ik z u r e a li s ie re n
29.05.2009| Optimierung in dynamischer Umgebung| 98
2 S lic e s V ir te x C L B
C a rr y & C o n tr o l C a rr y & C o n tr o l
L U T L U T
G 1 G 2 G 3 G 4 B Y B X
F 1 F 2 F 3 F 4
Y B Y Y Q X B X X Q
C O U T C IN
E C
S P Q D R C
E C
S P Q D R C S lic e 1
C a rr y & C o n tr o l C a rr y & C o n tr o l
L U T L U T
G 1 G 2 G 3 G 4 B Y B X
F 1 F 2 F 3 F 4
Y B Y Y Q X B X X Q
C O U T C IN
E C
S P Q D R C
E C
S P Q D R C S lic e 0
9.05.2009| Optimierung in dynamischer Umgebung| 99
C L B B lo c k R A M IO B
29.05.2009| Optimierung in dynamischer Umgebung| 100
9.05.2009| Optimierung in dynamischer Umgebung| 101
H P R C C H ig h P e rf o rm a n c e R e c o n fi g u ra b le C lu s te r- C o m p u ti n g 2 S lic e s V ir te x C L B D e ta ile d V ie w o f V ir te x S lic e
29.05.2009| Optimierung in dynamischer Umgebung| 102
F P G A , V e ri lo g
module Search(); ControlLogic; // Enables/disables the modules and converts data to the correct format. // E.g. the module Board does not know whether DoMove or UndoMove is // done. The input is always piece-from, piece-to. The // ControlLogic converts the move // information in the correct format for the Board module. AlphaBetaFSM; // Alphabeta search with Finite State Machine. // The FSM sets a few signals like "DoMove", "UndoMove", // "Next-Victim". The next state is determined from the // output of the modules and the current state. Thesignals are used by the // ControlLogic to control the operation of the modules. // The FSM has 54-States, but some states are simply waitstates. It changes no // signals. Only a transition to the next // state can be done. CastleStatus(); // Determine castle status 0.5 cycles GenVictim(); // Generates next ToSquare. 2.0 cycles GenAggressor(); // Generates next FromSquare for a given ToSquare. 2.0 cycles TestCheck(); // Tests if the king is in check. 2.0 cycles Board(); // Board respresenation and board update 1.0 cycles SearchStack(); // "Local variables" for the search control. 0.5 cycles. Evaluate(); // Evaluation. 3.0 cycles. endmodule module Evaluate(); HandleSpecialCases; // E.g: Is there insufficient mate material? WeightedSum; // Different weights for different gamephases. GamePhase(); // Determines the game phase. PieceValues(); // Sums up the material value. FirstOrderValues(); // piece square tables PawnStructure(); // pawn structure and passed pawns KingCover(); // pawn-cover around the king Dynamic(); // Main part. This evaluation bases on attack and defense // relations. E.g. attack on opponents king, mobility endmodule9.05.2009| Optimierung in dynamischer Umgebung| 103
H y d ra
29.05.2009| Optimierung in dynamischer Umgebung| 104
9.05.2009| Optimierung in dynamischer Umgebung| 105
H y d ra G e n V ic ti m ( Z ie lf e ld ) G e n A g g re s s o r (V o n -F e ld ) 6 4 F e ld in s ta n z e n 6 4 x 1 6 I n p u t- B it s c o m p e ra to r tr e e
c o m p e ra to r tr e e
6 4 F e ld in s ta n z e n 6 4 x 1 1 I n p u t- B it s . B e s e tz te F e ld e r s e n d e n e in S ig n a l in G e n V ic ti m . . F re ie F e ld e r le it e n S ig n a le w e it e r . A lle F e ld e r, d ie e in S ig n a l b e k o m m e n , s in d p o te n ti e lle Z ie lf e ld e r. . D e r C o m p e ra to r- tr e e w ä h lt a tt ra k ti v s te s Z ie lf e ld (z .B . S c h la g z u g ).
1 . G e w in n e rf e ld g e n e ri e rt S ig n a l v o n ' s u p e r p ie c e '. 2 . F re ie F e ld e r le it e n d a s S ig n a l w e it e r. 3 . V o n e ig e n e n F ig u re n b e s e tz te F e ld e r s in d p o te n ti e lle V o n -F e ld e r. 4 . D e r C o m p e ra to r- tr e e w ä h lt d a s a tt ra k ti v s te V o n -F e ld
29.05.2009| Optimierung in dynamischer Umgebung| 106
G M C h ri s to p h e r L u tz
D r. U lf L o re n z N a s ir A li
D r. C h ri lly D o n n in g e r U n iv e rs it ä t P a d e rb o rn P ro f. D r. B . M o n ie n P a d e rb o rn C e n te r fo r P a ra lle l C o m p u ti n g P A L C o m p u te r S y s te m s P A L G ru p p e A b u D h a b i S c h e ic h T a h n o o n
D a s E n tw ic k le rt e a m h in te r H y d ra
9.05.2009| Optimierung in dynamischer Umgebung| 107
L o n d o n : H y d ra g e g e n A d a m s 5 ,5 : 0 ,5
29.05.2009| Optimierung in dynamischer Umgebung| 108
L o n d o n 2 0 0 5
9.05.2009| Optimierung in dynamischer Umgebung| 109
T y p is c h e T h e s e n a u s d e n 8 0 e r J a h re n ( *) : • T o p -G ro ß m e is te r s p ie le n f a s t p e rf e k t S c h a c h • E in T o p -G ro ß m e is te r k a n n m it w e iß i m m e r R e m is h a lt e n , w e n n e r n u r k e in R is ik o e in g e h t u n d v o n v o rn h e re in a u f R e m is s p ie lt . • 3 0 0 0 E lo i s t e in e n a tü rl ic h e P e rf e k ti o n s g re n z e • T u rm e n d s p ie le m it e in e m W e n ig e rb a u e rn s in d e in fa c h R e m is z u h a lt e n . A lle s Fa ls c h ! K a ta s tr o p h a le S e lb s te in s c h ä tz u n g . (* ) D ie s e F o lie p rä s e n ti e rt a u c h a u s S ic h t Ih re s D o z e n te n k e in e w is s e n - s c h a ft lic h e E rk e n n tn is . S ie d ie n t a lle in d e r A n re g u n g z u D is k u s s io n !
29.05.2009| Optimierung in dynamischer Umgebung| 110