Hash table
Le hash table sono aree di memoria nelle quali il programma immagazzina posizioni e valutazioni mentre sta calcolando le mosse. Se il programma incontra una posizione che è già nelle hash table, ne estrae la valutazione senza analizzarla nuovamente.
Le hash table aumentano considerevolmente la forza di gioco. Ciò è particolarmente vero per motori tatticamente forti come Fritz, Junior o Nimzo. Alcuni lavorano a più di 400.000 posizioni al secondo e riempiono le hash table molto velocemente. Dopo di che, la ricerca si rallenta. Questo non avviene con programmi più lenti, orientati posizionalmente, che analizzano meno posizioni al secondo e impiegano più tempo a riempire le hash table.
Per partite a tempo lungo e analisi profonde i motori necessitano di grosse dimensioni per le hash table. Partite da torneo con una media di 3 minuti per mossa (tipo 2 ore x 40 mosse) richiederebbero almeno 100 MB di hash table. Invece, nei livelli lampo una dimensione da 4 a 8 MB è più che sufficiente.
Alcuni motori funzionano meglio con dimensioni di hash table che sono potenze di 2. Ciò significa che 64 MB di hash table sono molto meglio di 63 MB. Le dimensioni delle hash table si impostano nella finestra di dialogo
Alcune note tecniche
Windows si appropria della memoria non usata e la usa per scopi propri, per esempio velocizzare il disco rigido. Quando si impostano grandi hash table, Windows dovrà liberare memoria appena usata da un motore. Per far questo, dovrà scrivere sul disco fisso dati che ha in memoria, chiudere file ecc. Il procedimento può prendere anche un minuto o più, e nel contempo il disco rigido lavorerà costantemente.
Appena la memoria richiesta per le hash table è libera, il disco rigido non dovrebbe dare più segni di attività (a parte alcune ricerche nelle aperture). Ciò vale anche per le successive partite.
Se c’è una costante attività del disco rigido durante la partita, allora si sono impostate hash table troppo grandi. Windows ha installato parte di queste table sul disco fisso, il che rallenta notevolmente il programma. In questo caso che la profondità di ricerca rimane molto bassa.
Se invece non c’è alcuna attività di disco all’avvio di un motore, allora le dimensioni delle hash table sono state impostate a valori troppo piccoli. Se si desidera migliorare le prestazioni del motore, occorre aumentare le hash table.
Se dovete giocare un’importante partita di torneo contro giocatori forti, avviare una volta il motore per costringere Windows a rilasciare tutta la memoria necessaria. Premere Alt-F2 per avviare il motore e di nuovo Alt-F2 per fermarlo quando l’attività del disco fisso si è placata.