1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
|
%!PS-Adobe-3.0
%%Creator: groff version 1.17.2
%%CreationDate: Wed Sep 4 21:51:42 2002
%%DocumentNeededResources: font Times-Roman
%%DocumentSuppliedResources: procset grops 1.17 2
%%Pages: 27
%%PageOrder: Ascend
%%Orientation: Portrait
%%EndComments
%%BeginProlog
%%BeginResource: procset grops 1.17 2
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/MANUAL{
statusdict begin/manualfeed true store end
}bind def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}bind def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/FL{
currentgray exch setgray fill setgray
}bind def
/BL/fill load def
/LW/setlinewidth load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[]0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{}def
}bind def
/PEND{
clear
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%IncludeResource: font Times-Roman
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Times-Roman@0 ENC0/Times-Roman RE
%%EndProlog
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(Abstract)72 96 Q .758(This paper describes a hi\
gh-performance parallel tree search algorithm that uses Dynamic T)72 120
R .757(ree Splitting)-.385 F .412
(\(DTS\) to search alpha/beta minimax g)72 132 R .412
(ame trees, speci\214cally those for the g)-.055 F .413(ame of chess.)
-.055 F .413(This algorithm)5.913 F(di)72 144 Q .843
(vides the search tree among se)-.275 F -.165(ve)-.275 G .842
(ral processors on a shared memory parallel machine.).165 F .842
(This paper dis-)6.342 F .997(cusses the follo)72 156 R .997
(wing topics:)-.275 F .997(\(1\) the DTS algorithm, \(2\) ho)6.497 F
3.747(wt)-.275 G .998(he tree is di)-3.747 F .998
(vided into parallel pieces that)-.275 F .509(can be searched in parall\
el; \(3\) performance results of the algorithm and \(4\) analysis of th\
e results to see)72 168 R(where further impro)72 180 Q -.165(ve)-.165 G
(ments might occur).165 E(..)-.605 E 2.75(1. Introduction.)72 204 R(Ov)
72 228 Q 1.11(er the past ten years, high performance computer architec\
tural designers ha)-.165 F 1.44 -.165(ve t)-.22 H 1.11
(urned to parallel pro-).165 F .027(cessing to push the performance en)
72 240 R -.165(ve)-.44 G .026(lope to higher and higher le).165 F -.165
(ve)-.275 G 2.776(ls. Unfortunately).165 F 2.776(,f)-.715 G .026(or man)
-2.776 F 2.776(ya)-.165 G(lgorithms)-2.776 E 1.533
(in general, and the alpha/beta algorithm in particular)72 252 R 4.283
(,p)-.44 G 1.533(arallel processing of)-4.283 F 1.534
(fers a substantial hurdle to)-.275 F -.165(ex)72 264 S
(tracting maximum performance from parallel machines.).165 E 1.81(The a\
lpha/beta algorithm is based on a highly sequential property of searchi\
ng that depends on prior)72 288 R(kno)72 300 Q 3.431(wledge to pre)-.275
F -.165(ve)-.275 G 3.431(nt searching parts of the g).165 F 3.432
(ame tree that ha)-.055 F 3.762 -.165(ve n)-.22 H 6.182(ob).165 G 3.432
(earing on the \214nal results)-6.182 F 4.909([Knuth75,Hyatt89]. Since)
72 312 R 4.908(ap)4.908 G 2.158(arallel search tra)-4.908 F -.165(ve)
-.22 G 2.158(rses parts of the tree "simultaneously" such a priori).165
F(kno)72 324 Q 6.478(wledge is not al)-.275 F -.11(wa)-.11 G 6.478(ys a)
.11 F -.275(va)-.22 G 6.478
(ilable [Campbell81,Hyatt88,Hyatt89,Hsu90,Lindstrom83,Marsland85,).275 F
(Popo)72 336 Q(wich83,Schaef)-.275 E(fer89,man)-.275 E 2.75(yo)-.165 G
(thers].)-2.75 E 1.814(The best-kno)72 360 R 1.814
(wn early attempt at searching such trees in parallel w)-.275 F 1.813
(as the Principal V)-.11 F 1.813(ariation Splitting)-1.221 F 4.248(\(PV\
S\) algorithm [Hyatt86,Marsland80,Marsland81, Marsland82,Marsland86,Ne)
72 372 R(wborn85,Schaef)-.275 E(fer89].)-.275 E .062(This w)72 384 R
.062(as both simple to understand and easy to implement.)-.11 F .061
(When starting an N-ply search, one processor)5.561 F .553
(generates the mo)72 396 R -.165(ve)-.165 G 3.303(sa).165 G 3.303(tt)
-3.303 G .553(he root position, mak)-3.303 F .553(es the \214rst mo)-.11
F .883 -.165(ve \()-.165 H .553
(leading to what is often referred to as the).165 F .086
(left-most descendent position\), then generates the mo)72 408 R -.165
(ve)-.165 G 2.836(sa).165 G 2.836(tp)-2.836 G .086(ly=2, mak)-2.836 F
.086(es the \214rst mo)-.11 F .416 -.165(ve a)-.165 H -.055(ga).165 G
.086(in, and contin-).055 F .115(ues this until reaching ply=N.)72 420 R
.115(At this point, the processor pool searches all of the mo)5.615 F
-.165(ve)-.165 G 2.865(sa).165 G 2.866(tt)-2.865 G .116
(his ply \(N\) in)-2.866 F .42(parallel, and the best v)72 432 R .42
(alue is back)-.275 F .419(ed up to ply N-1.)-.11 F(No)5.919 E 3.169(wt)
-.275 G .419(hat the lo)-3.169 F .419(wer bound for ply N-1 is kno)-.275
F .419(wn, the)-.275 F .328(rest of the mo)72 444 R -.165(ve)-.165 G
3.078(sa).165 G 3.078(tN)-3.078 G .329
(-1 are searched in parallel, and the best v)-3.078 F .329(alue ag)-.275
F .329(ain back)-.055 F .329(ed up to N-2.)-.11 F .329(This contin-)
5.829 F .464(ues until the \214rst root mo)72 456 R .794 -.165(ve h)
-.165 H .464(as been searched and the v).165 F .464(alue is kno)-.275 F
3.214(wn. The)-.275 F .464(remainder of the root mo)3.214 F -.165(ve)
-.165 G(s).165 E .4(are searched in parallel, until none are left.)72
468 R .4(The ne)5.9 F .4
(xt iteration is started and the process repeats for depth)-.165 F(N+1.)
72 480 Q .048
(Performance analysis with this algorithm \(PVS\) produced speedups gi)
72 504 R -.165(ve)-.275 G 2.797(nb).165 G(elo)-2.797 E 2.797(wi)-.275 G
2.797(nt)-2.797 G .047(able 1 [Hyatt88] \(oth-)-2.797 F 1.112(ers ha)72
516 R 1.442 -.165(ve p)-.22 H 1.112(roduced results v).165 F 1.113
(ery similar to this\).)-.165 F 1.113(Clearly the performance curv)6.613
F 3.863(ei)-.165 G 3.863<738d>-3.863 G 1.113(attened badly on the)-3.863
F .23(upper end, and the C90 with 16 processors and the T90 with 32 are\
not going to perform as well as might)72 528 R 1.231(be e)72 540 R
1.231(xpected, although the)-.165 F 3.981(ya)-.165 G 1.231
(re certainly v)-3.981 F 1.231(ery f)-.165 F 3.981(ast. An)-.11 F 1.231
(upper bound of 5X \(maybe\) does not look v)3.981 F(ery)-.165 E
(attracti)72 552 Q -.165(ve)-.275 G 2.75(,h).165 G -.275(ow)-2.75 G
-2.365 -.275(ev e).275 H 2.75(r[).275 G(Hyatt88].)-2.75 E EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
.44 LW 414.465 88.75 197.534 88.75 DL/F0 11/Times-Roman@0 SF 2.75(#p)
203.034 98 S 17.875(rocessors 1)-2.75 F 24.75(248)24.75 G(16)-2.75 E
414.465 102.75 197.534 102.75 DL 32.384(speedup 1.0)203.034 112 R 13.75
(1.9 3.4 5.4 6.0)16.5 F 414.465 116.75 197.534 116.75 DL 386.965 102.75
386.965 116.75 DL 356.715 102.75 356.715 116.75 DL 326.465 102.75
326.465 116.75 DL 296.215 102.75 296.215 116.75 DL 265.965 102.75
265.965 116.75 DL 414.465 88.75 414.465 116.75 DL 197.534 88.75 197.534
116.75 DL 386.965 88.75 386.965 116.75 DL 356.715 88.75 356.715 116.75
DL 326.465 88.75 326.465 116.75 DL 296.215 88.75 296.215 116.75 DL
265.965 88.75 265.965 116.75 DL -.88(Ta)233.427 140.2 S
(ble 1 PVS performance results).88 E 1.656
(This approach has a couple of f)72 164.2 R 1.656(airly ob)-.11 F 1.656
(vious dra)-.165 F 4.406(wbacks. First,)-.165 F 1.656
(notice that all of the processors w)4.406 F(ork)-.11 E .724
(together at a single node, searching descendent positions in parallel.)
72 176.2 R .725(If the number of possible mo)6.224 F -.165(ve)-.165 G
3.475(si).165 G(s)-3.475 E .368
(small, or the number of processors is lar)72 188.2 R .368(ge, some ha)
-.198 F .698 -.165(ve n)-.22 H .368(othing to do.).165 F .368(Second, e)
5.868 F -.165(ve)-.275 G .368(ry branch from a gi).165 F -.165(ve)-.275
G(n).165 E .492(position does not produce a tree of equal size, since s\
ome branches may gro)72 200.2 R 3.242(wi)-.275 G .492
(nto complicated positions)-3.242 F .988
(with lots of checks and search e)72 212.2 R .988(xtensions that mak)
-.165 F 3.738(et)-.11 G .988(he tree v)-3.738 F .988(ery lar)-.165 F
.987(ge, while other branches gro)-.198 F 3.737(wi)-.275 G(nto)-3.737 E
.84(simple positions that are searched quickly)72 224.2 R 6.34(.T)-.715
G .84(his leads to a load balancing problem where one processor)-6.34 F
(be)72 236.2 Q .312(gins searching a v)-.165 F .312(ery lar)-.165 F .312
(ge tree and the others \214nish the easy mo)-.198 F -.165(ve)-.165 G
3.062(sa).165 G .312(nd ha)-3.062 F .641 -.165(ve t)-.22 H 3.061(ow).165
G .311(ait for the remaining)-3.171 F(processor to slo)72 248.2 Q
(wly tra)-.275 E -.165(ve)-.22 G(rse the tree.).165 E .235
(This second problem is a serious dra)72 272.2 R .235
(wback, because with a reasonable number of processors, the speedup)
-.165 F .092(can look v)72 284.2 R .092(ery bad if most of the time man)
-.165 F 2.842(yo)-.165 G 2.842(ft)-2.842 G .092(he processors are w)
-2.842 F .092(aiting on one last node to be completed)-.11 F(before the)
72 296.2 Q 2.75(yc)-.165 G(an back up to ply N-1 and start to w)-2.75 E
(ork there.)-.11 E .271(Because of this, when we \214rst mo)72 320.2 R
-.165(ve)-.165 G 3.021(dC).165 G .272
(ray Blitz to the eight processor Cray YMP)-3.021 F 3.022(,w)-1.221 G
3.022(ed)-3.022 G(isco)-3.022 E -.165(ve)-.165 G .272(red that the).165
F 2.067(performance w)72 332.2 R 2.067(as only mar)-.11 F 2.067
(ginally better than it w)-.198 F 2.067(as on the four processor XMP)
-.11 F 4.817(,i)-1.221 G 4.817(fy)-4.817 G 2.067(ou discount the)-4.817
F(impro)72 344.2 Q -.165(ve)-.165 G 4.166(dc).165 G 1.416
(lock speed of each YMP processor)-4.166 F 6.916(.T)-.605 G 1.416
(he \214rst approach we de)-6.916 F -.165(ve)-.275 G 1.417(loped w).165
F 1.417(as called Enhanced)-.11 F 6.409(Principal V)72 356.2 R 6.409(ar\
iation Splitting \(EPVS\) and is also pretty easy to understand and imp\
lement)-1.221 F 3.843([Hyatt88,Hyatt89]. EPVS)72 368.2 R 1.093
(simply notices whene)3.843 F -.165(ve)-.275 G 3.843(rap).165 G 1.093
(rocessor at a node runs out of w)-3.843 F 3.843(ork. When)-.11 F(this)
3.843 E 1.711(happens, assuming there are M processors w)72 380.2 R
1.711(orking, we kno)-.11 F 4.461(wt)-.275 G 1.711(hat there are no)
-4.461 F 4.461(wM)-.275 G 1.71(-1 \(or less\) acti)-4.461 F -.165(ve)
-.275 G 1.684(branches remaining.)72 392.2 R 1.685
(EPVS immediately stops all processors \(which are w)7.185 F 1.685
(orking at ply P)-.11 F 4.435(,t)-1.221 G 1.685(he current)-4.435 F .419
(position\) and follo)72 404.2 R .419
(ws the \214rst remaining ply=P branch tw)-.275 F 3.168(op)-.11 G .418
(lies and then splits the tree at that point with)-3.168 F 2.751(ap)72
416.2 S .001(arallel search e)-2.751 F .001(xactly lik)-.165 F 2.751(et)
-.11 G .001(he old PVS idea.)-2.751 F .002(The bene\214t is that no)
5.501 F 2.752(wa)-.275 G .002(ll processors are w)-2.752 F .002
(orking together)-.11 F .187
(on a single branch at a node where there is little w)72 428.2 R .187
(ork, and ha)-.11 F .517 -.165(ve s)-.22 H .187(tepped do).165 F .186
(wn into the tree to a node with)-.275 F .633(more mo)72 440.2 R -.165
(ve)-.165 G 3.383(st).165 G 3.383(os)-3.383 G .633(earch, and also a no\
de where the descendent trees will be smaller since this node is tw)
-3.383 F(o)-.11 E .581(plies deeper in the tree.)72 452.2 R .581
(It should be noted that this is ef)6.081 F(fecti)-.275 E .911 -.165
(ve b)-.275 H .58(ecause the transposition table stores the).165 F .231
(partial results from the searches that are stopped, so that when these\
branches are searched later)72 464.2 R 2.982(,t)-.44 G .232(he w)-2.982
F(ork)-.11 E .789
(is not repeated because the information is found in the table.)72 476.2
R .788(In case you might w)6.289 F .788(onder wh)-.11 F 3.538(yt)-.055 G
.788(he search)-3.538 F .165(steps further into the tree tw)72 488.2 R
2.915(op)-.11 G .165(lies, rather than one, recall that with alpha/beta\
, if one ply \(P\) requires that)-2.915 F .2(all mo)72 500.2 R -.165(ve)
-.165 G 2.95(sb).165 G 2.95(es)-2.95 G .2(earched, then the ne)-2.95 F
.199(xt ply \(P+1\) only requires that one mo)-.165 F .529 -.165(ve b)
-.165 H 2.949(es).165 G .199(earched to produce a refu-)-2.949 F 1.168
(tation \(e)72 512.2 R 1.168(xcept for the case of PV nodes where no mo)
-.165 F -.165(ve)-.165 G 3.918(sh).165 G -2.475 -.22(av e)-3.918 H 1.168
(yet been searched.\))4.138 F 1.169(Therefore, since we)6.669 F(kno)72
524.2 Q 3.385(wt)-.275 G .634(hat we are going to e)-3.385 F .634
(xamine all nodes at P \(since we just back)-.165 F .634
(ed up the PVS algorithm to ply P\),)-.11 F .847(we kno)72 536.2 R 3.597
(wt)-.275 G .847(hat all nodes at ply P+2 will most lik)-3.597 F .848
(ely ha)-.11 F 1.178 -.165(ve t)-.22 H 3.598(ob).165 G 3.598(es)-3.598 G
.848(earched as well, so long as we choose a)-3.598 F(reasonable mo)72
548.2 Q .33 -.165(ve a)-.165 H 2.75(tp).165 G(ly=P+1.)-2.75 E EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF 1.83(Performance analysis with this algorithm \
\(EPVS\) produced speedups that were modest impro)72 96 R -.165(ve)-.165
G(ments).165 E -.165(ove)72 108 S 3.435(rP).165 G .685(VS, as gi)-3.435
F -.165(ve)-.275 G 3.435(ni).165 G 3.435(nt)-3.435 G .685(able 2 belo)
-3.435 F 4.865 -.715(w. T)-.275 H .685(his is roughly 20% f).715 F .685
(aster than PVS on lar)-.11 F .686(ger numbers of proces-)-.198 F .285
(sors, from the results belo)72 120 R 1.715 -.715(w, b)-.275 H .284(ut \
the 8 and 16 processor times still are disappointing, and the 32 proces\
sor).495 F 1.229(results w)72 132 R 1.23(ould be abysmal.)-.11 F
(Clearly)6.73 E 3.98(,ab)-.715 G 1.23
(etter algorithm had to be found, or we were going to see a v)-3.98 F
(ast)-.275 E(amount of unused processing po)72 144 Q
(wer on future Cray computers [Hyatt88].)-.275 E .44 LW 414.465 164.95
197.534 164.95 DL 2.75(#p)203.034 174.2 S 17.875(rocessors 1)-2.75 F
24.75(248)24.75 G(16)-2.75 E 414.465 178.95 197.534 178.95 DL 32.384
(speedup 1.0)203.034 188.2 R 13.75(1.9 3.4 5.4 6.0)16.5 F 414.465 192.95
197.534 192.95 DL 386.965 178.95 386.965 192.95 DL 356.715 178.95
356.715 192.95 DL 326.465 178.95 326.465 192.95 DL 296.215 178.95
296.215 192.95 DL 265.965 178.95 265.965 192.95 DL 414.465 164.95
414.465 192.95 DL 197.534 164.95 197.534 192.95 DL 386.965 164.95
386.965 192.95 DL 356.715 164.95 356.715 192.95 DL 326.465 164.95
326.465 192.95 DL 296.215 164.95 296.215 192.95 DL 265.965 164.95
265.965 192.95 DL -.88(Ta)230.067 216.4 S
(ble 2 EPVS performance results).88 E 2.75(2. Dynamic)72 240.4 R -.385
(Tr)2.75 G(ee Splitting algorithm \(DTS\)).385 E .595(Before describing\
the DTS algorithm in detail, one important point needs e)72 264.4 R
3.345(xplanation. This)-.165 F .595(algorithm is)3.345 F .457(speci\214\
cally designed for a shared memory multiprocessor architecture.)72 276.4
R .457(As a result, issues that other pro-)5.957 F 1.152
(grams and programmers ha)72 288.4 R 1.482 -.165(ve t)-.22 H 3.902(of)
.165 G 1.152(ace \(distrib)-4.012 F 1.152
(uted transposition tables, killer mo)-.22 F -.165(ve)-.165 G 1.151
(s, history information).165 F .099
(and such\) are not an issue here at all.)72 300.4 R .1
(Some of the decisions in the DTS design w)5.6 F .1(ould lik)-.11 F .1
(ely cause signi\214-)-.11 F 1.014
(cant problems on a message-passing architecture, no matter ho)72 312.4
R 3.764(wf)-.275 G 1.014(ast the communication channel might)-3.874 F
3.479(be. On)72 324.4 R .729(the Cray)3.479 F 3.479(,w)-.715 G .73
(hich has an absolutely astounding cpu-to-memory bandwidth, mo)-3.479 F
.73(ving a me)-.165 F -.055(ga)-.165 G .73(byte of).055 F 1.693
(data tak)72 336.4 R 1.693(es v)-.11 F 1.692(ery little time at all, wh\
ich simply means that in this algorithm, communication costs are)-.165 F
(al)72 348.4 Q -.11(wa)-.11 G .037(ys assumed to be zero.).11 F .037
(An assumption that w)5.537 F .037(ould f)-.11 F .037
(ail on other architectures of course, b)-.11 F .038(ut one which)-.22 F
.664(certainly af)72 360.4 R .663
(fected decisions made while designing the DTS algorithm as well.)-.275
F .663(It turns out that loading a)6.163 F .649("\215ag w)72 372.4 R
.649(ord" \(which indicates that there is some parallel-processing rela\
ted task to perform\) and testing it)-.11 F(can be b)72 384.4 Q
(uried in the instruction stream so that the)-.22 E 2.75(yc)-.165 G
(ause no delays at all.j)-2.75 E(2.1 The DTS approach)72 408.4 Q .446
(In analyzing the pre)72 432.4 R .446(vious tw)-.275 F 3.196(oa)-.11 G
.446(lgorithms, the)-3.196 F 3.196(yb)-.165 G .445(oth suf)-3.196 F .445
(fer from tw)-.275 F 3.195(od)-.11 G .445(istinct problems:)-3.195 F
.445(\(1\) all processors)5.945 F -.11(wo)72 444.4 S .152
(rk together at a single node, which is acceptable for middle-g).11 F
.152(ames with 35+ le)-.055 F -.055(ga)-.165 G 2.903(lm).055 G -.165
(ove)-2.903 G 2.903(s\().165 G -2.475 -.22(av e)-2.903 H .153(rage\), b)
.22 F(ut)-.22 E .175(which does not look attracti)72 456.4 R .505 -.165
(ve i)-.275 H 2.925(ne).165 G(nd-g)-2.925 E .175
(ames where the number of le)-.055 F -.055(ga)-.165 G 2.925(lm).055 G
-.165(ove)-2.925 G 2.925(si).165 G 2.925(sm)-2.925 G .175(uch smaller;)
-2.925 F .175(\(2\) if one)5.675 F .366(processor selects a mo)72 468.4
R .696 -.165(ve t)-.165 H .367(hat leads to a v).165 F .367(ery b)-.165
F(ush)-.22 E 3.117(yt)-.055 G .367
(ree, the other processors might end up w)-3.117 F .367(aiting for an)
-.11 F -.165(ex)72 480.4 S .324(tended period before that tree is compl\
eted, producing long periods where most processors are w).165 F(aiting,)
-.11 E .251(and greatly de)72 492.4 R .251
(grading parallel performance.)-.165 F .252(The DTS algorithm w)5.752 F
.252(as speci\214cally de)-.11 F -.165(ve)-.275 G .252(loped to a).165 F
-.22(vo)-.22 G .252(id both).22 F(of these problems.)72 504.4 Q .192
(The \214rst design goal in de)72 528.4 R -.165(ve)-.275 G .191
(loping the DTS algorithm w).165 F .191
(as to completely eliminate the cases where a pro-)-.11 F .365(cessor w)
72 540.4 R .366(as idle, with no mo)-.11 F -.165(ve)-.165 G 3.116(sl)
.165 G .366(eft to search, while other processors were b)-3.116 F(usy)
-.22 E 5.866(.I)-.715 G 3.116(na)-5.866 G .366(ccomplishing this, it)
-3.116 F .848(became ob)72 552.4 R .848(vious that the \214rst step w)
-.165 F .847(as to disassociate all of the processors, so there w)-.11 F
.847(as no requirement)-.11 F(that the)72 564.4 Q 2.75(ya)-.165 G
(ll congre)-2.75 E -.055(ga)-.165 G(te at a single node and w).055 E
(ork together searching mo)-.11 E -.165(ve)-.165 G 2.75(su).165 G
(ntil all were completed.)-2.75 E EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF 2.554(Note that there are alternati)72 96 R
2.884 -.165(ve w)-.275 H 2.554(ays to k).055 F 2.554(eep processors b)
-.11 F(usy)-.22 E 5.304(,b)-.715 G 2.555(esides trying to ha)-5.304 F
2.885 -.165(ve t)-.22 H 2.555(hem all w).165 F(ork)-.11 E(together)72
108 Q 6.366(.O)-.605 G .866(ne such approach w)-6.366 F .866
(as used in Phoenix [Schaef)-.11 F .865(fer89], and used tw)-.275 F
3.615(os)-.11 G .865(eparate search engines,)-3.615 F 1.058
(one a full chess program, the other \(called Minix\) w)72 120 R 1.059
(as a material-only searcher that searched deeper to)-.11 F .424
(con\214rm/reject mo)72 132 R -.165(ve)-.165 G 3.174(sp).165 G .424
(roposed by the full chess program.)-3.174 F(Ob)5.923 E .423
(viously there is duplicate w)-.165 F .423(ork done in this)-.11 F .88
(approach, as well as other problems related to choosing a mo)72 144 R
1.21 -.165(ve t)-.165 H 3.63(op).165 G .881
(lay when the positional search says)-3.63 F .604(play X, b)72 156 R
.604(ut the tactical search says "no.")-.22 F .603
(This sort of speculati)6.103 F .933 -.165(ve c)-.275 H .603
(omputing, which is an admission that).165 F .541
(additional processors w)72 168 R(on')-.11 E 3.291(ts)-.198 G .541
(peed up the basic search, w)-3.291 F .542(as deemed too inef)-.11 F
.542(\214cient and inef)-.275 F(fecti)-.275 E .872 -.165(ve t)-.275 H
3.292(oc).165 G(on-)-3.292 E(sider)72 180 Q 2.75(,a)-.44 G
(nd something better w)-2.75 E(as desired.)-.11 E 2.554
(The second design goal w)72 204 R 2.553(as to a)-.11 F -.22(vo)-.22 G
2.553(id completely ripping Cray Blitz apart, ef).22 F(fecti)-.275 E
-.165(ve)-.275 G 2.553(ly starting from).165 F .994(scratch; rather)72
216 R 3.744(,w)-.44 G 3.744(ew)-3.744 G .994(anted to use the same mo)
-3.854 F 1.324 -.165(ve g)-.165 H .995
(enerator code, tree search code, mo).165 F 1.325 -.165(ve o)-.165 H
.995(rdering code,).165 F(and so forth for both a one-processor sequent\
ial program and the multi-processing v)72 228 Q(ersion.)-.165 E 3.071
(As)72 252 S .321(imple e)-3.071 F .321(xplanation of DTS is f)-.165 F
.321(airly easy to understand, b)-.11 F .321
(ut it also hides a great deal of comple)-.22 F .321(xity that)-.165 F
1.565(has to be o)72 264 R -.165(ve)-.165 G 1.565
(rcome when writing and deb).165 F 1.565(ugging the code.)-.22 F 1.566
(At the be)7.066 F 1.566(ginning of a ne)-.165 F 4.316(wi)-.275 G 1.566
(teration, DTS)-4.316 F(beha)72 276 Q -.165(ve)-.22 G 3.594(sj).165 G
.844(ust lik)-3.594 F 3.594(eP)-.11 G .844(VS, searching do)-3.594 F
.843
(wn the left-hand side of the tree from ply=1 up to ply=N, with only)
-.275 F .789(one processor)72 288 R 6.289(.A)-.605 G 3.539(tp)-6.289 G
.789(ly=N, all processors "join the party" and search the ply=N mo)
-3.539 F 1.119 -.165(ve l)-.165 H .789(ist in parallel, just).165 F(lik)
72 300 Q 3.346(eP)-.11 G 3.345(VS/EPVS. Ho)-3.346 F(we)-.275 E -.165(ve)
-.275 G 1.475 -.44(r, w).165 H .595(hen a processor completes the mo).44
F .925 -.165(ve i)-.165 H 3.345(ti).165 G 3.345(ss)-3.345 G .595
(earching, and disco)-3.345 F -.165(ve)-.165 G .595(rs there are).165 F
(no more to be searched, DTS reacts to this.)72 312 Q .802(This idle pr\
ocessor broadcasts \(using shared memory\) that it is idle, and is a)72
336 R -.275(va)-.22 G .802(ilable to "help" an).275 F 3.552(yo)-.165 G
(ther)-3.552 E .514(processor \214nish searching its tree.)72 348 R .514
(The b)6.014 F .513
(usy processors collect the "state of the tree" data, and store it in)
-.22 F 1.558(shared memory for the idle processor to e)72 360 R 4.308
(xamine. This)-.165 F 1.558
(idle processor analyzes this data, and decides)4.308 F .057
(which \(if an)72 372 R .057(y\) of the b)-.165 F .057
(usy processors seems to ha)-.22 F .386 -.165(ve a t)-.22 H .056
(ree that is complicated enough that it w).165 F .056(ould be ef)-.11 F
<8c2d>-.275 E .591(cient to help with the search.)72 384 R .592(If such\
a position is found, the idle processor informs the processor which)
6.092 F -.275(ow)72 396 S(ns that node of this and the).275 E 2.75(y")
-.165 G(join" forces.)-2.75 E 2.07 -.88(To a)72 420 T .31(ccomplish thi\
s, the idle processor speci\214cally chooses a ply=S position and tells\
the o).88 F .309(wner that S has)-.275 F .767
(been chosen as the split-point ply)72 432 R 6.267(.T)-.715 G .768
(he processor with that subtree in progress then copies the complete)
-6.267 F .008(tree state to a shared memory area called a "split block"\
\(this tree state includes the v)72 444 R .008(arious search bounds,)
-.275 F(mo)72 456 Q 1.498 -.165(ve l)-.165 H 1.169(ists for each ply un\
der analysis, current board position and other related search data such\
as the).165 F .745(repetition list and so forth\).)72 468 R .745
(Both processors can no)6.245 F 3.494(we)-.275 G .744(xtract mo)-3.659 F
-.165(ve)-.165 G 3.494(sf).165 G .744
(rom this shared data and search in)-3.494 F 2.92(parallel. Whene)72 480
R -.165(ve)-.275 G 2.92(ro).165 G .17(ne runs out of w)-2.92 F .171
(ork, it simply repeats this process.)-.11 F .171
(In some cases, we might see tw)5.671 F(o)-.11 E .794
(processors split the tree at ply=8, then one runs out of w)72 492 R
.793(ork, and decides that the other one has the best)-.11 F .401
(split candidate, and the)72 504 R 3.151(yt)-.165 G .401
(hen split at ply=10.)-3.151 F .401(The \214rst might run out of w)5.901
F .402(ork at that split point, and help)-.11 F .586(the other at a ne)
72 516 R 3.336(ws)-.275 G .586(plit point at ply=12.)-3.336 F .586
(Or it might bail out completely and choose to help another pro-)6.086 F
(cessor)72 528 Q 3.713(,s)-.44 G .964(ince going deeper and deeper spli\
tting the tree means that each subtree searched is smaller and)-3.713 F
(smaller)72 540 Q 4.25(,a)-.44 G 1.5(nd e)-4.25 F -.165(ve)-.275 G 1.5
(ntually the tw).165 F 4.25(op)-.11 G 1.5
(rocessors might spend as much time splitting and sharing as the)-4.25 F
4.249(yd)-.165 G(o)-4.249 E
(searching \(more about this possible condition later)72 552 Q(.\))-.605
E .893(The o)72 576 R -.165(ve)-.165 G .893(rall ef).165 F .893(fect of\
this is that the processors start together on a single node, searching\
in parallel, b)-.275 F(ut)-.22 E EP
%%Page: 5 5
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(the)72 96 Q 2.75(yq)-.165 G
(uickly spread out in groups o)-2.75 E -.165(ve)-.165 G 2.75(rt).165 G
(he acti)-2.75 E .33 -.165(ve t)-.275 H
(ree, helping at points where there is w).165 E(ork to be done.)-.11 E
(No)72 120 Q 3.518(wt)-.275 G .768(he ne)-3.518 F .768(xt issue.)-.165 F
.767(Notice that as a processor becomes idle, it can re-split the same \
tree it w)6.268 F .767(as sharing)-.11 F .561(with another processor)72
132 R 3.311(,b)-.44 G .561(ut so f)-3.531 F(ar)-.11 E 3.311(,o)-.44 G
.561(nly at deeper plies.)-3.311 F(Wh)6.061 E 3.311(yi)-.055 G 3.311(st)
-3.311 G 3.311(his? Because)-3.311 F .562(it is inef)3.311 F .562
(\214cient to back up)-.275 F 1.604(to ply N-1 and search branches ther\
e before ply=N has been completely searched \(remember the \214rst)72
144 R .033(ply=N split node is a PV node just lik)72 156 R 2.783(eP)-.11
G .033(VS, and we don')-2.783 F 2.783(tw)-.198 G .033(ant to start w)
-2.893 F .034(orking on ply N-1, until we ha)-.11 F -.165(ve)-.22 G
2.388(the actual score for ply=N\).)72 168 R(Ho)7.888 E(we)-.275 E -.165
(ve)-.275 G 3.267 -.44(r, e).165 H -.165(ve).165 G(ntually).165 E 5.137
(,t)-.715 G 2.387(he trees can')-5.137 F 5.137(tb)-.198 G 5.137(ef)
-5.137 G 2.387(urther sub-di)-5.137 F 2.387(vided an)-.275 F 5.137(yf)
-.165 G(urther)-5.137 E .003(because the cost of doing so w)72 180 R
.003(ould be more than the cost of searching the subtree.)-.11 F(No)
5.503 E 2.754(wac)-.275 G .004(ritical decision)-2.754 F
(has to be made, "what to do ne)72 192 Q(xt?")-.165 E .389
(Since we are using the best-kno)72 216 R .389(wn mo)-.275 F .719 -.165
(ve o)-.165 H .389
(rdering heuristics in the alpha/ beta tree, it is lik).165 F .388
(ely that by the)-.11 F .641(time the \214rst fe)72 228 R 3.391(wm)-.275
G -.165(ove)-3.391 G 3.391(sa).165 G 3.391(tp)-3.391 G .641(ly=N ha)
-3.391 F .971 -.165(ve b)-.22 H .641(een searched, we kno).165 F 3.391
(wt)-.275 G .641(he actual score for this node, as mo)-3.391 F -.165(ve)
-.165 G(s).165 E .092(further do)72 240 R .092(wn the list should be w)
-.275 F .092(orse and not impro)-.11 F .421 -.165(ve t)-.165 H .091
(he score further).165 F 5.591(.T)-.605 G .091(hen, allo)-5.591 F .091
(wing idle processors to)-.275 F .276(back up to ply=N-1 and start sear\
ching there before ply=N is completed is probably safe, and this is wha\
t)72 252 R .129(DTS does.)72 264 R .128(On the rare occasions when the \
ply=N search completes, and the last branch produces an e)5.629 F -.165
(ve)-.275 G(n).165 E 1.475(better score, the processors that ha)72 276 R
1.805 -.165(ve b)-.22 H(ack).165 E 1.475
(ed up to ply=N-1 already are searching with a less ef)-.11 F(\214cient)
-.275 E 3.062(bound. DTS)72 288 R .312
(notices this and each processor already searching at N-1 is gi)3.062 F
-.165(ve)-.275 G 3.061(nt).165 G .311(he ne)-3.061 F 3.061(w\()-.275 G
.311(correct\) bound as)-3.061 F .261(soon as it is kno)72 300 R 3.012
(wn. This)-.275 F .262(sounds easy and clean, b)3.012 F .262
(ut it can cause some interesting problems, because this)-.22 F(ne)72
312 Q 3.124(wb)-.275 G .374
(ound might mean most of what a processor has been b)-3.124 F .374
(usy doing can be thro)-.22 F .373(wn a)-.275 F -.11(wa)-.165 G 3.123
(ys).11 G .373(ince the ne)-3.123 F(w)-.275 E(bound w)72 324 Q(ould ha)
-.11 E .33 -.165(ve c)-.22 H(aused a cutof).165 E 2.75(fm)-.275 G
(uch sooner than the original bound used.)-2.75 E .813(The best metapho\
r for describing this might be "ants at a picnic" where the chess tree \
is the picnic, and)72 348 R .01
(the ants are the search engines \(processors\).)72 360 R .01
(The ants start eating on a lar)5.51 F .009(ge crumb, b)-.198 F .009
(ut as it is eaten a)-.22 F -.11(wa)-.165 G -.715(y,).11 G 1.623
(it becomes too small and the ants that are displaced mo)72 372 R 1.953
-.165(ve t)-.165 H 4.373(oa).165 G 1.623(nother crumb and start w)-4.373
F 1.624(orking there..)-.11 F(Ev)72 384 Q .551
(entually lots of ants are congre)-.165 F -.055(ga)-.165 G .551
(ted around a steadily diminishing supply of crumbs, which brings up)
.055 F(the \214nal phase of the DTS algorithm de)72 396 Q -.165(ve)-.275
G(lopment.).165 E .137
(In testing this code, we found, on occasion, a position that w)72 420 R
.137(ould blo)-.11 F 2.887(wu)-.275 G 2.887(pa)-2.887 G .138
(nd produce search times much)-2.887 F .884(longer than e)72 432 R -.165
(ve)-.275 G 3.634(nt).165 G .884(he single-processor search.)-3.634 F
-.165(Fo)6.384 G 3.634(re).165 G .884(xample, 1 processor w)-3.799 F
.883(ould tak)-.11 F 3.633(e1m)-.11 G .883(inute to do a 10)-3.633 F
.135(ply search, b)72 444 R .135
(ut with DTS, out of 5,000 test runs, one run w)-.22 F .136(ould tak)
-.11 F 2.886(e1m)-.11 G .136(inute to do a 5 ply search with 16)-2.886 F
3.074(processors. What)72 456 R .324(we found w)3.074 F .323(as a condi\
tion we later termed a "feeding frenzy" to maintain the ants anal-)-.11
F(ogy)72 468 Q 6.533(.W)-.715 G 1.033(hat w)-6.533 F 1.033
(as happening w)-.11 F 1.033(as that as the tree w)-.11 F 1.033
(as nearly completed, the search reached a point where)-.11 F .597
(there were no good "split points".)72 480 R .597(DTS w)6.097 F .597
(as quite good at recognizing when it w)-.11 F .596
(as appropriate to split a)-.11 F .084
(tree into parallel slices and when it w)72 492 R .084(as not.)-.11 F
(Unfortunately)5.584 E 2.834(,i)-.715 G 2.834(tw)-2.834 G .084
(as not so good at determining when it w)-2.944 F(as)-.11 E
(time to quit checking to see if there were an)72 504 Q 2.75(yg)-.165 G
(ood split points.)-2.75 E .187
(Imagine a case with 16 processors, with 15 idle, and one w)72 528 R
.186(orking trying to search the last 15 nodes left in)-.11 F .836
(the entire tree.)72 540 R .836(This one processor k)6.336 F .836
(eeps getting interrupted with "may I help you?", "can I help you?",)
-.11 F .299("could you use some help there?" and so forth, so that rath\
er than searching, it stays b)72 552 R .298(usy cop)-.22 F .298
(ying its tree)-.11 F 1.201(state to shared memory so that the idle pro\
cessors can attempt to \214nd a split point.)72 564 R(The)6.701 E 3.951
(yf)-.165 G 1.201(ail, and ask)-4.061 F(ag)72 576 Q 2.159(ain, and ag)
-.055 F 4.909(ain. And)-.055 F 2.158(in a v)4.909 F 2.158(ery fe)-.165 F
4.908(wp)-.275 G 2.158(athological cases, this almost hung the search.)
-4.908 F 3.918 -.88(To s)7.658 H(olv).88 E 4.908(et)-.165 G(his)-4.908 E
EP
%%Page: 6 6
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF 1.617(problem, which only occurred right at the\
end of an iteration, we chose to add a "thrashing" counter)72 96 R(,)
-.44 E .202(which w)72 108 R .202(as nothing more than a counter that w)
-.11 F .202(as set to some v)-.11 F .201
(alue when a processor handled one of those)-.275 F .692
("may I help you?")72 120 R 3.442(queries. Until)6.192 F .693
(that processor searched N nodes \(N w)3.442 F .693(as the v)-.11 F .693
(alue set in the thrashing)-.275 F .754(counter\) it w)72 132 R .753
(ould refuse to answer an)-.11 F 3.503(ym)-.165 G .753
(ore "may I help you?")-3.503 F .753
(queries, which eliminated the thrashing)6.253 F
(right at the end of an iteration.)72 144 Q .818(That is a basic e)72
168 R .819(xplanation of DTS.)-.165 F(Ho)6.319 E(we)-.275 E -.165(ve)
-.275 G 1.699 -.44(r, t).165 H 3.569(oa).44 G .819(ppreciate e)-3.569 F
.819(xactly ho)-.165 F 3.569(wc)-.275 G(omple)-3.569 E 3.569(xa)-.165 G
.819(nd sophisticated this)-3.569 F -2.365 -.275(ev e)72 180 T .252
(ntually became, the ne).275 F .252(xt step is to look at some of the s\
peci\214c components and data structures need to)-.165 F(mak)72 192 Q
3.733(et)-.11 G .983(his algorithm perform.)-3.733 F .983
(First, we need a couple of de\214nitions to mak)6.483 F 3.734(es)-.11 G
.984(ure terminology does not)-3.734 F(obscure the algorithm.)72 204 Q
2.75(2.2 De\214nitions)72 228 R 1.162(Split-point is a node within the \
tree where it appears that the search must e)72 252 R 1.161
(xamine all of the successor)-.165 F 2.791(nodes. The)72 264 R .041(qua\
lity of a split point is related both to its depth \(nodes closer to th\
e root of the tree represent)2.791 F(lar)72 276 Q 2.328(ger subtrees an\
d thus are better split points\) and the con\214dence that all of the b\
ranches must be)-.198 F 2.091(searched must be high.)72 288 R 2.091(Thi\
s con\214dence is described in section three which discusses choosing s\
plit)7.591 F(points.)72 300 Q .48(Branching f)72 324 R .48
(actor is a measure of the comple)-.11 F .48
(xity of a position reached in the tree search which character)-.165 F
(-)-.22 E .754(izes this comple)72 336 R .754(xity in terms of the a)
-.165 F -.165(ve)-.22 G .755(rage number of successor branches \(le).165
F -.055(ga)-.165 G 3.505(lm).055 G -.165(ove)-3.505 G .755
(s\) from this posi-).165 F 3.902(tion. Chess)72 348 R 1.152(seems to a)
3.902 F -.165(ve)-.22 G 1.152(rage around 38 according to man).165 F
3.902(yp)-.165 G 1.152(ublished papers, b)-3.902 F 1.152
(ut the number can v)-.22 F(ary)-.275 E
(from zero \(mate or stalemate or dra)72 360 Q
(w\) to around 200 \(with man)-.165 E 2.75(yq)-.165 G
(ueens and an open board.\))-2.75 E 2.75(2.3 The)72 384 R(HELP command)
2.75 E .765
(The HELP command is the primary signaling mechanism within DTS.)72 408
R(Whene)6.265 E -.165(ve)-.275 G 3.515(rap).165 G .766
(rocessor is "out of)-3.515 F -.11(wo)72 420 S
(rk" it sends the HELP command to what is ef).11 E(fecti)-.275 E -.165
(ve)-.275 G(ly the entire group of acti).165 E .33 -.165(ve p)-.275 H
(rocessors.).165 E .444(The HELP command simply requests that an)72 444
R 3.194(yp)-.165 G .444(rocessors that are acti)-3.194 F -.165(ve)-.275
G .443(ly searching subtrees temporarily).165 F(stop, cop)72 456 Q 2.75
(yt)-.11 G(he "tree state" to shared memory)-2.75 E 2.75(,a)-.715 G
(nd then continue searching.)-2.75 E 1.553
(As these "tree states" become a)72 480 R -.275(va)-.22 G 1.553
(ilable, the idle processor that initiated the HELP command analyzes)
.275 F 1.005(each state to determine if it can \214nd a satisf)72 492 R
1.004(actory split point.)-.11 F 1.004
(If not, it simply re-broadcasts the HELP)6.504 F(command.)72 504 Q .07
(As will be sho)72 528 R .07(wn later)-.275 F 2.82<2c8c>-.44 G .07
(nding a split point is non-tri)-2.82 F .071(vial, because it is a k)
-.275 F .401 -.165(ey s)-.11 H .071(tep in the DTS algorithm.).165 F(If)
5.571 E 1.209(an incorrect split point is chosen, then it is lik)72 540
R 1.208(ely that the processors that start to help at that point are)
-.11 F .175(going to search nodes that are not necessary)72 552 R 2.925
(,w)-.715 G .175(hich does nothing b)-2.925 F .175
(ut increase the parallel search o)-.22 F -.165(ve)-.165 G(rhead).165 E
(without making the search progress an)72 564 Q 2.75(yf)-.165 G
(aster through the tree.)-2.86 E EP
%%Page: 7 7
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .59(An interesting feature here, is that once a\
processor \214nds a viable split-point, and the Split\(\) operation is)
72 96 R 1.058(performed, whene)72 108 R -.165(ve)-.275 G 3.808(ra).165 G
1.388 -.165(ny o)-3.808 H 1.058(ther processor becomes idle, the).165 F
3.808(yc)-.165 G 1.058(heck for acti)-3.808 F 1.388 -.165(ve s)-.275 H
1.058(plit-points before broad-).165 F 1.037(casting a HELP command.)72
120 R 1.036(If a processor locates an)6.537 F 3.786(yv)-.165 G 1.036
(alid split points, and there is w)-4.061 F 1.036(ork remaining at)-.11
F(an)72 132 Q 3.258(yo)-.165 G 3.258(ft)-3.258 G .508
(hem, it simply attaches to the split point with the most w)-3.258 F
.509(ork remaining, and does not broadcast a)-.11 F 1.445(help command.)
72 144 R 1.444(This tends to k)6.944 F 1.444(eep the processors w)-.11 F
1.444(orking together in related parts of the tree, which)-.11 F(mak)72
156 Q .521(es the transposition table and scoring hash tables more ef)
-.11 F(fecti)-.275 E .851 -.165(ve s)-.275 H .521
(ince the information is more useful).165 F .101
(among closely related positions.)72 168 R(Ho)5.601 E(we)-.275 E -.165
(ve)-.275 G .981 -.44(r, i).165 H 2.851(fap).44 G .101
(rocessor becomes idle, and \214nds no split-point with w)-2.851 F(ork)
-.11 E .665(remaining, it does initiate a HELP command and goes about \
\214nding a ne)72 180 R 3.416(ws)-.275 G 3.416(plit-point. Other)-3.416
F(processors)3.416 E .956(will lik)72 192 R .956
(ely join it at that split point as the)-.11 F 3.706(yb)-.165 G .956
(ecome idle.)-3.706 F .955
(Another reason for doing this is that \214nding a)6.456 F .34
(split point tak)72 204 R .34
(es time, and once a good one has been located, there')-.11 F 3.09(sn)
-.605 G 3.09(op)-3.09 G .34(oint in locating another until the)-3.09 F
1.863
(\214rst one has been completed, or at least until there are no more mo)
72 216 R -.165(ve)-.165 G 4.613(sl).165 G 1.863
(eft at that point that can be)-4.613 F 1.086
(searched by idle processors.)72 228 R 1.086(In the v)6.586 F 1.087
(ery w)-.165 F 1.087
(orst case, with N processors each split point could ha)-.11 F 1.417
-.165(ve t)-.22 H -.11(wo).165 G .177(processors w)72 240 R .177
(orking, if the tree is v)-.11 F .176(ery narro)-.165 F 4.356 -.715
(w. I)-.275 H 2.926(nt).715 G .176(he optimal case, which is f)-2.926 F
.176(airly common in the middle-)-.11 F -.055(ga)72 252 S 1.416
(me, there are rarely more than one or tw).055 F 4.166(os)-.11 G 1.416
(plit points, the \214rst is nearly completed, and the second)-4.166 F
(\(ne)72 264 Q
(w\) split point is where each processor goes when it runs out of w)
-.275 E(ork at the original split point.)-.11 E 2.078 -.88(To p)72 288 T
.318(rocess the HELP command, a simple test w).88 F .317
(as added to the sequential search code.)-.11 F .317(After an)5.817 F
3.067(yn)-.165 G .317(ode is)-3.067 F .91(processed, HELP\(i\) is check)
72 300 R .911(ed, and if set, the tree state is copied to shared memory)
-.11 F 3.661(,t)-.715 G .911(he \215ag is cleared,)-3.661 F .888
(and the search continues normally)72 312 R 6.388(.T)-.715 G .887
(his reduces the idle time for a processor to the time required for a)
-6.388 F .712(processor to search one node and return to the top of Sea\
rch\(\) and then store the "tree state" for the idle)72 324 R .982
(processor to e)72 336 R 3.732(xamine. \(About)-.165 F .981
(30 microseconds on a Cray C90.\))3.732 F .981
(After this time, an idle processor will)6.481 F(ha)72 348 Q .33 -.165
(ve a)-.22 H 2.75(tl).165 G(east one tree state to e)-2.75 E
(xamine for split points, making this reasonably ef)-.165 E(\214cient.)
-.275 E 1.001(While it sounds lik)72 372 R 3.751(eal)-.11 G 1.001
(ot of w)-3.751 F 1.001(ait time could accumulate, man)-.11 F 3.751(yt)
-.165 G 1.001(ests on a C90 ha)-3.751 F 1.332 -.165(ve c)-.22 H 1.002
(on\214rmed that this).165 F -.11(wa)72 384 S .232(it time is ne).11 F
2.982(gligible. In)-.165 F .231(searching for 5-6 minutes of w)2.982 F
.231(all-clock time, typical idle times \(per processor\))-.11 F -2.475
-.22(av e)72 396 T .566(rage between .01 seconds and .1 seconds.).22 F
.566(On rare occasions \(notably v)6.066 F .566(ery simple endg)-.165 F
.567(ame positions)-.055 F .666(where the branching f)72 408 R .666
(actor is quite lo)-.11 F .665
(w\) this has reached one second per processor)-.275 F 3.415(,s)-.44 G
.665(till k)-3.415 F .665(eeping the idle)-.11 F .882
(time per processor do)72 420 R .882
(wn to less than .3% of the total search time.)-.275 F .883
(One major reason for this is that the)6.383 F .279
(code which selects split points is v)72 432 R .279(ery careful, and f)
-.165 F -.22(avo)-.11 G .279
(rs nodes near the root of the tree, because the sub-).22 F 1.307
(trees belo)72 444 R 4.057(wt)-.275 G 1.307
(hose nodes represent a signi\214cant amount of w)-4.057 F 1.307
(ork that must be completed before another)-.11 F .703
(split point must be found.)72 456 R .703
(The only time that processors are idle is while the)6.203 F 3.452(ya)
-.165 G .702(re w)-3.452 F .702(aiting on other pro-)-.11 F .573
(cessors to pro)72 468 R .573
(vide tree state information to one idle processor)-.165 F 3.324(,o)-.44
G 3.324(rw)-3.324 G .574(hile the)-3.324 F 3.324(ya)-.165 G .574(re w)
-3.324 F .574(aiting on one idle pro-)-.11 F .071
(cessor to select a split point.)72 480 R .071(If this e)5.571 F -.165
(ve)-.275 G .071(nt is relati).165 F -.165(ve)-.275 G .07
(ly rare, as it typically is in DTS, then the opportunities).165 F
(for accumulating e)72 492 Q(xcessi)-.165 E .33 -.165(ve i)-.275 H
(dle time are fe).165 E 2.75(wa)-.275 G(nd f)-2.75 E(ar between.)-.11 E
2.75(2.4 The)72 516 R(Split\(\) operation.)2.75 E .315
(Split\(\) is called whene)72 540 R -.165(ve)-.275 G 3.065(ra).165 G
3.065(ni)-3.065 G .315
(dle processor has one or more "tree state" blocks to e)-3.065 F .316
(xamine when attempt-)-.165 F .267(ing to \214nd a split-point.)72 552 R
.266(Split\(\) \214rst attempts to \214nd a good split point \(section \
three\) and then sets things)5.767 F(up so that the Select\(\) operatio\
n described later can function correctly)72 564 Q(.)-.715 E EP
%%Page: 8 8
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .557(The \214rst operation performed after a go\
od split-point is located is to allocate a data structure kno)72 96 R
.557(wn as a)-.275 F 1.231(SPLIT BLOCK.)72 108 R 1.23
(This data structure is simply an e)6.731 F 1.23
(xact duplicate of the tree search data structures that)-.165 F .028
(already e)72 120 R .029(xist in each processor')-.165 F 2.779(sl)-.605
G .029(ocal memory area.)-2.779 F .029(It contains the v)5.529 F .029
(arious mo)-.275 F .359 -.165(ve l)-.165 H .029
(ists, board information,).165 F(scoring information, etc.)72 132 Q .265
(The Split\(\) operation then copies ALL of the current processor')72
156 R 3.015(sl)-.605 G .265(ocal tree state information to the SPLIT)
-3.015 F 3.208(BLOCK. \(ALL)72 168 R .458
(here means that if the current ply is \214v)3.208 F 3.208(e\()-.165 G
.458(5\), then all of the data for plies 1-5 are copied,)-3.208 F -.22
(bu)72 180 S 4.901(tn).22 G 2.151(ot all of the useless data belo)-4.901
F 4.901(wp)-.275 G 2.151(ly 5.)-4.901 F 2.151(Note that EVER)7.651 F
2.15(YTHING is copied, so that this global)-.715 F .806
(\(shared\) memory area has an e)72 192 R .807(xact cop)-.165 F 3.557
(yo)-.11 G 3.557(ft)-3.557 G .807(he current processor')-3.557 F 3.557
(ss)-.605 G .807(earch data structures.)-3.557 F .807(It w)6.307 F .807
(ould no)-.11 F(w)-.275 E .026(be possible for this processor to e)72
204 R .026(xit, and another processor could cop)-.165 F 2.776(yt)-.11 G
.026(his global data to its pri)-2.776 F -.275(va)-.275 G .025(te mem-)
.275 F .497(ory area and resume the search just as if it were the origi\
nal processor since it no)72 216 R 3.247(ww)-.275 G .497(ould ha)-3.357
F .827 -.165(ve a)-.22 H .497(ccess to).165 F -2.365 -.275(ev e)72 228 T
.406(rything the original processor had.).275 F 3.156(\(Note: Cray)5.906
F .406(Blitz w)3.156 F .405(as written before F)-.11 F .405
(ortran supported recursion,)-.165 F 1.075
(and as a result, it did not use the no)72 240 R 3.825(wi)-.275 G 3.825
(nv)-3.825 G 1.075(ogue "ne)-4.045 F -.055(ga)-.165 G 1.075
(max" recursi).055 F 1.405 -.165(ve a)-.275 H 1.075
(lpha/beta search implementation.).165 F .118(As a result, there w)72
252 R .118(as no problem in implementing the parallel search as e)-.11 F
2.868(xplained. Ne)-.165 F -.055(ga)-.165 G .117(max w).055 F .117
(ould ha)-.11 F -.165(ve)-.22 G 1.058(made it much more dif)72 264 R
1.058(\214cult, since the call stack is inaccessible to the search code\
and mo)-.275 F 1.059(ving the tree)-.165 F(state around w)72 276 Q
(ould ha)-.11 E .33 -.165(ve b)-.22 H(een much more dif).165 E
(\214cult [Pearl80].\))-.275 E .733(The Split\(\) operation then passes\
the address of this SPLIT BLOCK to an)72 300 R 3.483(yp)-.165 G .733
(rocessors that are currently)-3.483 F .224(idle, so that the)72 312 R
2.974(ym)-.165 G .224(ay be)-2.974 F .224(gin w)-.165 F .224
(orking at this point immediately)-.11 F 5.725(.T)-.715 G .225
(he idle processors drop out of their b)-5.725 F(usy)-.22 E -.11(wa)72
324 S 1.109(it loop since the).11 F 3.859(yn)-.165 G 1.659 -.275(ow h)
-3.859 H -2.475 -.22(av e).275 H 3.859(ap)4.079 G 1.108(ointer to a v)
-3.859 F 1.108(alid SPLIT BLOCK rather than a v)-.275 F 1.108
(alue of "zero".)-.275 F(The)6.608 E(y)-.165 E(must \214rst cop)72 336 Q
2.75(yt)-.11 G(he global data to their pri)-2.75 E -.275(va)-.275 G
(te memory area, and then be).275 E(gin searching at that point.)-.165 E
.258(The primary reason for cop)72 360 R .258
(ying ALL of the "splitting" processor')-.11 F 3.009(sd)-.605 G .259
(ata to the shared memory re)-3.009 F .259(gion is to)-.165 F -.22(avo)
72 372 S 1.046(id an).22 F 3.796(yt)-.165 G 1.045(ype of synchronizatio\
n delays after searching all branches from the split-point.)-3.796 F
1.045(The speci\214c)6.545 F .607(problem addressed is that the "contro\
lling" processor \(the one splitting w)72 384 R .608
(ork for other processors to help)-.11 F .548
(with\) might choose a branch that is v)72 396 R .548
(ery simple with a minimum number of nodes and \214nish this branch)
-.165 F .902(quite quickly)72 408 R 6.402(.A)-.715 G .902
(nother processor might choose a branch that has man)-6.402 F 3.653(yc)
-.165 G .903(hecks and/or search e)-3.653 F(xtensions)-.165 E 1.666
(and requires an e)72 420 R 1.666(xtended amount of time to search.)
-.165 F 1.666(The controlling processor w)7.166 F 1.665
(ould often \214nd itself)-.11 F -.11(wa)72 432 S .673
(iting on other processors to complete their searches and return the v)
.11 F .674(alues for their subtrees before the)-.275 F
(controlling processor could back up the proper v)72 444 Q(alue.)-.275 E
-.44(Wi)72 468 S .375(th the current implementation, this ne).44 F -.165
(ve)-.275 G 3.125(rh).165 G 3.125(appens. Since)-3.125 F .375
(ALL processors ha)3.125 F .705 -.165(ve a c)-.22 H .375(omplete cop)
.165 F 3.125(yo)-.11 G 3.125(ft)-3.125 G(he)-3.125 E .694
(search data, an)72 480 R 3.444(yo)-.165 G 3.444(ft)-3.444 G .694(hem i\
s capable of \214nishing the search of the nodes in the tree after the \
split-point is)-3.444 F 2.751(completed. F)72 492 R .001(or e)-.165 F
.001(xample, processor 1 can search from plies 1 through 5 and then ano\
ther processor selects)-.165 F 1.294(ply=5 as a split-point.)72 504 R
1.295(Processor 2 joins the search at this split-point and selects a br\
anch to e)6.794 F(xamine.)-.165 E .455(Processor 1 completes the remain\
der of the branches at this split-point and then sends a HELP command)72
516 R 1.552
(to processor 2 so that it can help with the remainder of the comple)72
528 R 4.303(xb)-.165 G 1.553(ranch processor 2 is searching.)-4.303 F
1.018(When the search \214nally backs up to ply=1, EITHER processor \(b)
72 540 R 1.018(ut not both\) could be in char)-.22 F 1.017(ge of the)
-.198 F .019
(search at that point; it depends on which one \214nishes \214rst.)72
552 R .019(In simple terms, this is a "peer)5.519 F .02
(-to-peer" design,)-.22 F(rather than a "master)72 564 Q(-sla)-.22 E
-.165(ve)-.22 G 2.75("d).165 G(esign, so that all processors are equal.)
-2.75 E EP
%%Page: 9 9
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .093
(The nice feature of this approach is that whene)72 96 R -.165(ve)-.275
G 2.842(rA).165 G .092(NY processor runs out of w)-2.842 F .092
(ork at a split-point, it then)-.11 F .49(assists one of the b)72 108 R
.49(usy processors by \214rst sending a HELP command to force the creat\
ion of a ne)-.22 F 3.241(ws)-.275 G(plit-)-3.241 E .663
(point where this idle processor can "join in.")72 120 R .663
(This feature is implemented by a simple rule that pre)6.163 F -.165(ve)
-.275 G(nts).165 E(an)72 132 Q 3.464(yp)-.165 G .714(rocessor from back\
ing the search up past a split point, unless \(if and only if\) only on\
e processor is)-3.464 F -.11(wo)72 144 S .181
(rking on that split point.).11 F .18(The best visual analogy is the g)
5.68 F .18(ame of "leap-frog" where one processor starts)-.055 F .685(o\
n a position, another helps it, the \214rst \214nishes and "leap-frogs"\
the second to a position further into the)72 156 R(tree and helps the \
second processor search at that point, and so forth.)72 168 Q 2.75
(2.5 The)72 192 R(Select\(\) operation.)2.75 E 1.079(one of the tw)72
216 R 3.829(og)-.11 G 1.078
(oals mentioned when designing the DTS algorithm w)-3.829 F 1.078
(as to a)-.11 F -.22(vo)-.22 G 1.078(id completely re-writing).22 F .307
(the search code for Cray Blitz.)72 228 R .308
(This code \(approximately 10,000 lines of FOR)5.807 F .308
(TRAN, which are replaced)-.66 F .35(by about 20,000 lines of Cray Asse\
mbly Language [CAL] when running on the C90\) has been de)72 240 R -.165
(ve)-.275 G(loped).165 E 1.21(and deb)72 252 R 1.21(ugged o)-.22 F -.165
(ve)-.165 G 3.96(rap).165 G 1.21
(eriod of years, and altering it signi\214cantly w)-3.96 F 1.211
(as something the authors w)-.11 F 1.211(anted to)-.11 F -.22(avo)72 264
S(id if possible since deb).22 E
(ugging the parallel processing code already loomed as a lar)-.22 E
(ge obstacle.)-.198 E -.165(Fo)72 288 S 3.376(rs).165 G(implicity)-3.376
E 3.376(,t)-.715 G .626(he design retained the original programming met\
hodology that a processor maintains the)-3.376 F 1.152
(tree \(subtree, actually\) it is searching by k)72 300 R 1.152
(eeping all of the related data in local \(pri)-.11 F -.275(va)-.275 G
1.152(te, task common,).275 F(etc.\) memory so that other processors ca\
n not "change" this information directly)72 312 Q(.)-.715 E(Ho)72 336 Q
(we)-.275 E -.165(ve)-.275 G 1.079 -.44(r, s).165 H .199
(ince a group of processors must w).44 F .198
(ork together at some point within the tree, shared memory is)-.11 F
.022(also required to allo)72 348 R 2.772(wt)-.275 G .022
(his communication.)-2.772 F .022
(The simple implementation mechanism we chose w)5.522 F .023(as to mod-)
-.11 F(ify the procedure Select\(\) so that it could w)72 360 Q
(ork in this en)-.11 E(vironment.)-.44 E .716
(Select\(\) is a procedure called to select the ne)72 384 R .715(xt mo)
-.165 F 1.045 -.165(ve a)-.165 H 3.465(tt).165 G .715
(he current node in the tree.)-3.465 F(Normally)6.215 E 3.465(,i)-.715 G
3.465(te)-3.465 G(xam-)-3.63 E 1.611(ines the mo)72 396 R 1.941 -.165
(ve l)-.165 H 1.612(ist in the pri).165 F -.275(va)-.275 G 1.612
(te memory for the current processor and remo).275 F -.165(ve)-.165 G
4.362(so).165 G 1.612(ne of the mo)-4.362 F -.165(ve)-.165 G 4.362(sf)
.165 G(or)-4.362 E -.165(ex)72 408 S 3.946(amination. At).165 F 3.946
(as)3.946 G 1.196(plit-point, this is slightly more complicated since m\
ultiple processors are "sharing")-3.946 F(this mo)72 420 Q .33 -.165
(ve l)-.165 H(ist.).165 E 1.29
(Select\(\) is unchanged, the only code that w)72 444 R 1.291
(as modi\214ed w)-.11 F 1.291
(as the code that actually calls Select\(\) within)-.11 F 2.909
(Search\(\). Search\(\))72 456 R .159(simply tests to see if the curren\
t ply is a split point, and if so it copies the shared mo)2.909 F -.165
(ve)-.165 G .917(list to the local mo)72 468 R 1.248 -.165(ve l)-.165 H
.918(ist, calls Select\(\) to choose one for searching and then remo)
.165 F -.165(ve)-.165 G 3.668(si).165 G 3.668(tf)-3.668 G .918
(rom the mo)-3.668 F -.165(ve)-.165 G .531
(list. Search\(\) then copies the local mo)72 480 R .861 -.165(ve l)
-.165 H .53
(ist back to the shared one \(all protected by a semaphore so that).165
F .131(no race conditions arise\).)72 492 R .131(If the current ply is \
not a split point, Select\(\) is simply called normally)5.631 F 5.632
(.t)-.715 G .132(he fol-)-5.632 F(lo)72 504 Q 1.494(wing code sho)-.275
F 1.494(ws ho)-.275 F 4.244(wt)-.275 G 1.494(his w)-4.244 F 1.494
(as implemented.)-.11 F 1.494
(The major bene\214t here is that Select\(\) is a v)6.994 F 1.493
(ery lar)-.165 F(ge)-.198 E .6(block of code, that generates mo)72 516 R
-.165(ve)-.165 G .6(s, orders the list, selects mo).165 F -.165(ve)-.165
G 3.35(sf).165 G .601(rom the list based on things lik)-3.35 F 3.351(ec)
-.11 G(ap-)-3.351 E 1.49(tures and the e)72 528 R 1.49(xpected g)-.165 F
1.49(ain, killer mo)-.055 F -.165(ve)-.165 G 1.49(s, and so forth.).165
F 1.49(It w)6.99 F 1.49(as considered v)-.11 F 1.489
(ery desirable to lea)-.165 F 1.819 -.165(ve t)-.22 H(his).165 E
(completely alone, since the assembly v)72 540 Q
(ersion of this module is se)-.165 E -.165(ve)-.275 G
(ral thousand lines long.).165 E(call Select\(\))99.5 564 Q EP
%%Page: 10 10
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF -.11(wa)72 96 S 2.75(sr).11 G
(eplaced by the follo)-2.75 E(wing lines of code:)-.275 E
(if\(ply .eq. splitl\(taskid\)\) then)99.5 120 Q(call Selget\(\))110.5
132 Q(call Select\(\))110.5 144 Q(call Selput\(\))110.5 156 Q(else)99.5
168 Q(call Select\(\))110.5 180 Q(endif)99.5 192 Q .425(In the abo)72
216 R .755 -.165(ve c)-.165 H .425
(ode, Selget\(\) sets a semaphore to lock this mo).165 F .755 -.165
(ve l)-.165 H .425(ist \(there are multiple semaphores so that).165 F
.191(multiple mo)72 228 R .52 -.165(ve l)-.165 H .19(ists can be shared\
without unnecessary interaction\) and then copies the global mo).165 F
.52 -.165(ve l)-.165 H .19(ist to).165 F .568(the local memory)72 240 R
3.318(.S)-.715 G .568(elect\(\) then operates normally)-3.318 F 6.068
(.S)-.715 G .568(elput\(\) then copies the mo)-6.068 F .898 -.165(ve l)
-.165 H .569(ist back \(after a mo).165 F -.165(ve)-.165 G
(has been remo)72 252 Q -.165(ve)-.165 G 2.75(df).165 G
(or searching\) and \214nally clears the semaphore.)-2.75 E .752(The v)
72 276 R .751(ector splitl\(taskid\) is set up by the split operation a\
nd identi\214es the current split point for this pro-)-.165 F .736
(cessor \(taskid\).)72 288 R .737(It should be noted that this implemen\
tation is quite good in terms of ef)6.236 F(\214cienc)-.275 E 2.167
-.715(y, b)-.165 H(ecause).715 E .353(the Selget\(\) \(cop)72 300 R
3.103(ys)-.11 G .352(hared memory to local memory\) and the Selput\(\) \
\(back to shared memory\) operations)-3.103 F 1.311
(are rarely used, and on a Cray the)72 312 R 4.061(yv)-.165 G 1.312
(ectorize quite well and cost v)-4.226 F 1.312(ery little.)-.165 F 1.312
(Note that this same code)6.812 F -.11(wo)72 324 S .911(rks well withou\
t parallel processing since Selget\(\) and Selput\(\) are ne).11 F -.165
(ve)-.275 G 3.661(rc).165 G .911(alled if a Split\(\) operation)-3.661 F
(has not been performed.)72 336 Q 2.75(2.6 The)72 360 R(Mer)2.75 E
(ge\(\) operation.)-.198 E(Whene)72 384 Q -.165(ve)-.275 G 2.897(rap)
.165 G .147(rocessor calls Select\(\) and is told that the mo)-2.897 F
-.165(ve)-.165 G 2.898(sl).165 G .148(ist is empty)-2.898 F 2.898(,t)
-.715 G .148(he \214rst test made by the DTS)-2.898 F .702
(search algorithm is "is this a split-point?")72 396 R .702
(If the answer is yes, this processor has computed a v)6.202 F .701
(alue that)-.275 F .225
(represents only a subset of the branches from this node.)72 408 R .226
(The DTS Search no)5.726 F 2.976(wc)-.275 G .226(alls procedure Mer)
-2.976 F .226(ge\(\) to)-.198 F .397(process this partial v)72 420 R
3.147(alue. Mer)-.275 F .396(ge\(\) simply compares the search v)-.198 F
.396(alue from the current partial search with)-.275 F .983
(the best search v)72 432 R .984(alue for this node yet back)-.275 F
.984(ed up, and remembers the best result.)-.11 F .984
(It also notes that one)6.484 F 1.367(less processor is w)72 444 R 1.366
(orking at this split point by decrementing the processor count.)-.11 F
1.366(If this count is no)6.866 F(w)-.275 E -.165(ex)72 456 S .252
(actly one, the split-point is no longer needed; in this case, Mer).165
F .252(ge\(\) sends an UNSPLIT command to the)-.198 F
(remaining processor \(described belo)72 468 Q -.715(w.)-.275 G(\)).715
E .333(After the cleanup is completed via Mer)72 492 R .332
(ge\(\), the DTS algorithm then returns this processor to its idle loop)
-.198 F .501(where it immediately checks for another split-point to joi\
n, or else it generates a HELP command to cre-)72 504 R
(ate a split-point.)72 516 Q 2.75(2.7 The)72 540 R
(Unsplit\(\) operation.)2.75 E .076(The ne)72 564 R .076
(xt-to-last processor w)-.165 F .076(orking on a split point sends an U\
NSPLIT command to the remaining proces-)-.11 F(sor)72 576 Q 2.818(,w)
-.44 G(hene)-2.818 E -.165(ve)-.275 G 2.818(ri).165 G 2.818<748c>-2.818
G .068(nds no more w)-2.818 F .068(ork to do at this split point.)-.11 F
.068(The split-point has been completely searched)5.568 F EP
%%Page: 11 11
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF -.165(ex)72 96 S
(cept for the branch being analyzed by the remaining processor).165 E(.)
-.605 E 2.147(When a processor recei)72 120 R -.165(ve)-.275 G 4.897(sa)
.165 G 4.897(nU)-4.897 G 2.147
(NSPLIT command, it calls procedure Unsplit\(\) to cleanup the split-)
-4.897 F .221(point\(S\) that ha)72 132 R .551 -.165(ve b)-.22 H .221(e\
en "almost completed" \(recall that the current processor is STILL sear\
ching a branch).165 F(at one or more of these e)72 144 Q
(xhausted split-points.\))-.165 E .028(Unsplit\(\) performs tw)72 168 R
2.778(oa)-.11 G 2.778(ctions. The)-2.778 F .028(\214rst action it tak)
2.778 F .027(es is to compare the partial score from the split-point)
-.11 F .42(with its o)72 180 R .42
(wn partial score for that ply and remember the best one.)-.275 F .42
(It then deallocates the SPLIT BLOCK)5.92 F .982
(so that this block can be used whene)72 192 R -.165(ve)-.275 G 3.731
(ra).165 G .981(nother Split\(\) operation is required.)-3.731 F .981
(After an Unsplit\(\) opera-)6.481 F(tion, all signs of the pre)72 204 Q
(vious Split\(\) operation are gone.)-.275 E 2.75(2.8 The)72 228 R
(Share\(\) operation.)2.75 E 1.051(Since the ef)72 252 R(\214cienc)-.275
E 3.801(yo)-.165 G 3.801(ft)-3.801 G 1.051
(he alpha/beta algorithm directly depends on kno)-3.801 F 1.051
(wing the best scores back)-.275 F 1.052(ed up)-.11 F 1.525
(through the tree, whene)72 264 R -.165(ve)-.275 G 4.275(rb).165 G 1.525
(acking up a ne)-4.275 F 4.274(wb)-.275 G 1.524
(est score to a split-point ply \(by an)-4.274 F 4.274(yo)-.165 G 4.274
(ft)-4.274 G 1.524(he processors)-4.274 F -.11(wo)72 276 S
(rking at that split-point\), special action is required.).11 E .971
(The re)72 300 R .971(gular search procedure Backup\(\) w)-.165 F .972
(as modi\214ed to check for this condition in the same manner as)-.11 F
1.06(Select\(\) described pre)72 312 R(viously)-.275 E 3.81(,i)-.715 G
3.81(tc)-3.81 G 1.06
(hecks the SPLITL\(i\) \215ag to determine if it is "w)-3.81 F 1.06
(orking together" with)-.11 F .182(another processor)72 324 R 5.682(.I)
-.605 G 2.932(fs)-5.682 G .182
(o, it sends a SHARE command to all processors w)-2.932 F .182
(orking at this split- point.)-.11 F(These)5.683 E .193
(processors then call Share\(\) to determine if this ne)72 336 R .193
(wly back)-.275 F .192(ed up v)-.11 F .192(alue is better than the v)
-.275 F .192(alue in this pro-)-.275 F(cessor')72 348 Q 3.565(ss)-.605 G
3.565(earch. If)-3.565 F .815(so, some quick tests for alpha/beta cutof)
3.565 F .816(fs are made to determine if this ne)-.275 F .816(wly a)
-.275 F -.275(va)-.22 G(il-).275 E(able v)72 360 Q(alue w)-.275 E
(ould prune a)-.11 E -.11(wa)-.165 G 2.75(yp).11 G
(art of the tree currently being searched by this processor)-2.75 E(.)
-.605 E .161(This procedure w)72 384 R .161(as added to address tw)-.11
F 2.911(op)-.11 G 2.91(roblems. \(1\))-2.911 F .16(When a better v)2.91
F .16(alue is found at a split-point, ef)-.275 F<8c2d>-.275 E(cienc)72
396 Q 4.368(yd)-.165 G 1.618(emands that all processors be made a)-4.368
F -.11(wa)-.165 G 1.619
(re of it as soon as possible in order to maximize the).11 F .109
(alpha/beta ef)72 408 R(\214cienc)-.275 E 4.289 -.715(y. \()-.165 H
2.859(2\) W).715 F 2.859(ea)-.88 G .109(nticipated the case where the s\
earch might create a split-point at a location)-2.859 F .717
(within the tree where either alpha or beta might be unkno)72 420 R .717
(wn \(this is the idea of speculati)-.275 F 1.048 -.165(ve s)-.275 H
.718(earching to).165 F -.11(ke)72 432 S .59(ep processors b).11 F .59
(usy described earlier)-.22 F 3.339(.\) Share\(\))-.605 F .589
(determines these v)3.339 F .589(alues for the current processor when-)
-.275 F -2.365 -.275(ev e)72 444 T 2.75(rt).275 G(he)-2.75 E 2.75(yb)
-.165 G(ecome a)-2.75 E -.275(va)-.22 G(ilable.).275 E 2.75(3. Choosing)
72 468 R(where to split the tree.)2.75 E 1.027(The most important decis\
ion that the DTS algorithm frequently addresses is where to split the t\
ree into)72 492 R 1.083(parallel subtrees.)72 504 R 1.083(If it chooses\
a good split point, performance is good; if it chooses a poor split po\
int,)6.583 F(performance suf)72 516 Q(fers.)-.275 E(3.1 Node types PV)72
540 Q 2.75(,C)-1.419 G(UT and ALL.)-2.75 E 3.097(Knuth and Moore clearl\
y de\214ned three node classes of nodes within the alpha/beta minimax t\
ree)72 564 R 4.378([Knut75]. While)72 576 R 1.628(their analysis w)4.378
F 1.628(as centered on a minimal g)-.11 F 1.627
(ame-tree with perfect mo)-.055 F 1.957 -.165(ve o)-.165 H 1.627
(rdering, the).165 F EP
%%Page: 12 12
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .386(concepts the)72 96 R 3.136(yp)-.165 G .386
(resented also apply to "real" alpha/beta trees, e)-3.136 F -.165(ve)
-.275 G 3.136(nt).165 G .386(hough it is impossible to produce per)
-3.136 F(-)-.22 E .611(fect mo)72 108 R .94 -.165(ve o)-.165 H .61
(rdering [Hyatt89].).165 F .61(In this conte)6.11 F .61
(xt we use the terminology de)-.165 F -.165(ve)-.275 G .61
(loped in [Marsland85], which).165 F(uses the terms PV)72 120 Q 2.75(,C)
-1.419 G(UT and ALL instead of type one, tw)-2.75 E 2.75(oa)-.11 G
(nd three.)-2.75 E -.88(Ty)108 144 S .768(pe one \(PV\) nodes.).88 F
.769(The root position is a type one node.)6.268 F .769
(The \214rst successor)6.269 F .346(of a PV node is also a PV node whil\
e all other successors of a PV node are CUT)108 156 R 3.17(nodes. PV)108
168 R .42(nodes require e)3.17 F .421
(xamination of all their successors.)-.165 F 3.171(AP)5.921 G 3.171(Vn)
-3.171 G .421(ode is easy)-3.171 F .643
(to recognize, because both alpha and beta are at their original v)108
180 R .643(alues since noth-)-.275 F(ing has yet been searched.)108 192
Q -.88(Ty)108 216 S .02(pe tw).88 F 2.77(o\()-.11 G .02(CUT\) nodes.)
-2.77 F 2.771(AC)5.521 G .021
(UT node is a successor of either a PV node \(as gi)-2.771 F -.165(ve)
-.275 G(n).165 E(abo)108 228 Q -.165(ve)-.165 G 3.434(\)o).165 G 3.433
(ra)-3.434 G 3.433(nA)-3.433 G .683(LL node.)-3.433 F 3.433(AC)6.183 G
.683(UT node only requires e)-3.433 F .683(xamination of one succes-)
-.165 F .407(sor \(for perfectly ordered g)108 240 R .407(ame trees.\))
-.055 F .407(This is the node type that we must recog-)5.907 F .99
(nize and a)108 252 R -.22(vo)-.22 G .989
(id selecting as a split-point, because with best mo).22 F 1.319 -.165
(ve o)-.165 H .989(rdering, only).165 F .206
(one branch needs to be searched, which lea)108 264 R -.165(ve)-.22 G
2.957(sn).165 G 2.957(ow)-2.957 G .207(ork for additional processors,)
-3.067 F(other than w)108 276 Q(ork that is completely unnecessary)-.11
E(.)-.715 E -.88(Ty)108 300 S 2.43(pe three \(ALL\) nodes.).88 F 2.43
(An ALL node is a successor of a CUT node and)7.93 F .719(requires e)108
312 R .72(xamination of all its successor branches.)-.165 F(Ev)6.22 E
.72(en more interesting, mo)-.165 F -.165(ve)-.165 G .335(ordering with\
in a type three node is completely unimportant and has no ef)108 324 R
.335(fect on)-.275 F 2.053(the total nodes searched.)108 336 R 2.054
(This is an important node type in a parallel search)7.554 F .806
(because e)108 348 R -.165(ve)-.275 G .806(ry mo).165 F 1.136 -.165
(ve m)-.165 H .806(ust be searched, of).165 F .806(fering plenty of w)
-.275 F .805(ork that can be done)-.11 F(in parallel.)108 360 Q 1.164
(From these de\214nitions, se)72 384 R -.165(ve)-.275 G 1.164
(ral things become apparent.).165 F 1.164(\(1\) T)6.664 F 1.164
(ype three \(ALL\) nodes are perfect candi-)-.88 F .276(dates for paral\
lel searching since all successors must be searched, and the order of t\
ra)72 396 R -.165(ve)-.22 G .276(rsal for these suc-).165 F .152
(cessors is unimportant.)72 408 R 2.902(\(2\) T)5.652 F .152(ype tw)-.88
F 2.902(o\()-.11 G .152(CUT\) nodes must be a)-2.902 F -.22(vo)-.22 G
.153(ided as split points since only one succes-).22 F .225
(sor must be e)72 420 R 2.975(xamined. If)-.165 F .225
(such a node is chosen as a split point, e)2.975 F .225
(xtra branches will be searched, resulting)-.165 F .91(in w)72 432 R .91
(asted w)-.11 F 3.66(ork. \(3\))-.11 F -.88(Ty)3.66 G .91(pe one \(PV\)\
nodes appear to be good candidates for parallel search until careful)
.88 F 1.023(study unco)72 444 R -.165(ve)-.165 G 1.023(rs the f).165 F
1.023
(act that the \214rst successor of a type one node must be completely e)
-.11 F 1.022(xamined before)-.165 F(an)72 456 Q 4.358(yo)-.165 G 4.358
(ft)-4.358 G 1.608(he other successors.)-4.358 F 1.608(This is required\
since the \214rst branch establishes a search bound for the)7.108 F
1.174(remainder of the successors, and if the)72 468 R 3.924(ya)-.165 G
1.174(re searched before this bound is kno)-3.924 F 1.174(wn, e)-.275 F
1.174(xtra w)-.165 F 1.174(ork might be)-.11 F(done.)72 480 Q 2.75
(3.2 Classifying)72 504 R(node types.)2.75 E .563(When a processor gene\
rates a HELP command, and obtains tree-state data from b)72 528 R .564
(usy processors, it must)-.22 F .408(\(if possible\) establish a split \
point so that it \(and other idle processors\) can "join in" and help.)
72 540 R .408(From sec-)5.908 F .39(tion 3.1, it becomes ob)72 552 R .39
(vious that type ALL nodes mak)-.165 F 3.141(ed)-.11 G .391
(esirable split points, type PV nodes mak)-3.141 F 3.141(ed)-.11 G(esir)
-3.141 E(-)-.22 E 1.62(able split points AFTER the \214rst successor of\
the node has been completely searched, and type CUT)72 564 R
(nodes must be a)72 576 Q -.22(vo)-.22 G(ided at all costs.).22 E EP
%%Page: 13 13
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF 1.52(Cray Blitz contains a function T)72 96 R
1.52(ypeNode\(\), that types an)-.88 F 4.27(yn)-.165 G 1.52
(ode from ply one to the current ply)-4.27 F 9.771(.t)-.715 G(his)-9.771
E .574(function is called by function Split\(\) to mak)72 108 R 3.323
(ea)-.11 G 3.323(ni)-3.323 G .573
(nitial "guess" of the node types for each ply in the cur)-3.323 F(-)
-.22 E(rent processor')72 120 Q 2.75(ss)-.605 G(earch space.)-2.75 E
.239(It mak)72 144 R .239(es the follo)-.11 F .239(wing assumptions.)
-.275 F .239(If, for the current node being tested, the v)5.739 F .24
(alues of alpha and beta are)-.275 F .06
(equal to the initial search windo)72 156 R 1.49 -.715(w, t)-.275 H .06
(hen this node is a PV node.).715 F .059
(Otherwise, if the current node is at an odd)5.559 F .683
(ply and alpha is equal to the lo)72 168 R .684
(wer initial search bound, or the current node is at an e)-.275 F -.165
(ve)-.275 G 3.434(np).165 G .684(ly and beta is)-3.434 F
(equal to the upper initial search bound, then the node type is CUT)72
180 Q 5.5(.F)-.814 G(or all other cases, it is type ALL.)-5.665 E .642
(Split\(\) uses the abo)72 204 R .971 -.165(ve a)-.165 H .641(lgorithm \
to set its initial guess for each node type from ply 1 through the curr\
ent).165 F(ply)72 216 Q 5.915(.N)-.715 G -.165(ex)-5.915 G 3.165(ti).165
G 3.165(te)-3.165 G .416(nters an "o)-3.165 F -.165(ve)-.165 G .416
(rride" phase.).165 F .416
(Split\(\) starts at ply=2 and checks the number of mo)5.916 F -.165(ve)
-.165 G 3.166(st).165 G .416(hat ha)-3.166 F -.165(ve)-.22 G 1.132
(been zeroed by the search \(the number of mo)72 228 R -.165(ve)-.165 G
3.881(st).165 G 1.131(hat ha)-3.881 F 1.461 -.165(ve a)-.22 H 1.131
(ctually been searched.\)).165 F -.165(Fo)6.631 G 3.881(ra).165 G 3.881
(nA)-3.881 G 1.131(LL node,)-3.881 F(man)72 240 Q 3.087(ym)-.165 G -.165
(ove)-3.087 G 3.087(sa).165 G .338(lready searched increases the "con\
\214dence" that this is truly an ALL node.)-3.087 F -.165(Fo)5.838 G
3.088(rC).165 G .338(UT nodes,)-3.088 F 1.527(if more than one mo)72 252
R 1.856 -.165(ve h)-.165 H 1.526
(as been searched, then the con\214dence for this CUT node is lo).165 F
1.526(wered, since it)-.275 F 1.014
(should not be necessary to search more than one mo)72 264 R 1.344 -.165
(ve a)-.165 H -6.513 3.764(ta r).165 H 1.015(eal CUT node.)-3.764 F
1.015(In f)6.515 F 1.015(act, if more than some)-.11 F .361(limit of mo)
72 276 R -.165(ve)-.165 G 3.111(sh).165 G .361(as been e)-3.111 F .361
(xamined \(currently=3\) then the type for this node is o)-.165 F -.165
(ve)-.165 G .36(rridden and set to ALL,).165 F .161
(since it appears that mo)72 288 R .491 -.165(ve o)-.165 H .161
(rdering has someho).165 F 2.912(wf)-.275 G .162
(ailed to search the best mo)-3.022 F .492 -.165(ve \214)-.165 H .162
(rst at some pre).165 F .162(vious ply)-.275 F(.)-.715 E .252
(After this o)72 312 R -.165(ve)-.165 G .251
(rride phase, a \214nal simple check is made since it is no).165 F 3.001
(wp)-.275 G .251(ossible to ha)-3.001 F .581 -.165(ve t)-.22 H .471 -.11
(wo A).165 H .251(LL nodes on).11 F(successi)72 324 Q .784 -.165(ve p)
-.275 H 3.204(lies. If).165 F .455(this happens, the second ALL node pr\
obably means that the successor to this node is)3.204 F .306
(really a CUT node and we are resetting the upper/lo)72 336 R .305
(wer search bounds after searching a wrong \214rst mo)-.275 F -.165(ve)
-.165 G(some)72 348 Q 3(where. The)-.275 F .25(\214nal o)3 F -.165(ve)
-.165 G .251(rride phase will note the second ALL node, and then force \
the successor of this).165 F .042
(node to be type CUT since yet another ALL node can')72 360 R 2.792(tf)
-.198 G(ollo)-2.792 E 2.792(wt)-.275 G .042(his one unless mo)-2.792 F
.371 -.165(ve o)-.165 H .041(rdering is hopelessly).165 F 3.847
(bad. This)72 372 R 1.097(phase of the o)3.847 F -.165(ve)-.165 G 1.097
(rride code simply allo).165 F 1.097(ws only tw)-.275 F 3.847(oA)-.11 G
1.097(LL nodes to be consecuti)-3.847 F 1.428 -.165(ve i)-.275 H 3.848
(nt).165 G 1.098(he tree.)-3.848 F .218
(After the second ALL node, the ne)72 384 R .218(xt node must be CUT)
-.165 F 2.968(,t)-.814 G .218(he ne)-2.968 F .218(xt ALL, etc.)-.165 F
-.165(Fo)5.718 G 2.968(ra).165 G .218(ll of these o)-2.968 F -.165(ve)
-.165 G .218(rrides the).165 F 1.125(con\214dence is v)72 396 R 1.125
(ery "lo)-.165 F 1.125(w" and, ag)-.275 F 1.125(ain, the number of mo)
-.055 F -.165(ve)-.165 G 3.875(ss).165 G 1.126
(earched at each ply is used to impro)-3.875 F 1.456 -.165(ve t)-.165 H
(his).165 E(con\214dence.)72 408 Q .116(This has pro)72 432 R -.165(ve)
-.165 G 2.866(nt).165 G 2.865(ob)-2.866 G 2.865(eac)-2.865 G .115
(ritical step in the DTS algorithm.)-2.865 F 2.865(Am)5.615 G(istak)
-2.865 E 2.865(eh)-.11 G .115(ere produces se)-2.865 F -.165(ve)-.275 G
.115(re problems later).165 F .657(because the search space is going to\
increase due to searching branches that the sequential search w)72 444
R(ould)-.11 E .154(be able to a)72 456 R -.22(vo)-.22 G 2.904(id. The)
.22 F .154(initial estimate w)2.904 F .154(as quite good, b)-.11 F .154
(ut the o)-.22 F -.165(ve)-.165 G .153(rride phase further impro).165 F
-.165(ve)-.165 G 2.903(dt).165 G .153(he reliabil-)-2.903 F .729
(ity of choosing a good node for a Split\(\) operation.)72 468 R .73
(This has been modi\214ed more than an)6.23 F 3.48(yo)-.165 G .73
(ther part of)-3.48 F .838(the DTS code, because Cray Blitz still \(on \
occasion\) searches trees in parallel that are much lar)72 480 R .838
(ger than)-.198 F .15(the same tree searched by only one processor)72
492 R 5.65(.I)-.605 G 2.9(ft)-5.65 G .151
(his were 100% accurate, then Cray Blitz w)-2.9 F .151(ould produce)-.11
F(almost linear speedup as additional processors are added to the searc\
h.)72 504 Q .599(Others ha)72 528 R .929 -.165(ve t)-.22 H .599
(ackled this "where to split the tree" in dif).165 F .598(ferent w)-.275
F .598(ays, and ha)-.11 F .928 -.165(ve p)-.22 H .598
(roduced interesting results).165 F([Akl82,A)72 540 Q(werb)-1.012 E .569
(uch85,Baudet78,Feldman90, Feldman93,and others].)-.22 F .57
(Most all were designed for message-)6.07 F .683
(passing systems, which made choosing split-points more comple)72 552 R
3.433(xs)-.165 G .683(ince it becomes a serious issue when)-3.433 F 2.09
(communication costs become a major design consideration.)72 564 R 2.091
(It should be noted that the only serious)7.59 F .877
(attempts to control tree search o)72 576 R -.165(ve)-.165 G .877
(rhead all do so at the e).165 F .877(xpense of synchronization/w)-.165
F .877(ait penalties.)-.11 F .876(In a)6.376 F EP
%%Page: 14 14
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(distrib)72 96 Q .904(uted en)-.22 F .904
(vironment, this mak)-.44 F .904
(es a great deal of sense, since the cost of di)-.11 F .904
(viding a tree into pieces is)-.275 F -.165(ve)72 108 S(ry high.).165 E
(On the Cray architecture, the opposite is true.)5.5 E
(3.3 Choosing a SPLIT ply)72 132 Q .547(The \214rst goal of the Split\(\
\) procedure is to select an ALL node for splitting since this is the o\
nly reason-)72 156 R .958(able type of node that w)72 168 R(on')-.11 E
3.708(ta)-.198 G .958(dd an)-3.708 F 3.708(ys)-.165 G .958(earch o)
-3.708 F -.165(ve)-.165 G .958(rhead \(e).165 F .958(xtra nodes.\))-.165
F .958(Since the o)6.458 F -.165(ve)-.165 G .958(rhead for choosing a)
.165 F .708(SPLIT point is costly)72 180 R 3.457(,am)-.715 G .707(ajor \
consideration for selecting a split point is to choose a split point th\
at will)-3.457 F(tak)72 192 Q 3.938(ear)-.11 G 1.188
(easonable amount of time to search in parallel so Split\(\) w)-3.938 F
(on')-.11 E 3.938(tb)-.198 G 3.939(ei)-3.938 G -2.09 -.44(nv o)-3.939 H
-.11(ke).44 G 3.939(da).11 G -.055(ga)-3.939 G 3.939(in. As).055 F 3.939
(ag)3.939 G(eneral)-3.939 E .512(rule, nodes at shallo)72 204 R 3.261
(wd)-.275 G .511(epths represent more w)-3.261 F .511
(ork than nodes at deep plies, making shallo)-.11 F 3.261(wn)-.275 G
.511(odes desir)-3.261 F(-)-.22 E .486(able split points.)72 216 R .486
(This can be complicated by at least tw)5.986 F 3.237(of)-.11 G .487
(eatures of the nodes;)-3.237 F .487(\(1\) the con\214dence of an)5.987
F .71(ALL node is lo)72 228 R 2.14 -.715(w, m)-.275 H .71(aking it risk)
.715 F 3.46(yt)-.165 G 3.46(os)-3.46 G .709
(earch it in parallel and possibly introduce e)-3.46 F .709
(xtra nodes into the tree)-.165 F 1.169
(search, and \(2\) the node has v)72 240 R 1.169(ery fe)-.165 F 3.919
(wb)-.275 G 1.169(ranches remaining, so that it will only supply w)
-3.919 F 1.17(ork for a small)-.11 F(number of processors which will fo\
rce yet another Split\(\) when the remaining processors become idle.)72
252 Q .461(As can be seen, this is a some)72 276 R .461(what subjecti)
-.275 F .79 -.165(ve d)-.275 H .46
(ecision, and tuning this code will continue for some time.).165 F .25
(Other recent modi\214cations to this include questions lik)72 288 R 3
(e")-.11 G .25(is the king in check at this node?" since this can)-3 F
.26(result in a misleading "w)72 300 R .26(ork estimate.")-.11 F .26
(Cray Blitz generates pseudo-le)5.76 F -.055(ga)-.165 G 3.009(lm).055 G
-.165(ove)-3.009 G .259(s, and when the king is in).165 F .109
(check, most of these mo)72 312 R -.165(ve)-.165 G 2.859(sa).165 G .109
(re, in f)-2.859 F .11(act, ille)-.11 F -.055(ga)-.165 G 2.86(l. If).055
F .11(these mo)2.86 F -.165(ve)-.165 G 2.86(sa).165 G .11
(re used to estimate the w)-2.86 F .11(ork to be done at)-.11 F .171
(this ply)72 324 R 2.921(,ap)-.715 G .17
(oor SPLIT point will be chosen since man)-2.921 F 2.92(ym)-.165 G -.165
(ove)-2.92 G 2.92(sa).165 G .17(re a)-2.92 F -.275(va)-.22 G .17
(ilable, b).275 F .17(ut most will be immediately)-.22 F .332
(recognized as ille)72 336 R -.055(ga)-.165 G 3.082(lw).055 G .332
(ith almost no w)-3.082 F .332(ork required to determine this.)-.11 F
(Se)5.833 E -.165(ve)-.275 G .333(ral such features can af).165 F .333
(fect the)-.275 F 1.625("estimated w)72 348 R 1.625
(orkload" of a potential split point to mak)-.11 F 4.375(ei)-.11 G 4.375
(tl)-4.375 G 1.625(ess attracti)-4.375 F -.165(ve)-.275 G 7.125(.A).165
G 1.625(nother e)-7.125 F 1.624(xample is that the)-.165 F .315
(search e)72 360 R .316(xtensions used by Cray Blitz at ply=N are af)
-.165 F .316(fected by the e)-.275 F .316
(xtensions at plies before N in the tree.)-.165 F 1.713
(The idea is that if something is causing e)72 372 R 1.712
(xtensions at shallo)-.165 F 4.462(wp)-.275 G 1.712
(lies, the search should be careful and)-4.462 F -.165(ex)72 384 S .523
(tend at deeper plies too, to \214nd out what is going on.).165 F .524
(Therefore, if there are man)6.024 F 3.274(ye)-.165 G .524
(xtensions before a)-3.439 F .958
(potential split-point, the subtrees belo)72 396 R 3.708(wt)-.275 G .957
(hat possible split-point will lik)-3.708 F .957(ely be lar)-.11 F .957
(ger than normal, a f)-.198 F(act)-.11 E
(that should be considered when choosing from se)72 408 Q -.165(ve)-.275
G(ral candidate nodes for a split-point.).165 E .309
(Split\(\) is the single most important function in the DTS algorithm.)
72 432 R .31(When it inadv)5.81 F .31(ertently chooses a CUT)-.165 F
.831(node as a split-point, search o)72 444 R -.165(ve)-.165 G .831
(rhead increases dramatically).165 F 6.33(.C)-.715 G .83
(hoosing a PV node potentially increases)-6.33 F 1.145(the search o)72
456 R -.165(ve)-.165 G 1.146(rhead until the \214rst branch is e).165 F
1.146(xamined and Share\(\) correctly establishes the upper/lo)-.165 F
(wer)-.275 E(search bounds.)72 468 Q 2.75(3.4 Splitting)72 492 R
(at the root)2.75 E .832
(Splitting the search at the root \(or not\) unco)72 516 R -.165(ve)
-.165 G .832(rs some interesting problems.).165 F .832
(First, most computer chess)6.332 F .186(programs use the so-called ite\
rated search where a one ply search is done, then that information is u\
sed to)72 528 R .137(order the mo)72 540 R -.165(ve)-.165 G 2.887(sf)
.165 G .137(or a tw)-2.887 F 2.887(op)-.11 G .137(ly search, and the in\
formation from that is used to order a three ply search and)-2.887 F
(so forth.)72 552 Q
(This process is continued until the time allotted for this mo)5.5 E .33
-.165(ve r)-.165 H(uns out.).165 E 1.096(It should be ob)72 576 R 1.096
(vious that the reason for doing a "depth+1" search is to \214nd a bett\
er mo)-.165 F 1.427 -.165(ve t)-.165 H 1.097(han the one).165 F EP
%%Page: 15 15
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .85(found from the "depth" search.)72 96 R .849
(Often, the program does not change its mind from iteration to iteratio\
n,)6.35 F .347
(and, in such circumstances, splitting the tree at the root is an e)72
108 R .347(xcellent idea.)-.165 F .347(After searching the \214rst root)
5.847 F .314(branch completely)72 120 R 3.064(,s)-.715 G .314
(earching the remainder in parallel introduces almost no o)-3.064 F
-.165(ve)-.165 G .314(rhead \(some arises due to).165 F .768
(transposition table interaction.\))72 132 R(Ho)6.269 E(we)-.275 E -.165
(ve)-.275 G 1.649 -.44(r, w).165 H .769(hen the \214rst mo).44 F 1.099
-.165(ve s)-.165 H .769(earched is not the best, and the program).165 F
.705(ultimately chooses a dif)72 144 R .705(ferent root mo)-.275 F 1.035
-.165(ve a)-.165 H 3.455(sb).165 G .705
(est, searching root branches in parallel causes a problem in)-3.455 F
(timed tournament chess g)72 156 Q(ames.)-.055 E .938(From prior analys\
is [Knuth75,Hyatt88,Hyatt89,Hsu90] the \214rst branch from the root pro\
duces a subtree)72 180 R .52(much lar)72 192 R .52(ger than the remaind\
er of the branches \(when the \214rst branch is best.\))-.198 F .519
(If the program then must)6.019 F .632
("change its mind" and select a dif)72 204 R .632(ferent mo)-.275 F .962
-.165(ve a)-.165 H 3.382(sb).165 G .632(est, this mo)-3.382 F .962 -.165
(ve w)-.165 H .632(ill also produce a much lar).165 F .633(ger subtree)
-.198 F(than the other mo)72 216 Q -.165(ve)-.165 G 2.75(s. This).165 F
("much lar)2.75 E(ger subtree" causes an interesting problem in timed e)
-.198 E -.165(ve)-.275 G(nts.).165 E .148(Consider a case where the sec\
ond branch is really the one that the "depth+1" search will ultimately \
select.)72 240 R .816(After searching the \214rst branch \(using parall\
el processing\) one processor selects the second mo)72 252 R 1.146 -.165
(ve i)-.165 H 3.566(nt).165 G(he)-3.566 E .346
(list \(that is really the best mo)72 264 R -.165(ve)-.165 G 3.095(\)a)
.165 G .345(nd starts searching the v)-3.095 F .345(ery lar)-.165 F .345
(ge subtree it produces.)-.198 F .345(Other processors)5.845 F -.165(ex)
72 276 S .009(amine other root branches that are unimportant.).165 F
.009(If time runs out before the second branch is completely)5.509 F
-.165(ex)72 288 S .389(amined, the \214rst mo).165 F .719 -.165(ve w)
-.165 H .388(ill be chosen, resulting in the program making a w).165 F
.388(orse mo)-.11 F .718 -.165(ve t)-.165 H .388(han it really has).165
F 2.948(to. An)72 300 R(alternati)2.948 E .528 -.165(ve i)-.275 H 2.949
(st).165 G 2.949(oh)-2.949 G -2.475 -.22(av e)-2.949 H .199
(all processors w)3.169 F .199(ork on the \214rst mo)-.11 F -.165(ve)
-.165 G 2.949(,t).165 G .199(hen all processors w)-2.949 F .199
(ork on the second)-.11 F(mo)72 312 Q -.165(ve)-.165 G 3.6(,a).165 G .85
(nd so forth.)-3.6 F .849(Then, when a ne)6.349 F 3.599(wb)-.275 G .849
(est mo)-3.599 F 1.179 -.165(ve i)-.165 H 3.599(ss).165 G .849
(earched, all processors search it and complete the)-3.599 F
(search before time runs out.)72 324 Q .883(Some might be quick to sugg\
est that "the search should notice that the un\214nished mo)72 348 R
1.214 -.165(ve h)-.165 H .884(as produced a).165 F(lar)72 360 Q .429
(ge tree, and is lik)-.198 F .429(ely about to become a ne)-.11 F 3.179
(wb)-.275 G .429(est, so don')-3.179 F 3.179(tg)-.198 G -2.365 -.275
(iv e)-3.179 H .428(up until it has been completed.")3.454 F(Ho)5.928 E
(w-)-.275 E -2.365 -.275(ev e)72 372 T 1.181 -.44(r, t).275 H .301
(here are tw).44 F 3.052(oi)-.11 G .302(ssues with this:)-3.052 F .302
(\(1\) just because a root mo)5.802 F .632 -.165(ve p)-.165 H .302
(roduces a tree se).165 F -.165(ve)-.275 G .302(ral orders of magni-)
.165 F .811(tude lar)72 384 R .811(ger than an)-.198 F 3.561(yo)-.165 G
.811(ther \(than the \214rst\) root mo)-3.561 F 1.141 -.165(ve d)-.165 H
.811(oes not imply that this mo).165 F 1.141 -.165(ve i)-.165 H 3.561
(sb).165 G(etter)-3.561 E 6.311(.I)-.605 G 3.561(tm)-6.311 G .81
(ight be)-3.561 F(better)72 396 Q 4.048(,o)-.44 G 4.048(ri)-4.048 G
4.048(tm)-4.048 G 1.298(ight simply be a complicated mo)-4.048 F 1.628
-.165(ve t)-.165 H 1.299
(hat leads to positions which stimulate lots of search).165 F -.165(ex)
72 408 S .148(tensions and mak).165 F 2.898(et)-.11 G .148
(he tree quite lar)-2.898 F 2.898(ge. Therefore,)-.198 F .148
(it is not safe to simply say the tree so f)2.898 F .148(ar is big, w)
-.11 F(ait,)-.11 E .884(because that might tak)72 420 R 3.634(eas)-.11 G
.884(igni\214cant amount of time to \214nish.)-3.634 F .885
(And note the major problem here is that)6.385 F .068
(only one processor is searching that branch should we choose to w)72
432 R .067(ait for a result.)-.11 F .067(\(2\) "Just w)5.567 F .067
(aiting" is not)-.11 F 3.879(ap)72 444 S 1.129
(articularly good plan in a timed e)-3.879 F -.165(ve)-.275 G 3.879
(nt. Since).165 F 1.129(time is a f)3.879 F(actor)-.11 E 3.879(,u)-.44 G
1.129(sing it wisely is a major part of an)-3.879 F(y)-.165 E 1.055
(chess program, and ha)72 456 R 1.055(ving to b)-.22 F 1.054(urn man)
-.22 F 3.804(ym)-.165 G 1.054(inutes just because the search can')-3.804
F 3.804(tr)-.198 G(esolv)-3.804 E 3.804(ew)-.165 G 1.054(hether a mo)
-3.804 F -.165(ve)-.165 G(further do)72 468 Q(wn the ply=1 mo)-.275 E
.33 -.165(ve l)-.165 H(ist is better or not can lead to timing dif).165
E(\214culties.)-.275 E .252(The dra)72 492 R .252
(wback to solving this is that we "kno)-.165 F .252
(w" that all branches at the root should be searched \(time per)-.275 F
(-)-.22 E 1.002(mitting\) and that searching them will cause no e)72 504
R 1.002(xtra o)-.165 F -.165(ve)-.165 G 1.002
(rhead \(after the \214rst branch establishes a lo).165 F(wer)-.275 E
.621(search bound, assuming that the \214rst mo)72 516 R .951 -.165
(ve i)-.165 H 3.371(sa).165 G .621(ctually the best mo)-3.371 F -.165
(ve)-.165 G 6.121(.T).165 G .621(his is true for a lar)-6.121 F .621
(ge majority of)-.198 F 1.614(positions, \).)72 528 R 1.614
(The root is therefore a highly f)7.114 F -.22(avo)-.11 G 1.613
(rable \(from a search o).22 F -.165(ve)-.165 G 1.613
(rhead point of vie).165 F 1.613(w\) place to)-.275 F 1.085
(search in parallel.)72 540 R 1.085(If the entire ply=1 mo)6.585 F 1.415
-.165(ve l)-.165 H 1.085(ist w).165 F 1.086
(as searched, then splitting at ply=1 w)-.11 F 1.086(ould w)-.11 F 1.086
(ork well.)-.11 F(Ho)72 552 Q(we)-.275 E -.165(ve)-.275 G 1.257 -.44
(r, s).165 H .377(ince time can run out and stop the search, e).44 F
.377(xamining the \214rst fe)-.165 F 3.126(wm)-.275 G -.165(ove)-3.126 G
3.126(so).165 G 3.126(nt)-3.126 G .376(he list \(searching)-3.126 F .942
(each in succession with all processors w)72 564 R .942
(orking together on each mo)-.11 F -.165(ve)-.165 G 3.692(\)e).165 G
.942(nsures that the \214rst fe)-3.692 F 3.693(wm)-.275 G -.165(ove)
-3.693 G(s).165 E 1.19(are COMPLETEL)72 576 R 3.94(Ye)-1.1 G 1.19
(xamined before time runs out. \(Note: in Cray Blitz and Crafty)-4.105 F
3.939(,a)-.715 G 3.939(ni)-3.939 G 1.189(teration is not)-3.939 F EP
%%Page: 16 16
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .398(completed after time has run out.)72 96 R
(Rather)5.898 E 3.148(,t)-.44 G .398(he search stops, the mo)-3.148 F
.728 -.165(ve i)-.165 H 3.148(sm).165 G .398
(ade, and then the ponder search)-3.148 F .731
(picks up and continues searching.\))72 108 R 2.491 -.88(We c)6.231 H
.731(hose to accept this inef).88 F(\214cienc)-.275 E 3.481(y\()-.165 G
.73(searching e)-3.481 F .73(xtra nodes\) in order)-.165 F(to let the p\
rogram change its mind on the last iteration, if the \214rst mo)72 120 Q
.33 -.165(ve i)-.165 H 2.75(sn).165 G(ot best.)-2.75 E .063
(This often leads to a li)72 144 R -.165(ve)-.275 G .064(ly debate abou\
t \(a\) whether or not a parallel search should split at the root and \
\(b\)).165 F .591
(whether or not the program should completely search the root mo)72 156
R .921 -.165(ve l)-.165 H .591(ist before stopping for a time limit.)
.165 F 1.76 -.88(We h)72 168 T -2.475 -.22(av e).88 H -.165(ex)2.97 G
(perimented with possible alternati).165 E .33 -.165(ve a)-.275 H
(lgorithms, b).165 E(ut none ha)-.22 E .33 -.165(ve p)-.22 H(ro).165 E
-.165(ve)-.165 G 2.75(nb).165 G(etter to date.)-2.75 E 2.75(4. DTS)72
192 R(performance results)2.75 E .117(The DTS algorithm w)72 216 R .117
(as tested using a Cray C916/1024 computer)-.11 F 5.617(.T)-.605 G .117
(his machine has 16 processors with a)-5.617 F -.165(cy)72 228 S
(cle time of 4.166 nanoseconds, and also has 1024 million w).165 E
(ords of memory \(eight gig)-.11 E(abytes.\))-.055 E(4.1 T)72 252 Q
(esting methodology)-.77 E .829(In producing these results, all testing\
used the machine in a dedicated mode so that all of the machine')72 276
R(s)-.605 E .241(memory w)72 288 R .241(as used, re)-.11 F -.055(ga)
-.165 G .242
(rdless of the number of processors utilized in each test \(e).055 F
.242(xcept for the one-proces-)-.165 F 1.227(sor test, which is e)72 300
R 1.227(xplained later\).)-.165 F 1.227
(Often, particularly when using distrib)6.727 F 1.227(uted machines lik)
-.22 F 3.976(et)-.11 G 1.226(he Hyper)-3.976 F(-)-.22 E 4.252(cubes, ad\
ding additional processors also adds additional memory [Feldmann90,Feld\
mann93,K)72 312 R(usz-)-.165 E(maul94,Schaef)72 324 Q(fer89,Y)-.275 E
1.535(ang93], ef)-1.1 F(fecti)-.275 E -.165(ve)-.275 G 1.535
(ly changing tw).165 F 4.285(os)-.11 G 1.534
(earch parameters at the same time \(number of)-4.285 F .166
(processors or total computation po)72 336 R .166
(wer and total memory a)-.275 F -.275(va)-.22 G 2.916(ilable.\) It).275
F .166(is then dif)2.916 F .166(\214cult to attrib)-.275 F .166
(ute the per)-.22 F(-)-.22 E .379(formance impro)72 348 R -.165(ve)-.165
G .379(ment to additional processor po).165 F .378
(wer alone as the transposition table is e)-.275 F .378(xtremely impor)
-.165 F(-)-.22 E(tant to search performance and making it lar)72 360 Q
(ger often dramatically speeds up search times.)-.198 E .434
(The testing done to produce the results gi)72 384 R -.165(ve)-.275 G
3.184(nh).165 G .434(erein dif)-3.184 F .434
(fers from the testing used in pre)-.275 F .434(vious parallel tree)
-.275 F .378(search algorithms [Hyatt88, Hyatt89, Schaef)72 396 R .378
(fer89, Feldmann90,others].)-.275 F .378
(Rather than use a group of unre-)5.878 F 1.856
(lated chess problems, we elected to tak)72 408 R 4.606(eas)-.11 G -.165
(eg)-4.606 G 1.856(ment of a real chess g).165 F 1.856(ame and ha)-.055
F 2.187 -.165(ve t)-.22 H 1.857(he program play).165 F .175
(through it with v)72 420 R .175(arying numbers of processors.)-.275 F
.175(There are tw)5.675 F 2.925(or)-.11 G .175
(easons for choosing this approach: \(1\) this)-2.925 F .124
(is what a chess program is designed to do, "play a complete g)72 432 R
.124(ame", not "search random positions" and \(2\))-.055 F 1.346
(it is well-kno)72 444 R 1.345(wn that parallel algorithms perform bett\
er when searching deeper trees [Hyatt88,Hyatt89,)-.275 F(Schaef)72 456 Q
4.903(fer89,others]. When)-.275 F 2.153(searching unrelated problems, t\
here is no "continuity" between problems.)4.903 F .974
(When searching a series of mo)72 468 R -.165(ve)-.165 G 3.724(sf).165 G
.974(rom the same g)-3.724 F .974
(ame, the transposition table, the killer mo)-.055 F 1.304 -.165(ve l)
-.165 H .974(ist, the).165 F .105
(dynamic scoring parameters, all "tie things together" and allo)72 480 R
2.855(wd)-.275 G .105(eeper searches.)-2.855 F .105
(Note also, that if you are)5.605 F
(iterested in results on a traditional test lik)72 492 Q 2.75(et)-.11 G
(he K)-2.75 E(opek/Bratk)-.385 E 2.75(op)-.11 G(ositions, the)-2.75 E
2.75(ya)-.165 G(re a)-2.75 E -.275(va)-.22 G(ilable in [Hyatt88].).275 E
1.564(The testing methodology w)72 516 R 1.564(as to tak)-.11 F 4.314
(et)-.11 G 1.564(he 16-processor log produced during the actual g)-4.314
F 1.563(ame, and then)-.055 F("contri)72 528 Q -.165(ve)-.275 G 4.302
("t).165 G 1.552(hings so that the "lesser" con\214gurations w)-4.302 F
1.552(ould do the same amount of w)-.11 F 1.552(ork \(roughly\).)-.11 F
(In)7.053 E 1.257(these tests, if the 16 processor search reached 11 pl\
ies and searched the \214rst 10 root mo)72 540 R -.165(ve)-.165 G 4.007
(sb).165 G 1.257(efore the)-4.007 F .21
(search timed out, then all lessor con\214gurations had to also do e)72
552 R .21(xactly this same search, which led to some)-.165 F .406
(embarrassingly long search times for one processor as will be seen.)72
564 R .405(One other minor note is that the sin-)5.905 F 1.222
(gle processor times appear to search slightly slo)72 576 R 1.222
(wer than the equi)-.275 F -.275(va)-.275 G 1.222
(lent parallel searches, which w).275 F(ould)-.11 E EP
%%Page: 17 17
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .019(seem to be counter)72 96 R(-intuiti)-.22 E
-.165(ve)-.275 G 5.518(.H).165 G -.275(ow)-5.518 G -2.365 -.275(ev e)
.275 H .898 -.44(r, d).275 H .018
(ue to the enormous time required to play through this g).44 F .018
(ame with-)-.055 F .33(out stopping \(which w)72 108 R .331(ould ha)-.11
F .661 -.165(ve c)-.22 H .331(leared the transposition table and so for\
th\) we ran this test on a produc-).165 F .263
(tion machine, and competed with other processes.)72 120 R .263
(As a result, memory con\215icts were much higher \(bank)5.763 F 1.866
(con\215icts to those that are Cray-sa)72 132 R 1.866
(vvy\) as well as sw)-.22 F 1.866(apping o)-.11 F -.165(ve)-.165 G 1.866
(rhead which gets char).165 F 1.867(ged to the user)-.198 F(.)-.605 E
(While this is well belo)72 144 Q 2.75(wt)-.275 G(he .1% le)-2.75 E
-.165(ve)-.275 G 2.75(lo).165 G 2.75(fn)-2.75 G
(oise, it is noticeable, and should be remembered.)-2.75 E .978
(The test positions came from the g)72 168 R .977
(ame Mchess Pro vs Cray Blitz at the 1993 A)-.055 F .977
(CM International Com-)-.44 F .112(puter Chess Championship.)72 180 R
.112(\(This g)5.612 F .112(ame is included as Appendix A.\))-.055 F .113
(This g)5.613 F .113(ame w)-.055 F .113(as chosen after looking)-.11 F
.84(at analysis produced by Cray Blitz during the tournament.)72 192 R
.839(The opening w)6.339 F .839(as a King')-.11 F 3.589(sG)-.605 G .839
(ambit Accepted)-3.589 F .428
(where white sacri\214ced a piece for some pa)72 204 R .429
(wns and a strong attack.)-.165 F .429(C-B sa)5.929 F 3.179(wt)-.165 G
.429(he e)-3.179 F -.275(va)-.275 G .429(luation steadily drop).275 F
.553(as it disco)72 216 R -.165(ve)-.165 G .553(red just ho).165 F 3.303
(ws)-.275 G .553(trong the attack w)-3.303 F .553(as, then it le)-.11 F
-.165(ve)-.275 G .553(led of).165 F 3.303(fa)-.275 G .552(nd follo)
-3.303 F .552(wed a "tight-rope" for se)-.275 F -.165(ve)-.275 G(ral)
.165 E(mo)72 228 Q -.165(ve)-.165 G 1.286
(s, making the only possible mo).165 F 1.616 -.165(ve t)-.165 H 1.287
(hat w).165 F 1.287(ould not lose, then it started f)-.11 F 1.287
(ailing high repeatedly as it)-.11 F(\214nally survi)72 240 Q -.165(ve)
-.275 G 2.75(dt).165 G(he attack and started a counter)-2.75 E
(-attack that ultimately w)-.22 E(on the g)-.11 E(ame.)-.055 E .275
(The \214rst position occurs after the sequence of mo)72 264 R -.165(ve)
-.165 G 3.024(s1).165 G 3.024(.e)-3.024 G 3.024(4e)-3.024 G 3.024(52)
-3.024 G 3.024(.N)-3.024 G .274(c3 Nc6 3. f4 e)-3.024 F .274
(xf4 4. Nf3 g5 5. d4 g4 6.)-.165 F .557(Bc4 gxf3 7. o-o d5)72 276 R .557
(8. e)6.057 F .557(xd5 Bg4 9. Qd2 ...)-.165 F .558(At this point, C-B w)
6.058 F .558(as "out of book" and quickly disco)-.11 F -.165(ve)-.165 G
(red).165 E .021(that its king w)72 288 R .021(as e)-.11 F .021
(xposed in the center although it w)-.165 F .021
(as a piece up and a couple of pa)-.11 F .02(wns do)-.165 F 2.77
(wn. The)-.275 F -.275(eva)2.77 G(lu-).275 E .972
(ation steadily dropped for the ne)72 300 R .973(xt fe)-.165 F 3.723(wm)
-.275 G -.165(ove)-3.723 G 3.723(sa).165 G 3.723(sC)-3.723 G .973
(-B "sa)-3.723 F .973(w" ho)-.165 F 3.723(we)-.275 G .973
(xposed its king w)-3.888 F 3.723(as. The)-.11 F -.275(eva)3.723 G
(luation).275 E .598(dropped to a point where C-B w)72 312 R .598
(as about 1/4 pa)-.11 F .597(wn "do)-.165 F .597(wn" at the lo)-.275 F
3.347(wp)-.275 G .597(oint in the g)-3.347 F 3.347(ame. It)-.055 F .597
(then be)3.347 F -.055(ga)-.165 G 3.347(na).055 G 1.491
(climb to roughly 1/3 of a pa)72 324 R 1.491(wn "ahead" before disco)
-.165 F -.165(ve)-.165 G 1.492
(ring that Mchess could force a perpetual dra).165 F -.715(w.)-.165 G
.248(\(This occurred at position 17 where C-B took a long time trying t\
o \214nd an)72 336 R 2.997(yw)-.165 G .247(ay out of the v)-3.107 F .247
(ery deep per)-.165 F(-)-.22 E .274(petual check.)72 348 R .274
(The perpetual w)5.774 F .274(as some 19 plies deep.\))-.11 F -.165(Fo)
5.774 G 3.024(rt).165 G .274(he ne)-3.024 F .274(xt tw)-.165 F 3.024(om)
-.11 G -.165(ove)-3.024 G .274(s, it w).165 F .274(as resigned to a dra)
-.11 F -.715(w,)-.165 G -.22(bu)72 360 S 4.917(tM).22 G 2.167(chess app\
arently did not search deeply enough to detect the repetition and v)
-4.917 F 2.166(aried, gi)-.275 F 2.166(ving C-B)-.275 F(another chance.)
72 372 Q(From this point on the e)5.5 E -.275(va)-.275 G
(luation climbed steadily).275 E(.)-.715 E .256
(This particular series of positions of)72 396 R .256
(fered both "good," "bad" and "normal" positions that C-B searched in)
-.275 F(parallel.)72 408 Q 2.784(A")72 432 S .033
(good" position is one where the program \214nds the correct mo)-2.784 F
.363 -.165(ve a)-.165 H 2.783(tas).165 G(hallo)-2.783 E 2.783(ws)-.275 G
.033(earch and "sticks with it")-2.783 F .327
(through later searches and ultimately mak)72 444 R .328(es that mo)-.11
F -.165(ve)-.165 G 5.828(.T).165 G .328
(his means that ordering at the root of the tree is)-5.828 F .531
(perfect, and often means that ordering f)72 456 R .531(arther do)-.11 F
.531(wn in the tree is also quite good, making the search rea-)-.275 F
1.069(sonably ef)72 468 R 3.82(\214cient. These)-.275 F 1.07
(positions produce good speedups re)3.82 F -.055(ga)-.165 G 1.07
(rdless of the number of processors used.).055 F
(Positions 20 and 21 are e)72 480 Q(xamples of such positions.)-.165 E
3.761(A")72 504 S 1.01(normal" position is one where the program occasi\
onally changes its mind at the root, b)-3.761 F 1.01(ut that mo)-.22 F
-.165(ve)-.165 G .143(ordering is still good.)72 516 R .144
(This lets C-B \214nd the ne)5.643 F 2.894(wb)-.275 G .144(est mo)-2.894
F .474 -.165(ve a)-.165 H 2.894(tt).165 G .144(he root f)-2.894 F .144
(aster than it w)-.11 F .144(ould if it could split)-.11 F(the w)72 528
Q(ork at the root \(pre)-.11 E(vious discussion.\))-.275 E 3.443(A")72
552 S .692(bad" position is one where e)-3.443 F -.165(ve)-.275 G .692
(ry iteration un).165 F -.165(ve)-.44 G .692(ils some ne).165 F 3.442
(wt)-.275 G .692(hreat that the program must then \214nd a)-3.442 F -.11
(wa)72 564 S 3.25(yt).11 G 3.25(od)-3.25 G .5(efend ag)-3.25 F 3.25
(ainst. At)-.055 F .5(the be)3.25 F .5(ginning of each ne)-.165 F 3.251
(wi)-.275 G .501(teration, the best mo)-3.251 F .831 -.165(ve f)-.165 H
.501(rom the pre).165 F .501(vious iteration)-.275 F .707(often f)72 576
R .707(ails lo)-.11 F 2.137 -.715(w, a)-.275 H .707
(nd with little help in ordering mo).715 F -.165(ve)-.165 G .707
(s, the parallel v).165 F .706(ersion of the search be)-.165 F .706
(gins to search)-.165 F EP
%%Page: 18 18
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .389
(signi\214cantly more nodes than the sequential v)72 96 R 3.14
(ersion. These)-.165 F .39(positions typically ha)3.14 F .72 -.165(ve p)
-.22 H .39(oor speedup results).165 F .07
(when compared with a sequential search.)72 108 R .07(An e)5.57 F .07
(xcellent e)-.165 F .069(xample of this is position 17.)-.165 F .069
(This is the position)5.569 F 1.575(where C-B disco)72 120 R -.165(ve)
-.165 G 1.575(rs that it can').165 F 4.325(ta)-.198 G -.22(vo)-4.545 G
1.575(id a dra).22 F 4.325(wb)-.165 G 4.325(yr)-4.325 G 1.575
(epetition \(with best play by the opponent.\))-4.325 F(Mo)7.076 E -.165
(ve)-.165 G .923(ordering is poor since prior kno)72 132 R .923
(wledge of good mo)-.275 F -.165(ve)-.165 G 3.673(si).165 G 3.673(sq)
-3.673 G .923(uickly refuted by the dra)-3.673 F .923
(wing lines found by)-.165 F(the constantly increasing search depth.)72
144 Q .276(The results include tw)72 168 R 3.026(os)-.11 G .276
(ets of numbers for each test, where a test used either one, tw)-3.026 F
.277(o, four)-.11 F 3.027(,e)-.44 G .277(ight or six-)-3.027 F .133
(teen processors.)72 180 R .133
(The numbers are the clock time required for the search \(w)5.633 F .133
(all clock time\) and the number)-.11 F(of nodes searched \(which sho)72
192 Q(ws ho)-.275 E 2.75(wm)-.275 G(uch e)-2.75 E(xtra w)-.165 E
(ork is added by using additional processors.)-.11 E .256
(These results are summarized belo)72 216 R 3.006(wi)-.275 G 3.006(nt)
-3.006 G .256(able 3, which can be compared to the results for the tw)
-3.006 F 3.007(op)-.11 G(re)-3.007 E(vious)-.275 E(algorithms.)72 228 Q
.44 LW 417.215 248.95 194.784 248.95 DL 2.75(#p)200.284 258.2 S 17.875
(rocessors 1)-2.75 F 24.75(2481)24.75 G(6)-24.75 E 417.215 262.95
194.784 262.95 DL 32.384(speedup 1.0)200.284 272.2 R 13.75
(2.0 3.7 6.6 11.1)16.5 F 417.215 276.95 194.784 276.95 DL 384.215 262.95
384.215 276.95 DL 353.965 262.95 353.965 276.95 DL 323.715 262.95
323.715 276.95 DL 293.465 262.95 293.465 276.95 DL 263.215 262.95
263.215 276.95 DL 417.215 248.95 417.215 276.95 DL 194.784 248.95
194.784 276.95 DL 384.215 248.95 384.215 276.95 DL 353.965 248.95
353.965 276.95 DL 323.715 248.95 323.715 276.95 DL 293.465 248.95
293.465 276.95 DL 263.215 248.95 263.215 276.95 DL -.88(Ta)233.125 300.4
S(ble 3 DTS performance results).88 E 2.75(5. Performance)72 324.4 R
(analysis)2.75 E .292(The performance results for DTS are presented in \
table 4 \(search time for each test position in the g)72 348.4 R(ame\),)
-.055 E 1.243(table 5 \(nodes searched for each test position\) and tab\
le 6 \(the performance impro)72 360.4 R -.165(ve)-.165 G 1.244
(ment for each test).165 F(position\).)72 372.4 Q 1.37(The simplest w)72
396.4 R 1.37(ay to analyze the performance is to e)-.11 F 1.369
(xamine T)-.165 F 1.369(able 3 which gi)-.88 F -.165(ve)-.275 G 4.119
(st).165 G 1.369(he speedup for each)-4.119 F 4.238(position. This)72
408.4 R 1.488(table presents the a)4.238 F -.165(ve)-.22 G 1.489
(rage speedup for tw).165 F 1.489(o, four)-.11 F 4.239(,e)-.44 G 1.489
(ight and sixteen processors, and is a)-4.239 F .379
(summary of the timing results from table 6, gi)72 420.4 R .378
(ving each position a weight of one and di)-.275 F .378
(viding the sum of)-.275 F .505(the column by 24.)72 432.4 R .506
(It is interesting to note that there is an in)6.005 F -.165(ve)-.44 G
.506(rse relationship between speedup and total).165 F 1.163
(nodes searched, which is e)72 444.4 R 1.162(xactly as e)-.165 F 1.162
(xpected with DTS.)-.165 F 1.162(Recall that DTS does not allo)6.662 F
3.912(wp)-.275 G 1.162(rocessors to)-3.912 F .328(remain idle for an)72
456.4 R 3.078(ys)-.165 G .328(igni\214cant amount of time, so that poor\
speedup results has to be the result of search-)-3.078 F
(ing nodes that are unnecessary)72 468.4 Q 2.75(,e)-.715 G
(xactly as the ra)-2.915 E 2.75(wd)-.165 G(ata gi)-2.75 E -.165(ve)-.275
G 2.75(ns).165 G(ho)-2.75 E(ws.)-.275 E -.165(Fo)72 492.4 S 3.441(rt)
.165 G .691
(he older Cray XMP machines with a maximum of four processors, an a)
-3.441 F -.165(ve)-.22 G .69(rage speedup of tw).165 F 3.44(o\()-.11 G
(tw)-3.44 E(o)-.11 E .194
(processors\) and 3.7 \(four processors\) looks e)72 504.4 R .194
(xtremely ef)-.165 F 2.944(\214cient. Mo)-.275 F .195
(ving up to an eight processor machine)-.165 F 1.013
(\(the old YMP line is an e)72 516.4 R 1.013
(xample\) produces a speedup of 6.6 which, ag)-.165 F 1.013
(ain, is a reasonable result.)-.055 F(Here)6.512 E .334(doubling the nu\
mber of processors from four to eight produces a performance impro)72
528.4 R -.165(ve)-.165 G .334(ment f).165 F .334(actor of 1.8.)-.11 F
(Ho)72 540.4 Q(we)-.275 E -.165(ve)-.275 G 2.493 -.44(r, p).165 H 1.613
(ushing this further be).44 F 1.613(gins to sho)-.165 F 4.363(wj)-.275 G
1.613(ust ho)-4.363 F 4.363(wd)-.275 G(if)-4.363 E 1.612
(\214cult parallelizing an alpha/beta tree search)-.275 F 1.164
(really is.)72 552.4 R 1.164
(The speedup of 11.1 for 16 processors means that o)6.664 F -.165(ve)
-.165 G 3.915(ro).165 G 1.165(ne quarter of the C90')-3.915 F 3.915(sc)
-.605 G 1.165(ycles were)-4.08 F -.11(wa)72 564.4 S 2.903(sted. F).11 F
.153(or these tests, processor idle time a)-.165 F -.165(ve)-.22 G .153
(raged under tw).165 F 2.903(os)-.11 G .153
(econds for each position \(per processor\),)-2.903 F EP
%%Page: 19 19
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(sho)72 96 Q .549
(wing that the parallel search e)-.275 F .55(xamined a signi\214cant nu\
mber of nodes that the sequential search didn')-.165 F(t)-.198 E(\(e)72
108 Q 1.019(xamine T)-.165 F 1.018
(able 2 and compare the 1cpu node counts column to an)-.88 F 3.768(yo)
-.165 G 3.768(ft)-3.768 G 1.018(he others.)-3.768 F -.165(Fo)6.518 G
3.768(rp).165 G 1.018(osition 17 it is)-3.768 F(ob)72 120 Q 1.22
(vious that the program searched almost three times as man)-.165 F 3.97
(yn)-.165 G 1.22(odes with 16 processors as it did with)-3.97 F .087
(one, so that, e)72 132 R -.165(ve)-.275 G 2.837(nt).165 G .086
(hough the entire machine \(16 processors\) w)-2.837 F .086(as b)-.11 F
(usy)-.22 E 2.836(,t)-.715 G .086(he majority of the processors were)
-2.836 F(doing unnecessary w)72 144 Q(ork.)-.11 E .297(Cray Blitz count\
s the number of split operations that it attempts, as part of its b)72
168 R .297(uilt-in performance analy-)-.22 F 3.562(sis. This)72 180 R
.812(count is af)3.562 F .811(fected by tw)-.275 F 3.561(op)-.11 G 3.561
(arameters; \(1\))-3.561 F .811(the e)3.561 F .811
(xtra nodes searched by the program, and \(2\) the)-.165 F 1.872
(total search time.)72 192 R 1.873(In ef)7.373 F 1.873
(fect, the number of splits per unit of time \(in)-.275 F -.165(ve)-.44
G 1.873(rsely\) follo).165 F 1.873(ws the e)-.275 F 1.873(xtra nodes)
-.165 F .218(searched by the program.)72 204 R -.165(Fo)5.718 G 2.968
(rt).165 G .218(hese test positions, the SPLIT count ranged from a lo)
-2.968 F 2.968(wo)-.275 G 2.968(f3)-2.968 G .218(07 to a high of)-2.968
F -.165(ove)72 216 S 3.225(r1).165 G 3.225(20,000! As)-3.225 F 3.225(ar)
3.225 G .476(esult, this data has not been presented since the speedup \
table and time tables accu-)-3.225 F 1.63
(rately predict the split counts obtained from the tests.)72 228 R 1.629
(The best speedup \(and the fe)7.13 F 1.629(west e)-.275 F 1.629
(xtra nodes\))-.165 F .716(occurs on positions where fe)72 240 R 3.467
(ws)-.275 G .717(plit operations are attempted.)-3.467 F 2.477 -.88
(To a)6.217 H -.22(vo).66 G .717(id a situation of "information o).22 F
-.165(ve)-.165 G -.22(r-).165 G<8d6f>72 252 Q .095
(w" additional statistics g)-.275 F .095(athered by C-B ha)-.055 F .425
-.165(ve b)-.22 H .094(een omitted since statistical analysis sho).165 F
.094(ws strong corre-)-.275 F .407(lation among all of the metrics.)72
264 R .408(One e)5.908 F .408
(xample is that C-B counts the number of times a processor starts a)
-.165 F .648(parallel task only to be stopped by another because mo)72
276 R .978 -.165(ve o)-.165 H .648(rdering w).165 F .648
(as not optimal.)-.11 F .648(These "early stops")6.148 F
(correspond with the "split operations attempted" and with the "e)72 288
Q(xtra nodes" quite well.)-.165 E 1.25(The most immediate problem in th\
e current algorithm is that the parallel search e)72 312 R 1.25
(xamines a signi\214cant)-.165 F .413(number of e)72 324 R .413
(xtra nodes that the sequential algorithm does not.)-.165 F .413(Much w)
5.913 F .412(ork remains to determine just ho)-.11 F(w)-.275 E -.11(fa)
72 336 S 2.773(rt).11 G .024(his can be reduced.)-2.773 F(Intuiti)5.524
E -.165(ve)-.275 G(ly).165 E 2.774(,i)-.715 G 2.774(ti)-2.774 G 2.774
(sn)-2.774 G .024(ot possible to reduce the number of e)-2.774 F .024
(xtra nodes to zero since this)-.165 F -.11(wo)72 348 S 1.702
(uld require nearly perfect mo).11 F 2.032 -.165(ve o)-.165 H 4.452
(rdering. The).165 F(rele)4.452 E -.275(va)-.275 G 1.702
(nt question is whether or not it is possible to).275 F .418
(choose a split point more accurately than the present algorithm does.)
72 360 R .419(If some information were a)5.919 F -.275(va)-.22 G(ilable)
.275 E .446(that might be used to predict ho)72 372 R 3.196(wg)-.275 G
.446(ood mo)-3.196 F .776 -.165(ve o)-.165 H .446
(rdering is at a particular node, better split points might be).165 F
(chosen.)72 384 Q -.165(Fo)72 408 S 3.053(rc).165 G .303
(urrent machines with sixteen processors \(and e)-3.053 F -.165(ve)-.275
G 3.053(nf).165 G .303(or future potential supercomputers with up to 64)
-3.053 F .279(processors\) the processor idle time in the current algor\
ithm does not pose a signi\214cant problem.)72 420 R .278(The cur)5.778
F(-)-.22 E 1.43(rent idle times of tw)72 432 R 4.181(ot)-.11 G 4.181(ot)
-4.181 G 1.431(hree seconds o)-4.181 F -.165(ve)-.165 G 4.181(ram).165 G
1.761 -.165(ove t)-4.181 H 1.431(hat tak).165 F 1.431
(es 200 to 500 seconds does not af)-.11 F 1.431(fect the)-.275 F .475(s\
earch times signi\214cantly for small numbers of processors \(2-16\), b)
72 444 R .475(ut for really lar)-.22 F .474(ge numbers of proces-)-.198
F(sors, something must be done to a)72 456 Q -.22(vo)-.22 G
(id running into Amdahl').22 E 2.75(sL)-.605 G -.165(aw)-2.75 G(.)-.55 E
.143(This result compares f)72 480 R -.22(avo)-.11 G .143
(rably with the DPVS \(Dynamic PVS\) algorithm de).22 F -.165(ve)-.275 G
.144(loped for Phoenix \(Schaef-).165 F 3.365(fer89]. The)72 492 R -.165
(ove)3.365 G .615(rall algorithms seem quite similar).165 F 3.365(,b)
-.44 G .615(ut ag)-3.585 F .615(ain, DTS is designed for a much dif)
-.055 F .614(ferent com-)-.275 F 2.718
(munication mechanism \(shared memory\) and can o)72 504 R -.165(ve)
-.165 G 2.719(rlook some things that Phoenix [Schaef).165 F(fer89],)
-.275 E(Zugzw)72 516 Q .746(ang [Feldman93], *Socrates [K)-.11 F .746
(uszmaul], and others ha)-.165 F 1.076 -.165(ve t)-.22 H 3.496(ob).165 G
3.496(ev)-3.496 G .746(ery concerned about because the)-3.661 F .725(co\
mmunication costs are so signi\214cant in those message passing archite\
ctures used.)72 528 R .726(In f)6.226 F .726(act, perhaps the)-.11 F
1.313(Deep Thought/Deep Blue hardw)72 540 R 1.312
(are comes closest to the architecture used by Cray Blitz, b)-.11 F
1.312(ut e)-.22 F -.165(ve)-.275 G 4.062(nt).165 G(his)-4.062 E 1.102
(chess-speci\214c architecture still does not ha)72 552 R 1.432 -.165
(ve a u)-.22 H 1.103
(niform shared memory system that is global across all).165 F
(processors and chess processors [Hsu90].)72 564 Q EP
%%Page: 20 20
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(It')72 96 Q 3.367(su)-.605 G .616(nfortunate th\
at shared memory is an architectural design feature that doesn')-3.367 F
3.366(ts)-.198 G .616(cale to lar)-3.366 F .616(ge numbers)-.198 F .39(\
of processors, because CB might produce some interesting performance re\
sults with really lar)72 108 R .39(ge numbers)-.198 F 1.413
(of processors.)72 120 R(Ho)6.913 E(we)-.275 E -.165(ve)-.275 G 2.293
-.44(r, t).165 H 1.413(his is not the case, and it is doubtful that a C\
ray-class machine will support).44 F .474(shared memory on more than 64\
processors, using a high-speed interconnect lik)72 132 R 3.224(et)-.11
G .474(he Cray machines use.)-3.224 F .032
(As a result, this algorithm really will only scale as f)72 144 R .031
(ar as a shared memory architecture scales.)-.11 F(An)5.531 E 2.781(yd)
-.165 G(elays)-2.781 E 1.782(\(such as those in some architectures that\
use a hierarchical memory or)72 156 R -.055(ga)-.198 G 1.783
(nization with v).055 F 1.783(arying delays)-.275 F .496
(depending on ho)72 168 R 3.246(wf)-.275 G .496
(ar the memory is from the requesting processor\) will certainly ha)
-3.356 F .826 -.165(ve a)-.22 H 3.246(na).165 G(dv)-3.246 E .496
(erse ef)-.165 F(fect)-.275 E(on DTS.)72 180 Q EP
%%Page: 21 21
%%BeginPageSetup
BP
%%EndPageSetup
.44 LW 418.139 88.75 193.86 88.75 DL/F0 11/Times-Roman@0 SF(processors)
298.673 98 Q 418.139 102.75 193.86 102.75 DL 23.375(pos 1)199.36 112 R
35.75(248)35.75 G(16)-6.875 E 418.139 116.75 193.86 116.75 DL 16.5(12)
209.139 126 S 13.75(,830 1,415)-16.5 F 22(832 435)24.75 F(311)16.5 E
418.139 130.75 193.86 130.75 DL 16.5(22)209.139 140 S 13.75(,849 1,424)
-16.5 F 22(791 438)24.75 F(274)16.5 E 418.139 144.75 193.86 144.75 DL
16.5(33)209.139 154 S 13.75(,274 1,637)-16.5 F 22(884 467)24.75 F(239)
16.5 E 418.139 158.75 193.86 158.75 DL 16.5(42)209.139 168 S 13.75
(,308 1,154)-16.5 F 22(591 349)24.75 F(208)16.5 E 418.139 172.75 193.86
172.75 DL 16.5(51)209.139 182 S 22(,584 792 440 243)-16.5 F(178)16.5 E
418.139 186.75 193.86 186.75 DL 16.5(64)209.139 196 S 13.75
(,294 2,147 1,160)-16.5 F 13.75(670 452)24.75 F 418.139 200.75 193.86
200.75 DL 16.5(71)209.139 210 S 22(,888 993 524 273)-16.5 F(187)16.5 E
418.139 214.75 193.86 214.75 DL 16.5(87)209.139 224 S 13.75
(,275 3,637 1,966 1,039 680)-16.5 F 418.139 228.75 193.86 228.75 DL 16.5
(93)209.139 238 S 13.75(,940 1,970 1,094)-16.5 F 13.75(635 398)24.75 F
418.139 242.75 193.86 242.75 DL 13.75(10 2,431 1,215)203.639 252 R 22
(639 333)24.75 F(187)16.5 E 418.139 256.75 193.86 256.75 DL 13.75
(11 3,062 1,531)203.639 266 R 22(827 425)24.75 F(247)16.5 E 418.139
270.75 193.86 270.75 DL 13.75(12 2,518 1,325)203.639 280 R 22(662 364)
24.75 F(219)16.5 E 418.139 284.75 193.86 284.75 DL 13.75(13 2,131 1,121)
203.639 294 R 22(560 313)24.75 F(192)16.5 E 418.139 298.75 193.86 298.75
DL 13.75(14 1,871)203.639 308 R 22(935 534 296)24.75 F(191)16.5 E
418.139 312.75 193.86 312.75 DL 13.75(15 2,648 1,324)203.639 322 R 22
(715 378)24.75 F(243)16.5 E 418.139 326.75 193.86 326.75 DL 13.75
(16 2,347 1,235)203.639 336 R 22(601 321)24.75 F(182)16.5 E 418.139
340.75 193.86 340.75 DL 13.75(17 4,884 2,872 1,878 1,085 814)203.639 350
R 418.139 354.75 193.86 354.75 DL 22(18 646 358 222 124)203.639 364 R
(84)22 E 418.139 368.75 193.86 368.75 DL 13.75(19 2,983 1,491)203.639
378 R 22(785 426)24.75 F(226)16.5 E 418.139 382.75 193.86 382.75 DL
13.75(20 7,473 3,736 1,916 1,083 530)203.639 392 R 418.139 396.75 193.86
396.75 DL 13.75(21 3,626 1,813)203.639 406 R 22(906 489)24.75 F(237)16.5
E 418.139 410.75 193.86 410.75 DL 13.75(22 2,560 1,347)203.639 420 R 22
(691 412)24.75 F(264)16.5 E 418.139 424.75 193.86 424.75 DL 13.75
(23 2,039 1,019)203.639 434 R 22(536 323)24.75 F(206)16.5 E 418.139
438.75 193.86 438.75 DL 13.75(24 2,563 1,281)203.639 448 R 22(657 337)
24.75 F(178)16.5 E 418.139 452.75 193.86 452.75 DL 387.889 116.75
387.889 452.75 DL 346.639 116.75 346.639 452.75 DL 305.389 116.75
305.389 452.75 DL 264.139 116.75 264.139 452.75 DL 222.889 116.75
222.889 452.75 DL 418.139 88.75 418.139 452.75 DL 193.86 88.75 193.86
452.75 DL 387.889 102.75 387.889 452.75 DL 346.639 102.75 346.639 452.75
DL 305.389 102.75 305.389 452.75 DL 264.139 102.75 264.139 452.75 DL
222.889 88.75 222.889 452.75 DL -.88(Ta)235.297 476.2 S(ble 4 Search T)
.88 E(ime in Seconds)-.385 E EP
%%Page: 22 22
%%BeginPageSetup
BP
%%EndPageSetup
.44 LW 497.889 88.75 114.11 88.75 DL/F0 11/Times-Roman@0 SF(processors)
298.673 98 Q 497.889 102.75 114.11 102.75 DL 38.5(pos 1)119.61 112 R 66
(248)66 G(16)-2.75 E 497.889 116.75 114.11 116.75 DL 22(18)129.389 126 S
19.25(7,735,974 89,052,012)-22 F 13.75
(105,025,123 109,467,495 155,514,410)16.5 F 497.889 130.75 114.11 130.75
DL 22(28)129.389 140 S 19.25(8,954,757 90,289,077)-22 F 13.75
(100,568,301 110,988,161 137,965,406)16.5 F 497.889 144.75 114.11 144.75
DL 16.5(31)129.389 154 S 13.75
(01,302,792 102,822,332 111,433,074 117,366,515 119,271,093)-16.5 F
497.889 158.75 114.11 158.75 DL 22(47)129.389 168 S 19.25
(1,726,853 72,802,754 74,853,409 88,137,085)-22 F(104,230,094)16.5 E
497.889 172.75 114.11 172.75 DL 22(54)129.389 182 S 19.25
(9,386,616 50,127,414 55,834,316 61,619,298 89,506,306)-22 F 497.889
186.75 114.11 186.75 DL 16.5(61)129.389 196 S 13.75
(33,238,718 135,237,296 146,562,594 168,838,428 226,225,307)-16.5 F
497.889 200.75 114.11 200.75 DL 22(75)129.389 210 S 19.25
(8,593,747 62,602,792 66,243,490 68,868,878 93,575,946)-22 F 497.889
214.75 114.11 214.75 DL 16.5(82)129.389 224 S 13.75
(25,906,282 229,294,872 248,496,917 261,728,552 340,548,431)-16.5 F
497.889 228.75 114.11 228.75 DL 16.5(91)129.389 238 S 13.75
(22,264,617 124,098,584 138,226,951 159,930,005 199,204,874)-16.5 F
497.889 242.75 114.11 242.75 DL 19.25
(10 75,301,353 76,430,872 80,651,716 83,656,702 93,431,597)123.889 252 R
497.889 256.75 114.11 256.75 DL 19.25(11 95,321,494 96,751,315)123.889
266 R 13.75(104,853,646 107,369,070 123,994,812)16.5 F 497.889 270.75
114.11 270.75 DL 19.25(12 79,975,416 85,447,418 85,657,884 94,000,085)
123.889 280 R(112,174,209)16.5 E 497.889 284.75 114.11 284.75 DL 19.25
(13 66,100,160 70,622,802 70,796,754 78,834,155 96,053,649)123.889 294 R
497.889 298.75 114.11 298.75 DL 19.25
(14 58,099,574 58,971,066 67,561,507 74,791,668 95,627,150)123.889 308 R
497.889 312.75 114.11 312.75 DL 19.25
(15 84,143,340 85,405,488 92,557,676 97,486,065)123.889 322 R
(124,516,703)16.5 E 497.889 326.75 114.11 326.75 DL 19.25
(16 75,738,094 80,920,173 79,039,499 84,141,904 94,701,972)123.889 336 R
497.889 340.75 114.11 340.75 DL 13.75
(17 154,901,225 184,970,278 242,480,013 279,166,418 416,426,105)123.889
350 R 497.889 354.75 114.11 354.75 DL 19.25
(18 20,266,629 22,856,254 28,443,165 31,608,146 42,454,639)123.889 364 R
497.889 368.75 114.11 368.75 DL 19.25(19 93,858,903 95,266,785)123.889
378 R 13.75(100,527,830 108,742,238 114,692,731)16.5 F 497.889 382.75
114.11 382.75 DL 13.75
(20 231,206,390 234,674,482 241,284,621 271,751,263 264,493,531)123.889
392 R 497.889 396.75 114.11 396.75 DL 13.75
(21 112,457,464 114,144,324 114,425,474 123,247,294 118,558,091)123.889
406 R 497.889 410.75 114.11 410.75 DL 19.25
(22 81,302,340 86,865,131 89,432,576)123.889 420 R 13.75
(106,348,704 135,196,568)16.5 F 497.889 424.75 114.11 424.75 DL 19.25
(23 63,598,940 64,552,923 68,117,815 81,871,010)123.889 434 R
(103,621,303)16.5 E 497.889 438.75 114.11 438.75 DL 19.25
(24 80,413,971 81,620,179 83,919,196 85,810,169 90,074,814)123.889 448 R
497.889 452.75 114.11 452.75 DL 429.139 116.75 429.139 452.75 DL 357.639
116.75 357.639 452.75 DL 286.139 116.75 286.139 452.75 DL 214.639 116.75
214.639 452.75 DL 143.139 116.75 143.139 452.75 DL 497.889 88.75 497.889
452.75 DL 114.11 88.75 114.11 452.75 DL 429.139 102.75 429.139 452.75 DL
357.639 102.75 357.639 452.75 DL 286.139 102.75 286.139 452.75 DL
214.639 102.75 214.639 452.75 DL 143.139 88.75 143.139 452.75 DL -.88
(Ta)238.911 476.2 S(ble 5).88 E -.88(To)5.5 G(tal Nodes Searched).88 E
EP
%%Page: 23 23
%%BeginPageSetup
BP
%%EndPageSetup
.44 LW 393.582 88.75 218.418 88.75 DL/F0 11/Times-Roman@0 SF(processors)
298.866 98 Q 393.582 102.75 218.418 102.75 DL 13.943(pos 1)224.11 112 R
24.75(2481)20.625 G(6)-24.75 E 393.582 116.75 218.418 116.75 DL 16.5
(112)234.082 126 S 13.75(.0 3.4 6.5)-16.5 F(9.1)22 E 393.582 130.75
218.418 130.75 DL 16.5(212)234.082 140 S 13.75(.0 3.6 6.5 10.4)-16.5 F
393.582 144.75 218.418 144.75 DL 16.5(312)234.082 154 S 13.75
(.0 3.7 7.0 13.7)-16.5 F 393.582 158.75 218.418 158.75 DL 16.5(412)
234.082 168 S 13.75(.0 3.9 6.6 11.1)-16.5 F 393.582 172.75 218.418
172.75 DL 16.5(512)234.082 182 S 13.75(.0 3.6 6.5)-16.5 F(8.9)22 E
393.582 186.75 218.418 186.75 DL 16.5(612)234.082 196 S 13.75
(.0 3.7 6.4)-16.5 F(9.5)22 E 393.582 200.75 218.418 200.75 DL 16.5(711)
234.082 210 S 13.75(.9 3.6 6.9 10.1)-16.5 F 393.582 214.75 218.418
214.75 DL 16.5(812)234.082 224 S 13.75(.0 3.7 7.0 10.7)-16.5 F 393.582
228.75 218.418 228.75 DL 16.5(912)234.082 238 S 13.75(.0 3.6 6.2)-16.5 F
(9.9)22 E 393.582 242.75 218.418 242.75 DL 13.75(10 1 2.0 3.8 7.3 13.0)
228.582 252 R 393.582 256.75 218.418 256.75 DL 13.75
(11 1 2.0 3.7 7.2 12.4)228.582 266 R 393.582 270.75 218.418 270.75 DL
13.75(12 1 1.9 3.8 6.9 11.5)228.582 280 R 393.582 284.75 218.418 284.75
DL 13.75(13 1 1.9 3.8 6.8 11.1)228.582 294 R 393.582 298.75 218.418
298.75 DL 13.75(14 1 2.0 3.5 6.3)228.582 308 R(9.8)22 E 393.582 312.75
218.418 312.75 DL 13.75(15 1 2.0 3.7 7.0 10.9)228.582 322 R 393.582
326.75 218.418 326.75 DL 13.75(16 1 1.9 3.9 7.3 12.9)228.582 336 R
393.582 340.75 218.418 340.75 DL 13.75(17 1 1.7 2.6 4.5)228.582 350 R
(6.0)22 E 393.582 354.75 218.418 354.75 DL 13.75(18 1 1.8 2.9 5.2)
228.582 364 R(7.7)22 E 393.582 368.75 218.418 368.75 DL 13.75
(19 1 2.0 3.8 7.0 13.2)228.582 378 R 393.582 382.75 218.418 382.75 DL
13.75(20 1 2.0 3.9 6.9 14.1)228.582 392 R 393.582 396.75 218.418 396.75
DL 13.75(21 1 2.0 4.0 7.4 15.3)228.582 406 R 393.582 410.75 218.418
410.75 DL 13.75(22 1 1.9 3.7 6.2)228.582 420 R(9.7)22 E 393.582 424.75
218.418 424.75 DL 13.75(23 1 2.0 3.8 6.3)228.582 434 R(9.9)22 E 393.582
438.75 218.418 438.75 DL 13.75(24 1 2.0 3.9 7.6 14.4)228.582 448 R
393.582 452.75 218.418 452.75 DL -.22(av)223.918 462 S 16.5(g12).22 G
13.75(.0 3.7 6.6 11.1)-16.5 F 393.582 466.75 218.418 466.75 DL 360.582
116.75 360.582 466.75 DL 330.332 116.75 330.332 466.75 DL 300.082 116.75
300.082 466.75 DL 269.832 116.75 269.832 466.75 DL 247.832 116.75
247.832 466.75 DL 393.582 88.75 393.582 466.75 DL 218.418 88.75 218.418
466.75 DL 360.582 102.75 360.582 466.75 DL 330.332 102.75 330.332 466.75
DL 300.082 102.75 300.082 466.75 DL 269.832 102.75 269.832 466.75 DL
247.832 88.75 247.832 466.75 DL -.88(Ta)224.798 490.2 S(ble 6).88 E
-.165(Pa)5.5 G(rallel Processing Speedup).165 E 2.75(6. Future)72 514.2
R -.11(wo)2.75 G(rk).11 E .824(Perhaps the most signi\214cant future w)
72 538.2 R .824
(ork for this algorithm lies in selecting split points more accurately)
-.11 F(.)-.715 E -.165(Fo)72 550.2 S 4.713(rs).165 G 1.963
(ome positions, the current Split\(\) algorithm performs admirably)
-4.713 F 7.462(.F)-.715 G 1.962(or others, it performs poorly)-7.627 F
(.)-.715 E(An)72 562.2 Q(ything that impro)-.165 E -.165(ve)-.165 G 2.75
(st).165 G(he "poor" cases has a positi)-2.75 E .33 -.165(ve e)-.275 H
-.275(ff).165 G(ect on o).275 E -.165(ve)-.165 G(rall performance.).165
E EP
%%Page: 24 24
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .071(There are at least tw)72 96 R 2.822(oa)-.11
G .072(pproaches to this problem.)-2.822 F .072
(One is to more accurately \214nd good split points \(some-)5.572 F .721
(thing that might be impossible in a signi\214cant number of positions\
\).)72 108 R .72(Another is to de)6.22 F -.165(ve)-.275 G .72
(lop some sort of).165 F .501
(con\214dence in a list of split points, someho)72 120 R 3.251(we)-.275
G .501(liminating those that are potentially bad.)-3.251 F .502
(After eliminating)6.002 F .511(such split points, the o)72 132 R -.165
(ve)-.165 G .511(rhead should drop signi\214cantly).165 F 6.011(.U)-.715
G(nfortunately)-6.011 E 3.261(,d)-.715 G .511
(etecting such split points is not)-3.261 F(easy)72 144 Q 5.882(.T)-.715
G .382(he \214rst step will lik)-5.882 F .383
(ely be more detailed analysis of the trees searched by C-B.)-.11 F .383
(The problem with)5.883 F .434(this is that these trees re)72 156 R .434
(gularly e)-.165 F .433(xceed one billion nodes on a T90, making the v)
-.165 F .433(olume of data some)-.22 F(what)-.275 E(lar)72 168 Q 3.063
(ge! Such)-.198 F(lar)3.063 E .313(ge trees require recognizing a speci\
\214c performance feature and then adding instructions to)-.198 F .156
(the code to measure the feature "in situ" since analyzing such a lar)72
180 R .156(ge tree by visual inspection is impracti-)-.198 F(cal.)72 192
Q .913(The current algorithm depends on rapid information sharing and u\
ses shared memory to implement this)72 216 R 4.45(sharing. The)72 228 R
(ne)4.449 E 1.699(xt logical step in algorithm de)-.165 F -.165(ve)-.275
G 1.699(lopment is to mo).165 F 2.029 -.165(ve t)-.165 H -2.31 -.275
(ow a).165 H 1.699(rd a distrib).275 F 1.699(uted architecture.)-.22 F
-.44(Wi)72 240 S .091(th HIPPI and/or other high-performance processor \
interconnects, a distrib).44 F .091(uted v)-.22 F .092
(ersion of this algorithm)-.165 F 1.738(should deli)72 252 R -.165(ve)
-.275 G 4.488(rh).165 G 1.738(igh performance if care is tak)-4.488 F
1.737(en to control task granularity \(which is not an issue on)-.11 F
(machines lik)72 264 Q 2.75(et)-.11 G(he C90/T90 with shared memory)
-2.75 E(.\))-.715 E(7. Bibliograph)72 288 Q(y)-.055 E 1.053(S. Akl, D. \
Barnard, and R. Doran, "The Design, Analysis and Implementation of a P)
72 312 R 1.054(arallel Alpha-Beta)-.165 F 2.925(Algorithm", IEEE T)72
324 R 2.925(ransactions on P)-.385 F 2.924
(attern Analysis and Machine Intelligence, P)-.165 F 2.924
(AMI-4, \(2\) \(1982\),)-1.012 F(\(192-203\).)72 336 Q 1.392(B. A)72 360
R(werb)-1.012 E 1.392(uch, "A Ne)-.22 F 4.142(wD)-.275 G(istrib)-4.142 E
1.393(uted Depth-First Search Algorithm", Information Processing Letter\
s \(20\))-.22 F(\(1985\) 147-150.)72 372 Q .363(G. Baudet, "The Design \
and Analysis of Algorithms for Asynchronous Multiprocessors", Ph. D Dis\
serta-)72 396 R(tion, Carne)72 408 Q(gie-Mellon Uni)-.165 E -.165(ve)
-.275 G(rsity).165 E 2.75(,P)-.715 G(ittsb)-2.75 E(ur)-.22 E(gh, P)-.198
E 2.75(a. \(1978\).)-.165 F .892(M. Campbell, "Algorithms for the P)72
432 R .892(arallel Search of Game T)-.165 F .892
(rees", M. Sc. Thesis, T)-.385 F .892(echnical Report TR)-.77 F
(81-8, Computer Science Department, Uni)72 444 Q -.165(ve)-.275 G
(rsity of Alberta, Edmonton \(1981\).).165 E 4.095(RF)72 468 S 1.345
(eldmann, B. Monieni, P)-4.095 F 4.095(.M)-1.221 G 1.345
(ysliwietz and O. V)-4.095 F(ornber)-1.419 E(ger)-.198 E 4.095(,")-.44 G
(Distrib)-4.095 E 1.345(uted g)-.22 F 1.344(ame tree search," in P)-.055
F(arallel)-.165 E
(algorithms for machine intelligence and pattern recognition \(1990\).)
72 480 Q 3(RF)72 504 S .25(eldmann, "Game T)-3 F .251
(ree Search on Massi)-.385 F -.165(ve)-.275 G .251(ly P).165 F .251
(arallel Systems," Ph.D. Theses, Uni)-.165 F -.165(ve)-.275 G .251
(rsity of P).165 F(aderborn,)-.165 E(August, 1993.)72 516 Q(R. Fink)72
540 Q(el and J. Fishb)-.11 E(urn, "P)-.22 E(arallelism in Alpha-Beta Se\
arch", Arti\214cial Intelligence \(1982\) 89-106.)-.165 E 1.706
(F-h Hsu, "Lar)72 564 R 1.705(ge scale parallelism of alpha-beta search\
: an algorithmic and architectural study)-.198 F 1.705(," Ph.D.)-.715 F
(Thesis, Carne)72 576 Q(gie-Mellon Uni)-.165 E -.165(ve)-.275 G
(rsity \(1990\).).165 E EP
%%Page: 25 25
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF .025(R. Hyatt, B. Suter)72 96 R 2.775(,a)-.44 G
.025(nd H. Nelson, "A P)-2.775 F .026(arallel Alpha/Beta T)-.165 F .026
(ree Searching Algorithm," P)-.385 F .026(arallel Computing)-.165 F
(10 \(1989\) 299-308.)72 108 Q 1.052(R. Hyatt, "A High-Performance P)72
132 R 1.052(arallel Algorithm to Search Depth-First Game T)-.165 F 1.051
(rees," Ph.D. Disserta-)-.385 F(tion, Uni)72 144 Q -.165(ve)-.275 G
(rsity of Alabama at Birmingham, 1988.).165 E 1.7(R. Hyatt, A. Go)72 168
R(wer)-.275 E 4.45(,a)-.44 G 1.7(nd H. Nelson, "Cray Blitz", Adv)-4.45 F
1.7(ances in Computer Chess 4, Per)-.275 F -.055(ga)-.198 G 1.701
(mmon Press).055 F(\(1986\) \(8-18\).)72 180 Q .293
(R. Hyatt, H. Nelson, A. Go)72 204 R(wer)-.275 E 3.043(,")-.44 G .292
(Cray Blitz - 1984 Chess Champion", T)-3.043 F .292
(elematics and Informatics \(2\) \(4\),)-.77 F(Per)72 216 Q -.055(ga)
-.198 G(mmon Press Ltd. \(1986\) \(299-305\).).055 E .119(D. Knuth and \
R. Moore, "An Analysis of Alpha-Beta Pruning", Arti\214cial Intelligenc\
e 6 \(1975\) \(293-326\).)72 240 R(B. K)72 264 Q
(uszmaul, "Synchronized MIMD Computing," Ph.D. Thesis, MIT)-.165 E 2.75
(,1)-.814 G(994.)-2.75 E 2.239(G. Lindstrom, "The K)72 288 R 2.569 -.165
(ey N)-.275 H 2.239(ode Method: A Highly P).165 F 2.239
(arallel Alpha-Beta Algorithm", T)-.165 F 2.238(echnical Report)-.77 F
(UUCS 83-101, Department of Computer Science, Uni)72 300 Q -.165(ve)
-.275 G(rsity of Utah, 1983.).165 E 1.628 -.814(T. M)72 324 T
(arsland and J. Schaef).814 E(fer)-.275 E 2.75(,C)-.44 G
(omputers, Chess and Cognition, Springer)-2.75 E(-V)-.22 E(erlag, 1990.)
-1.221 E 1.913 -.814(T. M)72 348 T .285(arsland and M. Campbell, "P).814
F .286(arallel Search of Strongly Ordered Game T)-.165 F .286(rees", A)
-.385 F .286(CM Computing Sur)-.44 F(-)-.22 E -.165(vey)72 360 S 2.75
(s\().165 G(4\) \(1982\) \(533-551\).)-2.75 E 2.905 -.814(T. A)72 384 T
4.027(.M).814 G 1.277(arsland and F)-4.027 F 4.027(.P)-.88 G(opo)-4.027
E 4.026(wich, "P)-.275 F 1.276(arallel Game-tree Search", IEEE T)-.165 F
1.276(ransactions on P)-.385 F 1.276(attern Analysis)-.165 F
(and Machine Intelligence, P)72 396 Q(AMI-7, \(1985\) \(442-452\).)
-1.012 E 2.523 -.814(T. M)72 420 T .895(arsland, M. Campbell, and A. Ri)
.814 F -.165(ve)-.275 G .896(ra, "P).165 F .896
(arallel Search of Game T)-.165 F .896(rees", T)-.385 F .896
(echnical Report TR 80-7,)-.77 F(Computing Science Department, Uni)72
432 Q -.165(ve)-.275 G(rsity of Alberta, Edmonton \(1980\).).165 E 2.851
-.814(T. M)72 456 T 1.222(arsland and M. Campbell, "Methods for P).814 F
1.222(arallel Search of Game T)-.165 F 1.222
(rees", Proceedings of the 1981)-.385 F
(International Joint Conference on Arti\214cial Intelligence.)72 468 Q
3.843 -.814(T. M)72 492 T 2.215(arsland, M. Olafsson, and J. Schaef).814
F(fer)-.275 E 4.966(,")-.44 G 2.216(Multiprocessor T)-4.966 F 2.216
(ree-Search Experiments", Adv)-.385 F 2.216(ances in)-.275 F
(Computer Chess 4, Per)72 504 Q -.055(ga)-.198 G
(mmon Press \(1986\) \(37-51\).).055 E 3.234(M. Ne)72 528 R 3.234
(wborn, "A P)-.275 F 3.233
(arallel Search Chess Program", Proceedings, A)-.165 F 3.233
(CM Annual Conference, \(1985\),)-.44 F(\(272-277\).)72 540 Q .826
(J. Pearl, "Scout: A Simple Game-Searching Algorithm with Pro)72 564 R
-.165(ve)-.165 G 3.577(nO).165 G .827
(ptimal Properties", Proceedings of)-3.577 F(the First Annual National \
Conference on Arti\214cial Intelligence, Stanford, \(1980\).)72 576 Q EP
%%Page: 26 26
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF 2.219 -.88(F. P)72 96 T(opo).88 E .459
(wich and T)-.275 F 3.208(.M)-.814 G .458(arsland, "P)-3.208 F .458
(arabelle: Experiments with a P)-.165 F .458(arallel Chess Program", T)
-.165 F .458(echnical Report)-.77 F
(TR 83-7, Computing Science Department, Uni)72 108 Q -.165(ve)-.275 G
(rsity of Alberta, Edmonton \(1983\).).165 E .612(J. Schaef)72 132 R
(fer)-.275 E 3.362(,")-.44 G(Distrib)-3.362 E .612(uted g)-.22 F .612
(ame-tree search," Journal of P)-.055 F .612(arallel and Distrib)-.165 F
.612(uted Computing 6 \(2\) \(1989\),)-.22 F(90-114.)72 144 Q .133
(I. Steinber)72 168 R 2.883(ga)-.198 G .133(nd M. Solomon, "Searching g)
-2.883 F .132
(ame trees in parallel," Proceedings of the International Confer)-.055 F
(-)-.22 E(ence on P)72 180 Q(arallel Processing \(V)-.165 E
(ol 3\) \(1990\), 9-17.)-1.419 E 1.89(Z. Y)72 204 R 1.89(ang and T)-1.1
F 4.64(.M)-.814 G 1.89(arsland, "Global States and T)-4.64 F 1.89
(ime in Distrib)-.385 F 1.89(uted Systems," IEEE Computer Society)-.22 F
(Press, No)72 216 Q -.165(ve)-.165 G(mber 1993.).165 E EP
%%Page: 27 27
%%BeginPageSetup
BP
%%EndPageSetup
/F0 11/Times-Roman@0 SF(Appendix A)72 96 Q([Ev)72 120 Q(ent "23rd A)
-.165 E(CM International Computer Chess Championship"])-.44 E
([Site "Indianapolis, MD"])72 132 Q([Date "02.14.1993"])72 144 Q
([Round "?"])72 156 Q([White "Mchess Pro"])72 168 Q
([Black "Cray Blitz"])72 180 Q([Result "0-1"])72 192 Q .78(1. e4)72 204
R .78(e5 2. Nc3 Nc6 3. f4)6.28 F -.165(ex)6.28 G .78(f4 4. Nf3 g5 5. d4)
.165 F .78(g4 6. Bc4 gxf3 7. o-o d5 8. e)6.28 F .78
(xd5 Bg4 9. Qd2 Na5 10.)-.165 F .744
(Bb5+ c6 11. Qxf4 Nf6 12. Re1+ Kd7 13. dxc6+ bxc6 14. Ne4 Nx)72 216 R
.744(e4 15. Qxg4+ Kc7 16. Rx)-.165 F .744(e4 cxb5 17.)-.165 F 1.054
(Qxf3 Qd7 18. Rf4 Be7 19. Rxf7 Raf8 20. Bf4+ Kb6 21. Be5 Rhg8 22. c3)72
228 R 1.054(Nc6 23. Re1 Qe8 24. Rxf8)6.554 F .718
(Qxf8 25. Qd5 Rg5 26. a4)72 240 R .718(bxa4 27. c4)6.218 F(Nx)6.218 E
.718(e5 28. Rx)-.165 F .718(e5 Rx)-.165 F .718(e5 29. Qx)-.165 F .719
(e5 Qd8 30. c5+ Kb5 31. Qe2+ Kb4)-.165 F .585(32. Qd3 Bf6 33. Qc3+ Kb5 \
34. Qd3+ Kc6 35. Qf3+ Kd7 36. Qe4 Qe7 37. Qb7+ K)72 252 R .585
(e8 38. Qa8+ Qd8 39.)-.275 F .911(Qc6+ Kf7 40. Qb7+ Kf8 41. d5)72 264 R
.911(Qe7 42. Qb8+ Kf7 43. Kf1 Bxb2 44. g4)6.411 F .912
(Bc3 45. Kf2 Qxc5+ 46. Kf1)6.411 F(Qc4+ 47. Kf2 Qd4+ 48. Kf3 Qd1+ 49. K)
72 276 Q(e3 Bd2+ 50. Kf2 Qe1+ 51. Kg2 Qe2+)-.275 E EP
%%Trailer
end
%%EOF
|